Skip to main content

implementing-code

Executes a batch of implementation tasks with TDD workflow, source-anchored rewrite for behavioral fidelity, guideline-based code transformation, and full requirement tracing. Returns a structured batch report. Triggers: "implement tasks", "execute the batch", "write code for these tasks", "implement with source anchoring", "run the implementation". NOT for: task generation (use breaking-down-tasks), implementation planning (use creating-implementation-plan).

Source facts

Repository
microsoft/github-copilot-modernization
Last source activity
September 22, 2026 at 08:42
Detected SKILL.md language
English
Stars
49
Forks
14

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
implementing-code
description
Executes a batch of implementation tasks with TDD workflow, source-anchored rewrite for behavioral fidelity, guideline-based code transformation, and full requirement tracing. Returns a structured batch report. Triggers: "implement tasks", "execute the batch", "write code for these tasks", "implement with source anchoring", "run the implementation". NOT for: task generation (use breaking-down-tasks), implementation planning (use creating-implementation-plan).
## User Input You **MUST** consider the user input before proceeding (if not empty). ## Output Code files are written into the project tree. The batch report is written under **the provided artifact path**. ``` batch-report.yaml ← structured result consumed by caller ``` ## Workflow ### Step 1: Verify Prerequisites (first batch only) Confirm required artifacts exist: plan.md (with task list and Requirement Mapping table), feature spec. ### Step 2: Load Context Read from the provided artifact path and dependency artifacts. Scan the artifact directory to find these categories: | Category | Required | Purpose | Look for | |----------|----------|---------|----------| | Task breakdown | ✅ | Work items with T-IDs to implement | Artifact with task IDs (T001, T002...), may be in `tasks/` subdirectory or main planning artifact | | Feature spec | ✅ | Requirements (REQ-XXX) and acceptance criteria | Artifact with REQ-XXX identifiers and user scenarios | | Constitution | ✅ | Project principles and constraints | Usually named `constitution.md` in artifact root | | Implementation plan | ✅ | Phased plan with architecture decisions | Artifact with phased sections and plan references | | Architecture design | ✅ | API contracts, layering, package structure | Artifact with design decisions | | Data model | If exists | Entity definitions, mappings, FK strategy | Artifact with schema/entity details | | UX/UI spec | If exists | Screen layouts, user flows, components | Artifact with screen specs | | Knowledge graph | If exists | Module dependencies and class relationships | JSON file with nodes/edges in artifact path | | Checkpoints | If exists | Upstream traceability | YAML files in `checkpoints/` subdirectory | | Guidelines | If exists | Migration rules and transformation patterns | Search `guidelines` skill | ### Step 3: Checklist Gate (first batch only) If `checklists/` directory exists, scan checklist files. If any incomplete items: display table and ask before proceeding. ### Step 4: Project Setup (first batch only) Create/verify ignore files. See `references/ignore-patterns.md` for patterns by language/tool. ### Step 5: Match Tasks from Breakdown From the task breakdown artifact, find tasks that match your current assignment: 1. Read the task breakdown (from dependency artifacts) 2. Match tasks by role, module/domain, or phase that align with your task description 3. For each matched task, extract: - Task ID, description, acceptance criteria - Plan references and REQ-XXX traceability - Source file references (rewrite mode) - Dependencies and parallel markers Unmet dependency not in current batch → report as blocked. ### Step 5.5: Discover Required API Endpoints (web applications only) **Before writing any implementation code**, check whether an endpoint contract test script exists in the project root: ```bash for script in api-test.sh api-check.sh smoke.sh health-check.sh test-api.sh; do test -f "./$script" && echo "found: $script" && break done ``` **If a script is found:** 1. Read its full contents to extract every endpoint it exercises: URL paths, HTTP methods, expected status codes, and expected response shape. 2. Treat every such endpoint as a **mandatory acceptance criterion** for this batch — equivalent to an explicit REQ in the feature spec. Missing even one will cause the post-build evaluation to fail. 3. Cross-check each endpoint against the matched task list. If any script endpoint is absent from the task breakdown, add it as an implicit sub-task in your execution plan (e.g., `T_API_dashboard: Implement GET /api/dashboard`). 4. Record the discovered endpoint list at the top of `batch-report.yaml` under `required_endpoints`: ```yaml required_endpoints: - method: GET path: /api/dashboard source: api-test.sh status: pending # updated to "implemented" when the endpoint is wired up and verified - method: GET path: /api/items source: api-test.sh status: pending ``` **If no script is found:** - Check `clarification.md` (if present) for any explicitly listed required API endpoints. - Check the feature spec for API contract sections. - If neither source provides an endpoint list, proceed without this step. This discovery step ensures that evaluation scripts are treated as first-class requirements from the start of implementation — not discovered only at post-build verification when fixes are costly. ### Step 6: Execute **Ordering:** - Sequential tasks: in order - Parallel `[P]` tasks: can run together - Same-file tasks: must run sequentially **TDD Flow:** 1. Setup: project structure, dependencies, configuration 2. Tests before code: contract, entity, integration tests 3. Core: models, services, endpoints 4. Integration: DB, middleware, logging, external services 5. Run tests: execute module-level tests (e.g., `mvn test -pl <module> -am`). ALL tests must PASS. Report pass/fail/skip counts in batch report. Test failure = task NOT complete. **Constitution & Requirement Fidelity:** - Before each task, re-read traced `REQ-XXX` — implement requirement intent, not just task description. - Verify decisions align with constitution principles. **Source-Anchored Rewrite (MANDATORY in rewrite mode):** For tasks with `[Source:]`, follow `references/source-anchored-rewrite.md`. **Guideline-Based Transformation:** For tasks marked `[GUIDELINE:skill-name]`: 1. Load each top-level guideline skill named in the plan 2. Apply transformation rules, import changes, method mappings 3. Use before/after examples as reference **Parallelism:** Run independent tasks (`[P]` marked) in parallel as much as possible to maximize throughput. **Error Handling:** - Halt on non-parallel task failure - For `[P]` tasks: continue successful ones, report failures ### Step 6.5: JS/TS Scaffolding Validation Gate (JS/TS projects only) **After any scaffolding step that generates or modifies a `package.json`**, execute this gate before proceeding to the next task. This gate is MANDATORY for all JavaScript and TypeScript projects. #### 6.5.1 — Verify required npm scripts Check that `package.json` contains BOTH a `build` script AND a `test` script: ```bash node -e " const pkg = require('./package.json'); const missing = ['build','test'].filter(s => !pkg.scripts || !pkg.scripts[s]); if (missing.length) { console.error('MISSING scripts:', missing.join(', ')); process.exit(1); } console.log('scripts OK: build=' + pkg.scripts.build + ', test=' + pkg.scripts.test); " ``` **If either script is missing**, inject it immediately — do NOT defer: | Framework | Missing `test` script | Missing `build` script | |-----------|----------------------|----------------------| | Angular (`@angular/core` in deps) | `"test": "ng test --watch=false --browsers=ChromeHeadless"` | `"build": "ng build"` | | React / Vite | `"test": "vitest run"` or `"test": "react-scripts test --watchAll=false"` | `"build": "vite build"` | | React / CRA | `"test": "react-scripts test --watchAll=false --ci"` | `"build": "react-scripts build"` | | Vue / Vite | `"test": "vitest run"` | `"build": "vite build"` | | Next.js | `"test": "jest --ci"` | `"build": "next build"` | | NestJS / Node | `"test": "jest --ci"` | `"build": "nest build"` | | Generic TS | `"test": "jest --ci"` | `"build": "tsc"` | After injecting, confirm the script was written and re-verify with the check above. #### 6.5.2 — Run the test script After confirming both scripts exist, execute: ```bash npm test ``` (or `yarn test` / `pnpm test` if the project uses those package managers) - **Exit code 0**: gate passes — proceed. - **Exit code != 0**: enter a remediation loop (max 3 iterations): 1. Read the failure output to identify the root cause (missing browser binary, missing test files, misconfigured jest config, etc.) 2. Fix the cause (install missing dev dependency, create a minimal placeholder test, fix config) 3. Re-run `npm test` 4. If still failing after 3 iterations, record the failure in `batch-report.yaml` under `warnings` with severity HIGH and continue — do NOT block the entire batch: ```yaml warnings: - severity: HIGH message: "npm test failed after 3 remediation attempts — <last error summary>" ``` > **Why this gate exists**: Eval harnesses run `npm test` unconditionally. A scaffolded project without a `test` script causes an immediate fatal error (`npm error Missing script: "test"`) that masks all other results. Catching this at scaffolding time costs ~5 seconds; missing it causes total batch failure. ### Step 6.6: API Endpoint Verification (web-application backends only) For any batch that produces or modifies a web-application backend (Spring Boot, Express, NestJS, FastAPI, Django, ASP.NET Core, Go HTTP servers, and similar), verify endpoints **respond correctly at runtime** before the batch is considered complete. A passing build proves only compilation, not that routes are wired up. #### 6.6.1 — Run the discovered endpoint contract (if any) If Step 5.5 found an endpoint contract script (`api-test.sh`, `api-check.sh`, …), start the application if not already running, then execute it: ```bash bash ./api-test.sh # or whichever script Step 5.5 recorded echo "api-test exit code: $?" ``` - **Exit code 0** → all endpoint assertions pass → proceed. - **Exit code != 0** → enter the fix loop (max 3 iterations): 1. Read the output to identify which endpoints returned errors (missing route, wrong status code, unexpected body). 2. Implement or correct the backend endpoint(s): add the missing controller/handler, fix route mapping, return the expected response shape. 3. Re-run the script. Repeat until exit code is 0 or 3 iterations are exhausted. 4. If still failing after 3 iterations, record the failure in `batch-report.yaml` under `warnings` with severity HIGH and escalate via `[notify:coordinator]` — do NOT mark the affected endpoints `implemented`. #### 6.6.2 — Manual probe (no script found) If no endpoint contract script exists, probe every REST endpoint the batch implemented after starting the application: ```bash curl -sf -o /dev/null -w "%{http_code}" http://localhost:<PORT><endpoint> ``` Every implemented endpoint MUST return a 2xx status code. A 404 or 500 means the route is not wired correctly — fix before completing the batch. Record probe results in the batch report under `endpoint_probes`: ```yaml endpoint_probes: - method: GET path: /api/dashboard status: 200 result: PASS ``` ### Step 7: Write Checkpoint After ALL tasks in this batch complete, write `checkpoints/tasks-to-impl.yaml` using `templates/tasks-to-impl-checkpoint-template.yaml`. This is REQUIRED — completeness gate reads it to verify traceability. ### Step 8: Report Generate batch result report per `references/batch-report-format.md` (YAML format). **If `required_endpoints` was populated in Step 5.5**, update each entry's `status` to `"implemented"` once the corresponding endpoint is wired up and verified to respond correctly. Any entry still `"pending"` at report time is a gap — record it under `warnings` with severity HIGH: ```yaml warnings: - severity: HIGH message: "Endpoint GET /api/dashboard was required by api-test.sh but not implemented in this batch" ``` ## Resources ### References - `references/source-anchored-rewrite.md` — Rewrite-mode behavioral fidelity process - `references/ignore-patterns.md` — Ignore file patterns by language/tool - `references/batch-report-format.md` — Required YAML output format
View on GitHub