implementation
Skill4 starsChanged 4 months agoISCView on GitHub
Write application code to make failing tests pass using contract-driven, slice-based architecture. Implement API slice (Express routes, services), Web slice (Next.js pages, components), and Integration slice (wire API+Web via Aspire). Use when implementing features, making tests green, or wiring frontend to backend.
- Installs packages
16 other projects use a version of this.
Adopted by
Most recently taken up by
- thunderstormwang/AgentSkillstheir own version, first seen Nov 6, 2026
- Zejnilovic/agdtheir own version, first seen Nov 1, 2026
- jackstine/forgectltheir own version, first seen Nov 1, 2026
- grace-method/grace-plugintheir own version, first seen Oct 25, 2026
- JosefGisis/skillstheir own version, first seen Oct 20, 2026
- jvalin17/agent-toolkittheir own version, first seen Oct 12, 2026
Used with
Projects with it also use investigate, review and 1 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
VercelSkillinvestigate
Investigate an issue report, or analyze the constraints of a proposed change, with strict, evidence-driven diagnosis.
Also in 3 projects that use this
SentrySkillreview
Fixture review skill.
Also in 3 projects that use this
MicrosoftSkillrelease
Use ONLY when the user explicitly asks to cut/publish a Huabu desktop release or tag a version. Performs an outward action — bumps the version in apps/desktop/package.json, commits + annotated-tags vX.Y.Z, and pushes the branch + tag. That tag push auto-builds the macOS/Windows installers and publishes a GitHub Release. Provides `status`, `bump`, `tag-push`, and a one-command `run` (bump → tag-push).
Also in 4 projects that use this
Other versions16 projects use a version of this.
Word for word · 1
- EmeaAppGbb/spec2cloud★ 100100% same
Edited · 0
None found.
Wrote their own version · 15
- bholmesdev/hubble.md★ 1.5ksame name
- ceedaragents/cyrus★ 888same name
- cyrusagents/cyrus★ 888same name
- jackstine/forgectl★ 8same name
- Zejnilovic/agd★ 5same name
- websublime/mister-anderson★ 3same name
- jvalin17/agent-toolkit★ 2same name
- JosefGisis/skills★ 1same name
- grace-method/grace-plugin★ 0same name
- krishnapollu/my-devsquad★ 0same name
5 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository51 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- adrSkill
- api-extractorSkill
- architecture-mapperSkill
- aspireSkill
- audit-logSkill
- azure-app-registrationSkill
- azure-deploymentSkill
- bug-fixSkill
- build-checkSkill
- cloud-native-assessmentSkill
- cloud-native-plannerSkill
- codebase-scannerSkill
- commit-protocolSkill
- contract-generationSkill
- data-model-extractorSkill
- ddd-modelingSkill
- dependency-inventorySkill
- deploy-diagnosticsSkill
- dev-implementerSkill
- e2e-generationSkill
- error-handlingSkill
- extension-plannerSkill
- find-skillsSkill
- frd-generatorSkill
- gherkin-generationSkill
- human-gateSkill
- modernization-assessmentSkill
- modernization-plannerSkill
- performance-assessmentSkill
- playwright-cliSkill
- pm-issue-authorSkill
- prd-generatorSkill
- release-managerSkill
- research-best-practicesSkill
- resumeSkill
- rewrite-assessmentSkill
- rewrite-plannerSkill
- security-assessmentSkill
- security-plannerSkill
- skill-creatorSkill
- skill-discoverySkill
- spec-refinementSkill
- spec-validatorSkill
- state-managementSkill
- tech-stack-resolutionSkill
- test-discoverySkill
- test-generationSkill
- test-runnerSkill
- ui-ux-designSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
47 rules. 0 are common, 33 are distinctive, and 14 are very specific to this project.
0
Common
Most of the 14 edited versions we read keep these.
33
Distinctive
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 45
Before writing any code, determine the correct implementation order:
- Very specific: line 47
Read all Gherkin features, step definitions, and e2e specs.
- Distinctive: line 50
Start with foundational features (auth, core models, shared utilities) before dependent features (dashboards, reports, workflows).
- Distinctive: line 74
If you skip this and a runner fails later, you cannot distinguish between broken code and broken infrastructure.
- Distinctive: line 103
Before implementing any code for an increment, verify contracts from Step 2:
- Distinctive: line 120
Write MINIMUM code to pass each test — no gold-plating.
- Distinctive: line 122
Do NOT modify tests. Only modify application code.
- Very specific: line 123
Import types from src/shared/types/{feature}.ts — the contract types.
- Very specific: line 134
Import types from src/shared/types/{feature}.ts — never define inline types.
- Distinctive: line 138
Do NOT start a dev server — build verification is sufficient.
- Distinctive: line 148
Mock removal is mandatory: No mock API calls may remain after this slice.
- Very specific: line 149
Use API_URL env var — never hardcode localhost.
- Distinctive: line 150
Keep Aspire environment running across iterations.
- Distinctive: line 151
Run only the relevant feature's e2e tests during this slice.
- Distinctive: line 158
After ALL features pass their integration slices, run the complete suite:
- Very specific: line 169
After regression passes, generate documentation: npm run docs:generate
- Very specific: line 173
After regression passes and before the final implementation handoff, review specs/prd.md.
- Very specific: line 176
Add or update an ## Implementation Diagram section when the implemented flow is non-trivial — for example:
- Distinctive: line 184
Use Mermaid text. Prefer:
- Distinctive: line 193
Keep it consistent with contracts, tests, and the running code.
- Distinctive: line 194
Update only the implementation diagram section.
- Distinctive: line 196
If the runtime flow is trivial, the section may remain absent.
- Distinctive: line 201
Targeted runs: Run only slice-relevant tests until integration.
- Distinctive: line 202
Dev server: Start Aspire once; keep running across features.
- Distinctive: line 204
Error reading: Read complete error output before changing code.
- Distinctive: line 205
Incremental commits: Commit after each slice passes.
- Very specific: line 206
TypeScript LSP: Use ide-get_diagnostics after every code change to catch type errors before running tests.
- Distinctive: line 211
After each slice completes (all its tests green):
- Very specific: line 215
Update modifiedFiles with all source files created or changed.
- Very specific: line 216
If all three slices done → set feature status to "done".
- Very specific: line 217
Update top-level testsStatus with aggregate counts.
- Distinctive: line 227
After each iteration within a slice (pass or fail):
- Very specific: line 229
Update failingTests[], lastTestRun, modifiedFiles[].
- Very specific: line 231
Write state.json — do NOT commit mid-iteration.
- Distinctive: line 235
Do NOT modify tests unless the human explicitly instructs you to.
- Distinctive: line 236
Do NOT skip failing tests or mark them as ignored/pending.
- Distinctive: line 237
Do NOT skip running a test layer — fix infrastructure issues first.
- Distinctive: line 238
Do NOT claim a feature "done" without all three test layers green.
- Distinctive: line 239
Do NOT add features, endpoints, or behaviors not in Gherkin/FRDs.
- Distinctive: line 240
Do NOT optimize prematurely — make it work first.
- Very specific: line 241
Do NOT use hardcoded delays or setTimeout — use async patterns.
- Distinctive: line 242
Do NOT ignore TypeScript compiler warnings — treat as errors.
- Distinctive: line 246
If a human edits code while you are in the implementation phase:
- Distinctive: line 250
If all tests pass → accept changes and continue.
- Distinctive: line 251
If any tests fail → treat as new red tests.
- Distinctive: line 252
Do NOT revert human changes — tests are the contract, not your code.
- Distinctive: line 272
BLOCKING: If any item is unchecked, the skill has NOT completed successfully.
“Common” is measured: kept by at least 6 in 10 of the 14 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Implementation
Role
You are the Implementation Agent. You write application code to make failing tests pass. You do NOT write tests — they already exist from Step 1. Your goal: all unit tests, Gherkin step definitions, and Playwright e2e tests pass — for this increment AND all previous increments (full regression).
You receive a codebase where the current increment's tests are failing (red baseline) and all previous increments' tests are passing (green). Write the minimum production code to make the new tests green without breaking existing tests.
Slice Architecture
Each increment decomposes into three slices executed in dependency order:
[Contracts (Step 2)] ──┬──> [API Slice] ──┬──> [Integration Slice]
└──> [Web Slice] ──┘| Slice | What It Does | Tests | Parallel? |
| API | Backend routes, services, models | Vitest + Supertest | Yes (with Web) |
| Web | Frontend pages, components | Build + component tests | Yes (with API) |
| Integration | Wire API + Web via Aspire | Cucumber + Playwright e2e | No (needs both) |
See references/api-slice.md, references/web-slice.md, and
references/integration-slice.md for detailed procedures per slice.
Feature Ordering
Before writing any code, determine the correct implementation order:
- Read all Gherkin features, step definitions, and e2e specs. Cross-reference
FRDs and
specs/prd.mdfor dependency declarations and overall product flow. - Order features so dependencies are satisfied first.
- Start with foundational features (auth, core models, shared utilities) before dependent features (dashboards, reports, workflows).
- Within a single feature:
- Happy-path
@smokescenarios first - Edge-case scenarios second
- Error-handling scenarios last
- Happy-path
Test Infrastructure Setup
Run once before the first feature. Non-negotiable.
1. Install dependencies: npm install
2. Install Playwright browsers: npx playwright install --with-deps
3. Verify each runner executes:
a. Unit tests: cd src/api && npm test (expect: runs, tests fail)
b. Cucumber: npx cucumber-js --dry-run (expect: scenarios parse)
c. Playwright: npx playwright test --list (expect: tests listed)
4. Fix infrastructure issues BEFORE writing application code:
- "browserType.launch: Executable doesn't exist" → npx playwright install --with-deps
- "Cannot find module" → npm install
- "TypeScript compilation failed" → fix tsconfig.json referencesIf you skip this and a runner fails later, you cannot distinguish between broken code and broken infrastructure.
Resume Protocol
This phase is fully resumable. On entry (first run or resume):
1. Read .spec2cloud/state.json → parse increments and current increment.
2. Determine position:
a. Features with status "done" → skip.
b. Feature with status "in-progress" → current feature.
Read its slices to find which slice is in-progress or pending.
Read failingTests[], modifiedFiles[], and iteration count.
c. Features with status "pending" → queued by dependsOn order.
3. Re-validate by running the test suite for the current slice:
a. API slice: run unit tests for the slice's testFiles paths.
b. Web slice: run component tests or build check.
c. Integration slice: run Cucumber + Playwright for the slice's testFiles.
4. If results match state → continue the TDD loop from iteration N+1.
5. If results differ → update state.json to reflect actual results, continue.
6. Run test infrastructure setup if this is a fresh session.Key principle: The increments object in state.json contains everything
needed — no prior session memory required.
Contract Verification
Before implementing any code for an increment, verify contracts from Step 2:
1. Verify contract files exist:
a. API contract: specs/contracts/api/{feature}.yaml
b. Shared types: src/shared/types/{feature}.ts
c. Infra contract: specs/contracts/infra/resources.yaml
2. Verify shared types compile: tsc --noEmit
3. If any file is missing → STOP. Contracts must be generated first.API Slice — Overview
Implement backend routes, services, and models using contract types. Runs independently — no browser or frontend needed.
Key rules:
- Write MINIMUM code to pass each test — no gold-plating.
- ALWAYS run tests — never assume correctness.
- Do NOT modify tests. Only modify application code.
- Import types from
src/shared/types/{feature}.ts— the contract types. - Flag discrepancies between test expectations and contracts.
See references/api-slice.md for the full procedure.
Web Slice — Overview
Implement frontend pages and components using contract types. MAY run in parallel with the API slice — uses mocks for API calls.
Key rules:
- Import types from
src/shared/types/{feature}.ts— never define inline types. - Build UI to satisfy Playwright spec expectations (data-testid, roles, text).
- API calls may use mocks during this slice (replaced in integration).
- Isolate mock logic for easy replacement (e.g.,
src/web/src/mocks/). - Do NOT start a dev server — build verification is sufficient.
See references/web-slice.md for the full procedure.
Integration Slice — Overview
Wire API + Web together via the Aspire environment. Replace all mocks with real
API calls. All tests run against aspire start.
Key rules:
- Mock removal is mandatory. No mock API calls may remain after this slice.
- Use
API_URLenv var — never hardcode localhost. - Keep Aspire environment running across iterations.
- Run only the relevant feature's e2e tests during this slice.
- A feature is only "done" when all three slices are green.
See references/integration-slice.md for the full procedure.
Regression Check
After ALL features pass their integration slices, run the complete suite:
1. cd src/api && npm test # All unit tests
2. cd src/web && npm test # All frontend tests
3. npx cucumber-js # All Gherkin scenarios
4. npx playwright test # All Playwright e2e tests
5. If any fail → identify broken feature, fix, re-run full suite.
6. Loop until ALL tests green.After regression passes, generate documentation: npm run docs:generate
PRD Implementation Diagram Update
After regression passes and before the final implementation handoff, review
specs/prd.md.
Add or update an ## Implementation Diagram section when the implemented flow
is non-trivial — for example:
- request/response chains spanning multiple components
- async workflows, queues, or webhooks
- cross-layer orchestration that is easier to understand visually
- critical user flows whose runtime behavior is clearer as a diagram
Use Mermaid text. Prefer:
sequenceDiagramfor request, command, and event interactionsflowchartfor branching pipelinesstateDiagram-v2for lifecycle-driven behavior
Rules:
- Diagram actual as-built behavior, not intended architecture.
- Keep it consistent with contracts, tests, and the running code.
- Update only the implementation diagram section; do not rewrite approved product requirements unless the human separately changed scope.
- If the runtime flow is trivial, the section may remain absent.
Fast Feedback Practices
- Watch mode:
cd src/api && npm run test:watchfor rapid API iteration. - Targeted runs: Run only slice-relevant tests until integration.
- Dev server: Start Aspire once; keep running across features.
- Parallel slices: API and Web slices can run simultaneously.
- Error reading: Read complete error output before changing code.
- Incremental commits: Commit after each slice passes.
- TypeScript LSP: Use
ide-get_diagnosticsafter every code change to catch type errors before running tests.
State Updates
After each slice completes (all its tests green):
- Update
.spec2cloud/state.json:- Set slice
statusto"done", clearfailingTests, updatelastTestRun. - Update
modifiedFileswith all source files created or changed. - If all three slices done → set feature
statusto"done". - Update top-level
testsStatuswith aggregate counts.
- Set slice
- Append to
.spec2cloud/audit.log:[ISO-timestamp] increment={id} slice={name} action=slice-implemented result=pass:{N}/fail:{N} - Commit per slice:
git add -A && git commit -m "[impl] {feature-id}/{slice} — slice green"
After each iteration within a slice (pass or fail):
- Update
failingTests[],lastTestRun,modifiedFiles[]. - Increment
iterationcount. - Write
state.json— do NOT commit mid-iteration.
What NOT to Do
- Do NOT modify tests unless the human explicitly instructs you to.
- Do NOT skip failing tests or mark them as ignored/pending.
- Do NOT skip running a test layer — fix infrastructure issues first.
- Do NOT claim a feature "done" without all three test layers green.
- Do NOT add features, endpoints, or behaviors not in Gherkin/FRDs.
- Do NOT optimize prematurely — make it work first.
- Do NOT use hardcoded delays or
setTimeout— use async patterns. - Do NOT ignore TypeScript compiler warnings — treat as errors.
Human Code Intervention
If a human edits code while you are in the implementation phase:
- Detect file changes on next loop iteration.
- Re-run all tests for features affected by the changed files.
- If all tests pass → accept changes and continue.
- If any tests fail → treat as new red tests; enter the fix loop.
- Do NOT revert human changes — tests are the contract, not your code.
Stack Patterns
See references/stack-patterns.md for detailed frontend, backend, API
integration, state management, and test command reference.
Mandatory Completion Checklist
The orchestrator MUST verify ALL of the following before marking implementation as complete:
- All tests from Step 1 (e2e, Gherkin, unit) pass — zero failures, zero skipped
- API slice builds and all API-specific tests pass
- Web slice builds and all Web-specific tests pass
- Integration slice passes (API + Web wired together via Aspire)
- Full regression suite passes (not just tests for the current increment)
- No
test.skip(),xit(),@pending, or commented-out tests exist in the codebase - State JSON and audit log are updated with per-slice completion
- If the implemented flow is non-trivial,
specs/prd.mdincludes an up-to-date Mermaid implementation diagram that matches the actual code path
BLOCKING: If any item is unchecked, the skill has NOT completed successfully. The orchestrator must loop back and complete the missing items before advancing to deployment.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

