Files
awesome-copilot/skills/create-implementation-plan/SKILL.md
T
Komal Vardhan Lolugu df58232729 create-implementation-plan: require unique identifiers (#1989) (#2142)
* 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.
2026-06-30 10:36:03 +10:00

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 (a TASK body citing a REQ, one TASK citing another TASK, the Dependencies section pointing at a DEP already 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

![Status: <status>](https://img.shields.io/badge/status-<status>-<status_color>)

[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]