/pinning-dependency-versions
Pinning an explicit versioned dependency manifest (dependencies.md plus PROJECT_RULES.md): exact package versions, CVE and license checks, compatibility matrices, and per-component cost analysis against Ring Standards. Gate 6 of ring:planning-large-features; runs after
$ npx -y skills add LerianStudio/ring --skill pinning-dependency-versions --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/pinning-dependency-versions
Context preview
The summary Claude sees to decide when to auto-load this skill.
Pinning an explicit versioned dependency manifest (dependencies.md plus PROJECT_RULES.md): exact package versions, CVE and license checks, compatibility matrices, and per-component cost analysis against Ring Standards. Gate 6 of ring:planning-large-features; runs after
SKILL.md
pinning-dependency-versions.SKILL.mdname: ring:pinning-dependency-versions
description: "Pinning an explicit versioned dependency manifest (dependencies.md plus PROJECT_RULES.md): exact package versions, CVE and license checks, compatibility matrices, and per-component cost analysis against Ring Standards. Gate 6 of ring:planning-large-features; runs after ring:designing-data-model, before ring:writing-plans. Use when the schema is validated and you are about to lock products and versions. Skip for Small Track or when versions are already locked."
Dependency Map — Explicit Technology Choices
When to use
- Schema (schema.sql / schema.prisma) passed Gate 5 validation
- About to select specific technologies
- Large Track workflow (2+ day features)
Skip when
- Small Track workflow → skip to ring:writing-plans
- Technologies already locked → skip to ring:writing-plans
- Schema not validated → complete Gate 5 first
Sequence
**Runs before:** ring:writing-plans **Runs after:** ring:designing-data-model
Every technology choice must be explicit, versioned, validated against Ring Standards, and justified. The Dependency Map answers WHAT specific products, versions, packages, and infrastructure will be used.
Step 0: Standards Loading (HARD GATE)
Step 0.1: Read Technology Decisions from TRD
Read `docs/pre-dev/{feature}/trd.md` — extract: `deployment.model`, `tech_stack.primary`, `project_technologies[]`.
If TRD metadata missing → STOP: "Go back to TRD (Gate 3) and complete Step 0.4."
Step 0.2: Load Ring Standards via WebFetch
| Standard | URL | |----------|-----| | golang/index.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/golang/index.md` | | typescript.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/typescript.md` | | frontend.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/frontend.md` | | devops.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/devops.md` | | sre.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/sre.md` |
Step 0.3: Generate PROJECT_RULES.md (OUTPUT)
Using TRD `project_technologies[]`, create `docs/PROJECT_RULES.md` with: deployment model, tech stack, per-category decisions (PRD requirement, technology, version, rationale, cloud service, on-premise alternative), version matrix, security/compliance notes.
Mandatory Workflow
| Phase | Activities | |-------|------------| | **1. Evaluation** | Ring Standards loaded; map TRD components to tech candidates; validate against Ring Standards; map the schema file (schema.sql / schema.prisma) to storage; map openapi.yaml contracts to protocols; check team expertise; estimate costs | | **2. Selection** | Per technology: check Ring Standards (mandatory/prohibited), specify exact version, list alternatives with trade-offs, verify compatibility, check security (CVEs), validate licenses, calculate costs | | **3. Gate 6 Validation** | All dependencies explicit; no conflicts; no critical CVEs; licenses compliant; costs documented; all components mapped |
Version Rules
1. **Explicit**: `@v1.27.0` not `@latest` or `^1.0.0` 2. **Justified ranges**: If using `>=`, document why 3. **Lock file referenced**: `go.mod`, `package-lock.json`, etc. 4. **Upgrade constraints**: Document why locked/capped 5. **Compatibility**: Document known conflicts
Include in Dependency Map
- Exact package names with versions (`go.uber.org/zap@v1.27.0`)
- Tech stack with constraints (`Go 1.24+, PostgreSQL 16`)
- Infrastructure specs (`Valkey 8, MinIO`)
- External SDKs, dev tools, security deps, monitoring tools
- Compatibility matrices
- License summary
- Cost analysis
Never Include
- Implementation code or how to use dependencies
- Task breakdowns or setup instructions
- Architectural patterns (→ TRD)
- Business requirements (→ PRD)
Output Format
**File:** `docs/PROJECT_RULES.md` **File:** `docs/pre-dev/{feature}/dependencies.md`
# Dependency Map: {Feature Name}
## Technology Decisions
| Category | PRD Requirement | Choice | Version | Rationale | Alternatives Considered |
|----------|----------------|--------|---------|-----------|------------------------|
| Relational DB | Persistent user data | PostgreSQL | 16.2 | Ring standard; team expertise; ACID | MySQL (less preferred), SQLite (no concurrent writes) |
| Cache | Session storage | Valkey | 8.0 | Ring standard; Redis-compatible | Redis (licensing change) |
| Message Queue | Async processing | RabbitMQ | 3.13 | Ring standard; existing infra | Kafka (overkill for volume) |
## Version Matrix
| Package | Version | Lock File | Upgrade Constraint |
|---------|---------|-----------|-------------------|
| go.uber.org/zap | v1.27.0 | go.sum | Stable API; no breaking changes in minor |
## Security & Licenses
| Package | License | CVE Status | Risk |
|---------|---------|-----------|------|
| github.com/jackc/pgx/v5 | MIT | None | Low |
## Cost Analysis
| Component | Shared/Dedicated | Monthly Cost | Notes |
|-----------|-----------------|-------------|-------|
| PostgreSQL (RDS) | Dedicated | R$ 1,490 | 2 vCPU, 8GB RAM |Gate 6 Validation Checklist
| Category | Requirements | |----------|--------------| | **Completeness** | All TRD components have specific technology choices; all dependencies explicit | | **Versioning** | Exact versions specified; no `@latest`; lock files referenced | | **Standards Compliance** | Choices validated against Ring Standards; prohibited packages avoided | | **Security** | No critical CVEs; licenses compliant; security deps included | | **Costs** | Cost per component documented; shared vs dedicated decisions made |
**Gate Result:** ✅ PASS → Plan (ring:writing-plans) | ⚠️ CONDITIONAL (version gaps or cost estimates missing) | ❌ FAIL (unresolved conflicts or CVEs)
Read more
name: ring:pinning-dependency-versions description: "Pinning an explicit versioned dependency manifest (dependencies.md plus PROJECT_RULES.md): exact package versions, CVE and license checks, compatibility matrices, and per-component cost analysis against Ring Standards. Gate 6 of ring:planning-large-features; runs after ring:designing-data-model, before ring:writing-plans. Use when the schema is validated and you are about to lock products and versions. Skip for Small Track or when versions are already locked."
Dependency Map — Explicit Technology Choices
When to use
- Schema (schema.sql / schema.prisma) passed Gate 5 validation
- About to select specific technologies
- Large Track workflow (2+ day features)
Skip when
- Small Track workflow → skip to ring:writing-plans
- Technologies already locked → skip to ring:writing-plans
- Schema not validated → complete Gate 5 first
Sequence
**Runs before:** ring:writing-plans **Runs after:** ring:designing-data-model
Every technology choice must be explicit, versioned, validated against Ring Standards, and justified. The Dependency Map answers WHAT specific products, versions, packages, and infrastructure will be used.
Step 0: Standards Loading (HARD GATE)
Step 0.1: Read Technology Decisions from TRD
Read `docs/pre-dev/{feature}/trd.md` — extract: `deployment.model`, `tech_stack.primary`, `project_technologies[]`.
If TRD metadata missing → STOP: "Go back to TRD (Gate 3) and complete Step 0.4."
Step 0.2: Load Ring Standards via WebFetch
| Standard | URL | |----------|-----| | golang/index.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/golang/index.md` | | typescript.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/typescript.md` | | frontend.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/frontend.md` | | devops.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/devops.md` | | sre.md | `https://raw.githubusercontent.com/LerianStudio/ring/main/dev-team/docs/standards/sre.md` |
Step 0.3: Generate PROJECT_RULES.md (OUTPUT)
Using TRD `project_technologies[]`, create `docs/PROJECT_RULES.md` with: deployment model, tech stack, per-category decisions (PRD requirement, technology, version, rationale, cloud service, on-premise alternative), version matrix, security/compliance notes.
Mandatory Workflow
| Phase | Activities | |-------|------------| | **1. Evaluation** | Ring Standards loaded; map TRD components to tech candidates; validate against Ring Standards; map the schema file (schema.sql / schema.prisma) to storage; map openapi.yaml contracts to protocols; check team expertise; estimate costs | | **2. Selection** | Per technology: check Ring Standards (mandatory/prohibited), specify exact version, list alternatives with trade-offs, verify compatibility, check security (CVEs), validate licenses, calculate costs | | **3. Gate 6 Validation** | All dependencies explicit; no conflicts; no critical CVEs; licenses compliant; costs documented; all components mapped |
Version Rules
1. **Explicit**: `@v1.27.0` not `@latest` or `^1.0.0` 2. **Justified ranges**: If using `>=`, document why 3. **Lock file referenced**: `go.mod`, `package-lock.json`, etc. 4. **Upgrade constraints**: Document why locked/capped 5. **Compatibility**: Document known conflicts
Include in Dependency Map
- Exact package names with versions (`go.uber.org/zap@v1.27.0`)
- Tech stack with constraints (`Go 1.24+, PostgreSQL 16`)
- Infrastructure specs (`Valkey 8, MinIO`)
- External SDKs, dev tools, security deps, monitoring tools
- Compatibility matrices
- License summary
- Cost analysis
Never Include
- Implementation code or how to use dependencies
- Task breakdowns or setup instructions
- Architectural patterns (→ TRD)
- Business requirements (→ PRD)
Output Format
**File:** `docs/PROJECT_RULES.md` **File:** `docs/pre-dev/{feature}/dependencies.md`
# Dependency Map: {Feature Name}
## Technology Decisions
| Category | PRD Requirement | Choice | Version | Rationale | Alternatives Considered |
|----------|----------------|--------|---------|-----------|------------------------|
| Relational DB | Persistent user data | PostgreSQL | 16.2 | Ring standard; team expertise; ACID | MySQL (less preferred), SQLite (no concurrent writes) |
| Cache | Session storage | Valkey | 8.0 | Ring standard; Redis-compatible | Redis (licensing change) |
| Message Queue | Async processing | RabbitMQ | 3.13 | Ring standard; existing infra | Kafka (overkill for volume) |
## Version Matrix
| Package | Version | Lock File | Upgrade Constraint |
|---------|---------|-----------|-------------------|
| go.uber.org/zap | v1.27.0 | go.sum | Stable API; no breaking changes in minor |
## Security & Licenses
| Package | License | CVE Status | Risk |
|---------|---------|-----------|------|
| github.com/jackc/pgx/v5 | MIT | None | Low |
## Cost Analysis
| Component | Shared/Dedicated | Monthly Cost | Notes |
|-----------|-----------------|-------------|-------|
| PostgreSQL (RDS) | Dedicated | R$ 1,490 | 2 vCPU, 8GB RAM |Gate 6 Validation Checklist
| Category | Requirements | |----------|--------------| | **Completeness** | All TRD components have specific technology choices; all dependencies explicit | | **Versioning** | Exact versions specified; no `@latest`; lock files referenced | | **Standards Compliance** | Choices validated against Ring Standards; prohibited packages avoided | | **Security** | No critical CVEs; licenses compliant; security deps included | | **Costs** | Cost per component documented; shared vs dedicated decisions made |
**Gate Result:** ✅ PASS → Plan (ring:writing-plans) | ⚠️ CONDITIONAL (version gaps or cost estimates missing) | ❌ FAIL (unresolved conflicts or CVEs)
Proven engineering practices, enforced through skills. Ring is a comprehensive skills library and workflow system for AI agents that transforms how AI assistants approach software development.
Repo: LerianStudio/ring
Other skills on ring.
- /analyzing-options
Analyzing different approaches for a task or problem with structured comparisons, effort estimates, and recommendations. Use when facing strategic decisions, architecture choices, or multiple viable approaches. Skip when there's an obvious single approach or the decision is
Open skill - /auditing-production-readiness
Auditing a service's production readiness against Ring engineering standards across base dimensions plus a conditional multi-tenant dimension, then emitting a scored report and an HTML dashboard. Use before production deploy, periodic review, onboarding, or a major release. Skip
Open skill - /cleaning-comments
Cleaning redundant and obvious comments following clean code principles while preserving meaningful documentation. Supports git scope filtering (staged, unstaged, branch, commit-range). Use when code has excessive comments, during code review, or post-refactor cleanup. Skip when
Open skill - /committing-changes
Commit changes with scope allowlist enforcement, atomic grouping, GPG-signed conventional commits, and trailer management. Detects the repo's PR-validation scope policy before proposing any message. Use when the user asks to commit or has changes ready to record. Skip when the
Open skill - /creating-handoffs
Creating a handoff document that captures session state (completed work, decisions, open items, next steps) and delivering it via Plan Mode so the user gets the native 'clear context and continue implementing' resume option. Use when ending a session, when context grows large,
Open skill - /creating-worktrees
Creating an isolated git worktree for parallel branch work: selects the directory by priority order, verifies/adds .gitignore safety, auto-installs the detected toolchain's dependencies, runs a baseline test, and reports readiness. Use before a feature that needs isolation from
Open skill

