creating-implementation-plan

Creates an implementation plan AND task breakdown from a feature spec by consuming design artifacts. Produces plan.md with implementation steps, inline task…

npx skills add https://github.com/microsoft/github-copilot-modernization --skill creating-implementation-plan

User Input

You MUST consider the user input before proceeding (if not empty).

Output

All outputs are written under your task's Artifact path: (from task metadata).

plan.md                          ← main artifact: plan + task breakdown + requirement mapping table
research.md                      ← resolved spec-level unknowns (if any)
checkpoints/spec-to-plan.yaml    ← REQ-XXX → plan item traceability
checkpoints/plan-to-tasks.yaml   ← plan item → task traceability

Workflow

Step 1: Load Context

  1. Read the feature spec. Extract all REQ-XXX requirement IDs.
  2. Read constitution.md for principles and constraints.
  3. Read knowledge-graph.json (if available) for architecture understanding.
  4. Read all dependency artifacts listed in the task's ## Dependency Artifacts metadata. These typically include architecture analysis, data model, API contracts, UX patterns, and feature specs — but filenames follow the <taskId>-<role>.md convention, not fixed names.
  5. Read the project topology (project-topology.md in the artifacts directory) if it exists. Extract the module group table (G1, G2, ...) and their scope (in-scope / context-only). These G-group labels will be used in Step 3 and Step 4 to tag plan items and tasks.
  6. If any required design artifact is missing, escalate — do NOT produce them yourself.

Step 2: Resolve Remaining Unknowns

Ownership boundary: analyzing-architecture produces codebase research and design artifacts. This step only resolves spec-level unknowns (NEEDS CLARIFICATION items, technology choices not yet decided). If codebase research is missing, escalate.

  1. Extract any remaining NEEDS CLARIFICATION from the feature spec.
  2. For each → research and resolve.
  3. Consolidate in research.md (only if there were unknowns to resolve):
    • Decision: [what was chosen]
    • Rationale: [why]
    • Alternatives considered: [what else evaluated]

