* create-implementation-plan: require unique identifiers (#1989) The skill template tells the agent to use REQ-, TASK-, GOAL-, and similar prefixed identifiers, but never says they have to be unique or how to check. @basilevs reported plans coming back with duplicate TASK IDs and proposed three POSIX one-liners that catch the two real collision modes (table rows and bullet declarations) plus a broad diagnostic scan. Document the uniqueness rule under the existing Template Validation Rules, then add a new "Identifier Uniqueness Check" section with all three bash commands and instructions on which must come back empty before the plan is finalized. DEP-* references intentionally allowed in multiple sections per the reporter's note. Closes #1989. * codespell: ignore GUD identifier prefix (#1989) Upstream skills/create-implementation-plan/SKILL.md already uses GUD-001 in the template body. Codespell currently slips past it on word-boundary, but the regex alternation (GUD|RISK|...) added in the previous commit on this branch makes codespell flag it as a misspelling of GOOD. GUD is the documented "Guideline" identifier prefix alongside REQ, SEC, CON, PAT, etc. Add it to the ignore-words-list, matching the pattern every other technical-token exemption in .codespellrc uses. * create-implementation-plan: clarify declaration vs reference (#1989 review) basilevs flagged that calling out DEP-* specifically was misleading, because any identifier can appear as a reference. A TASK body can cite a REQ, one TASK can cite another, and so on. The original phrasing made it sound like DEP-* was the only prefix allowed to recur. Rewrite the rule to lead with "uniquely declared": - Define declaration as the leading bullet/cell ID (e.g., the table row in Implementation Phase N, or '- **REQ-001**:'). - Say explicitly that references elsewhere in the plan are expected and not collisions, with concrete examples (TASK citing REQ, TASK citing TASK, Dependencies pointing at a DEP declared upstream). - Tighten the check intro to call (1) and (2) declaration-targeted gates and (3) a broad informational scan that will see references. Bash checks unchanged; they already encode the declaration-vs-reference distinction via the table-cell and bullet-prefix anchors.
8.2 KiB
name, description
| name | description |
|---|---|
| create-implementation-plan | Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure. |
Create Implementation Plan
Primary Directive
Your goal is to create a new implementation plan file for ${input:PlanPurpose}. Your output must be machine-readable, deterministic, and structured for autonomous execution by other AI systems or humans.
Execution Context
This prompt is designed for AI-to-AI communication and automated processing. All instructions must be interpreted literally and executed systematically without human interpretation or clarification.
Core Requirements
- Generate implementation plans that are fully executable by AI agents or humans
- Use deterministic language with zero ambiguity
- Structure all content for automated parsing and execution
- Ensure complete self-containment with no external dependencies for understanding
Plan Structure Requirements
Plans must consist of discrete, atomic phases containing executable tasks. Each phase must be independently processable by AI agents or humans without cross-phase dependencies unless explicitly declared.
Phase Architecture
- Each phase must have measurable completion criteria
- Tasks within phases must be executable in parallel unless dependencies are specified
- All task descriptions must include specific file paths, function names, and exact implementation details
- No task should require human interpretation or decision-making
AI-Optimized Implementation Standards
- Use explicit, unambiguous language with zero interpretation required
- Structure all content as machine-parseable formats (tables, lists, structured data)
- Include specific file paths, line numbers, and exact code references where applicable
- Define all variables, constants, and configuration values explicitly
- Provide complete context within each task description
- Use standardized prefixes for all identifiers (REQ-, TASK-, etc.)
- Include validation criteria that can be automatically verified
Output File Specifications
- Save implementation plan files in
/plan/directory - Use naming convention:
[purpose]-[component]-[version].md - Purpose prefixes:
upgrade|refactor|feature|data|infrastructure|process|architecture|design - Example:
upgrade-system-command-4.md,feature-auth-module-1.md - File must be valid Markdown with proper front matter structure
Mandatory Template Structure
All implementation plans must strictly adhere to the following template. Each section is required and must be populated with specific, actionable content. AI agents must validate template compliance before execution.
Template Validation Rules
- All front matter fields must be present and properly formatted
- All section headers must match exactly (case-sensitive)
- All identifier prefixes must follow the specified format
- Tables must include all required columns
- No placeholder text may remain in the final output
- Identifiers must be uniquely declared. Every identifier (
REQ-NNN,SEC-NNN,CON-NNN,GUD-NNN,PAT-NNN,GOAL-NNN,TASK-NNN,ALT-NNN,DEP-NNN,FILE-NNN,TEST-NNN,RISK-NNN,ASSUMPTION-NNN) must be declared exactly once. A declaration is where the identifier introduces a row: the leading cell in a TASK/GOAL table row, or the bolded prefix in a bullet line like- **REQ-001**: .... The same identifier may then appear any number of times as a reference elsewhere in the plan (aTASKbody citing aREQ, oneTASKciting anotherTASK, the Dependencies section pointing at aDEPalready declared upstream, etc.). References are expected and not collisions.
Identifier Uniqueness Check
Run these checks before finalizing the plan. Checks (1) and (2) target declarations and must return zero rows. Check (3) is a broad informational scan: it will surface valid references too, so use it for awareness rather than as a gate.
# Set PLAN_FILE to the plan being validated.
PLAN_FILE="/plan/<purpose>-<component>-<version>.md"
# 1) Duplicate TASK / GOAL declarations in table rows.
grep -oE '\| (TASK|GOAL)-[0-9]+ \|' "$PLAN_FILE" \
| sed -E 's/.*((TASK|GOAL)-[0-9]+).*/\1/' \
| sort | uniq -d
# 2) Duplicate declaration IDs in bullet-style spec lines.
grep -oE '^- \*\*(REQ|SEC|CON|GUD|RISK|ASSUMPTION|TASK|GOAL|FILE|TEST|PAT|ALT|DEP)-[0-9]+\*\*:' "$PLAN_FILE" \
| sed -E 's/^- \*\*([A-Z]+-[0-9]+)\*\*:.*/\1/' \
| sort | uniq -d
# 3) Broad duplicate scan (diagnostic only; may include valid references).
grep -oE '(REQ|SEC|CON|GUD|RISK|ASSUMPTION|TASK|GOAL|FILE|TEST|PAT|ALT|DEP)-[0-9]+' "$PLAN_FILE" \
| sort | uniq -d
Prerequisites: a POSIX-compatible shell (sh / bash) with grep, sed, sort, and uniq. On Windows without these tools, use equivalent platform-native commands and preserve the same declaration-vs-reference logic.
If check (1) or (2) returns any row, re-number the duplicate so each identifier is declared exactly once, then re-run the checks until both are empty.
Status
The status of the implementation plan must be clearly defined in the front matter and must reflect the current state of the plan. The status can be one of the following (status_color in brackets): Completed (bright green badge), In progress (yellow badge), Planned (blue badge), Deprecated (red badge), or On Hold (orange badge). It should also be displayed as a badge in the introduction section.
---
goal: [Concise Title Describing the Package Implementation Plan's Goal]
version: [Optional: e.g., 1.0, Date]
date_created: [YYYY-MM-DD]
last_updated: [Optional: YYYY-MM-DD]
owner: [Optional: Team/Individual responsible for this spec]
status: 'Completed'|'In progress'|'Planned'|'Deprecated'|'On Hold'
tags: [Optional: List of relevant tags or categories, e.g., `feature`, `upgrade`, `chore`, `architecture`, `migration`, `bug` etc]
---
# Introduction

[A short concise introduction to the plan and the goal it is intended to achieve.]
## 1. Requirements & Constraints
[Explicitly list all requirements & constraints that affect the plan and constrain how it is implemented. Use bullet points or tables for clarity.]
- **REQ-001**: Requirement 1
- **SEC-001**: Security Requirement 1
- **[3 LETTERS]-001**: Other Requirement 1
- **CON-001**: Constraint 1
- **GUD-001**: Guideline 1
- **PAT-001**: Pattern to follow 1
## 2. Implementation Steps
### Implementation Phase 1
- GOAL-001: [Describe the goal of this phase, e.g., "Implement feature X", "Refactor module Y", etc.]
| Task | Description | Completed | Date |
|------|-------------|-----------|------|
| TASK-001 | Description of task 1 | ✅ | 2025-04-25 |
| TASK-002 | Description of task 2 | | |
| TASK-003 | Description of task 3 | | |
### Implementation Phase 2
- GOAL-002: [Describe the goal of this phase, e.g., "Implement feature X", "Refactor module Y", etc.]
| Task | Description | Completed | Date |
|------|-------------|-----------|------|
| TASK-004 | Description of task 4 | | |
| TASK-005 | Description of task 5 | | |
| TASK-006 | Description of task 6 | | |
## 3. Alternatives
[A bullet point list of any alternative approaches that were considered and why they were not chosen. This helps to provide context and rationale for the chosen approach.]
- **ALT-001**: Alternative approach 1
- **ALT-002**: Alternative approach 2
## 4. Dependencies
[List any dependencies that need to be addressed, such as libraries, frameworks, or other components that the plan relies on.]
- **DEP-001**: Dependency 1
- **DEP-002**: Dependency 2
## 5. Files
[List the files that will be affected by the feature or refactoring task.]
- **FILE-001**: Description of file 1
- **FILE-002**: Description of file 2
## 6. Testing
[List the tests that need to be implemented to verify the feature or refactoring task.]
- **TEST-001**: Description of test 1
- **TEST-002**: Description of test 2
## 7. Risks & Assumptions
[List any risks or assumptions related to the implementation of the plan.]
- **RISK-001**: Risk 1
- **ASSUMPTION-001**: Assumption 1
## 8. Related Specifications / Further Reading
[Link to related spec 1]
[Link to relevant external documentation]