Step 3: Plan Assembly

  1. Load all dependency artifacts from task metadata (see Step 1.4).
  2. Fill plan template (templates/plan-template.md):
    • Technical Context: derive HOW decisions from design artifacts + constitution + guidelines.
    • Constitution Check from constitution principles.
  3. Integrate guidelines: Scan skills/guidelines/ for matching tech patterns. Document under "Applied Guidelines".
  4. Map every plan item to at least one REQ-XXX.
  5. Tag plan items with G-groups: If a project topology was loaded in Step 1.5, every Implementation Step that maps to a specific module group MUST include the G-group label in its title (e.g., ### Step 3: [G1] Payment gateway integration). Cross-cutting steps that span all groups use [Cross-cutting] instead. This enables downstream DAG generation to extract group membership directly from the plan.
  6. Write plan.md section by section (write each section before moving to the next): a. Header + Summary b. Technical Context (from design artifacts) c. Constitution Check d. Applied Guidelines e. Implementation Steps (phases with plan items, each referencing REQ-XXX) f. Project Structure

Step 4: Task Breakdown

For each implementation phase in the plan, expand every plan item into concrete tasks:

Task format (each task on its own line):

- [ ] T001 [G?] [P?] [Story?] [Plan:X.Y] Description with exact file path [Source: path/to/file.java#method] [BL: BL-XXX]

Format components:

  • Checkbox: Always - [ ]
  • Task ID: Sequential (T001, T002...) in execution order
  • [G] label: [G1], [G2], [Cross-cutting] etc. REQUIRED when project topology exists — inherited from the plan item's G-group tag (Step 3.5). Omit when no project topology.
  • [P] marker: Only if parallelizable (different files, no dependencies)
  • [Story] label: [US1], [US2] etc. Required for user story phases only; omit for Setup/Foundational/Polish phases
  • [Plan:X.Y]: REQUIRED — references source plan item. Multiple: [Plan:2.1,2.3]
  • Description: Clear action with exact file path
  • [Source:]: REQUIRED in rewrite mode for code conversion tasks: [Source: src/.../File.java#method1,method2]
  • [BL: BL-XXX]: optional link to business-logic-inventory.md

Rewrite Mode Source Annotation Rules:

  • Path relative from repo root
  • Methods after #, comma-separated
  • Multiple files: multiple [Source:] annotations
  • Entire file: omit #
  • Non-source tasks (setup, config) don't need [Source:]

Task organization:

  • Phase 1: Setup (project initialization, scaffold)
  • Phase 2: Foundational (blocking prerequisites, data layer)
  • Phase 3+: User stories in priority order (P1, P2, P3...)
    • Within each story: Models → Services → Endpoints → Integration
  • Final phase: Cross-cutting concerns, polish

Write tasks inline in plan.md under each phase — do NOT create a separate tasks/ directory. Tasks are embedded in the plan document for coherence.

After writing all tasks, generate checkpoint files using the templates:

  • checkpoints/spec-to-plan.yaml — using templates/spec-to-plan-checkpoint-template.yaml
  • checkpoints/plan-to-tasks.yaml — using templates/plan-to-tasks-checkpoint-template.yaml

Examples:

- [ ] T001 [Plan:1.1] Create project structure per implementation plan
- [ ] T005 [P] [Plan:2.1] Implement auth middleware in src/middleware/auth.py
- [ ] T012 [P] [US1] [Plan:2.2] Create User model in src/models/user.py
- [ ] T015 [US3] [Plan:3.2] Convert ProductAction to ProductController [Source: src/.../ProductAction.java#list,add]

Step 5: Requirement Mapping

After all phases and tasks are written, append this section to plan.md:

## Requirement Mapping

| REQ ID | Description | Plan Items | Implementation Evidence |
|--------|-------------|------------|------------------------|
| REQ-001 | [short description] | P2.1, P3.2 | AuthController.java, UserService.java |
| REQ-002 | [short description] | P3.1 | ProductRepository.java |

Rules:

  • Every REQ-XXX from the spec MUST appear in this table
  • Plan Items lists which plan item IDs address this requirement
  • Implementation Evidence describes what files/classes will prove completion (fill based on the tasks you just wrote)
  • If any requirement has no plan item → ERROR, do not proceed

Step 6: Report

Report completion with:

  • Output artifact paths (relative to cwd)
  • Coverage summary: N requirements mapped, N tasks generated
  • Any warnings or unresolved items

Guideline Check

Before generating the plan, check for applicable guidelines:

  1. Identify technologies from feature spec and design artifacts.
  2. Search skills/guidelines/ for matching patterns.
  3. For each match: extract relevant rules, integrate into plan, document in "Applied Guidelines" section.

General Rules

  • Write all outputs to cwd using relative paths.
  • ERROR on gate failures or unresolved clarifications.
  • Apply guideline skills when technology patterns match.
  • NEVER proceed with missing requirement coverage.
  • NEVER produce design artifacts (data-model.md, contracts/) — consume them from upstream analysis tasks.
  • NEVER stop after plan steps alone — task breakdown and Requirement Mapping table are part of this skill's deliverable.
  • Tasks must be immediately executable by an LLM without additional context.
  • Tests are OPTIONAL — only generate if explicitly requested.

Resources

Templates

  • templates/plan-template.md — Implementation plan document template
  • templates/tasks-template.md — Task list structure template
  • templates/spec-to-plan-checkpoint-template.yaml — REQ traceability checkpoint template
  • templates/plan-to-tasks-checkpoint-template.yaml — Plan-to-tasks traceability checkpoint template

References

  • references/task-format.md — Task checklist format rules: [P], [Plan:X.Y], [Source:] annotations, rewrite mode requirements

More skills from microsoft

oss-growth
microsoft
OSS growth hacker persona
agent-framework-azure-ai-py
microsoft
Build Azure AI Foundry agents using the Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Use when creating persistent agents with AzureAIAgentsProvider, using hosted tools (code interpreter, file search, web search), integrating MCP servers, managing conversation threads, or implementing streaming responses. Covers function tools, structured outputs, and multi-tool agents.
development
airunway-aks-setup
microsoft
Set up AI Runway on AKS — from bare cluster to running model. Covers cluster verification, controller install, GPU assessment, provider setup, and first deployment. WHEN: "setup AI Runway", "onboard AKS cluster", "install AI Runway", "airunway setup", "deploy model to AKS", "GPU inference on AKS", "KAITO setup on AKS", "run LLM on AKS", "vLLM on AKS", "set up model serving on AKS", "AI Runway controller".
devops
appinsights-instrumentation
microsoft
Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. WHEN: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices.
devops
applicationinsights-web-ts
microsoft
Instrument browser/web apps with the Application Insights JavaScript SDK (@microsoft/applicationinsights-web). Use for Real User Monitoring (RUM) — page views, clicks, AJAX/fetch dependencies, exceptions, custom events, and browser-side GenAI agent traces correlated to backend OpenTelemetry traces. Covers SDK Loader Script and npm setup, framework extensions (React, React Native, Angular), Click Analytics, telemetry initializers, and OTel GenAI semantic conventions for agent/tool/model spans emitted from the browser.
devops
azure-ai-anomalydetector-java
microsoft
Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.
development
azure-ai-language-conversations-py
microsoft
Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 for Python. Use for ML workspaces, jobs, models, datasets, compute, and pipelines. Triggers: "azure-ai-ml", "MLClient", "workspace", "model registry", "training jobs", "datasets".
development