Use when implementing a change with test-driven development (TDD): work test-first through focused red-green cycles.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Test-Driven Development
Use the repository's existing test tooling and conventions.
One test, one behaviour, one reason to fail. A test name describes that one
behaviour; never use joiners such as "and", "or", or "etc." to combine
independent outcomes. Multiple assertions are acceptable only when together
they establish that same behaviour.
## Red
- Select one observable behaviour from the requirement.
- Write one test before changing implementation code.
- Run the test and confirm it fails because the behaviour is missing, not because the test is broken.
## Green
- Write only enough implementation code to pass the failing test.
- Run the test, then run the relevant suite.
- Do not add behaviour without first seeing its test fail.
## Refactor
- Refactor only while the relevant suite is green, after completing a red-green slice.
- Refactor either the tests or the implementation in one pass, not both.
- Reuse shared setup, teardown, helpers, and parameterized structure when they clarify intent without combining behaviours.
- Rerun the relevant suite after each refactor pass.
## Patterns and anti-patterns
…
The line at the top of this page pins the label git:20260823.edc50a0, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_2yk4dc7qqe5bgpmn
GET https://markdownregistry.com/api/v1/resolve?ref=intent-driven-dev/intent-driven-template/test-driven-development
GET https://markdownregistry.com/api/v1/blob/8687c3dcc1d003801d103c66c84cb3afae77b93a309a37f240b1df55f76b3465
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
intent-driven-dev/intent-driven-template · .agents/skills/acceptance-test-authoring/SKILL.md · Use when creating or modifying acceptance tests, configuring cucumber-js or behave runners, writing or refactoring step…
intent-driven-dev/intent-driven-template · .agents/skills/c4-diagrams/SKILL.md · Use when explaining existing code architecture, visualizing a new system before detailed design, mapping software…
intent-driven-dev/intent-driven-template · .agents/skills/grill-me/SKILL.md · Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of…
intent-driven-dev/intent-driven-template · .agents/skills/openspec-git-discipline/SKILL.md · Use when running OpenSpec propose, continue, apply, verify, archive, or worktree workflows where proposal artifacts…
intent-driven-dev/intent-driven-template · .agents/skills/spec-as-source/SKILL.md · Use when a user or project explicitly adopts OpenSpec spec-as-source, fenced Gherkin specifications as executable…
intent-driven-dev/intent-driven-template · .opencode/skills/adversarial-authoring/SKILL.md · Use when rules or instructions mention "adversarial-authoring", "adversarial authoring", "must use…
intent-driven-dev/intent-driven-template · .opencode/skills/openspec-apply-change/SKILL.md · Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or…
intent-driven-dev/intent-driven-template · .opencode/skills/openspec-archive-change/SKILL.md · Archive a completed OpenSpec change in the experimental workflow. Use when the user wants to finalize and archive a…
intent-driven-dev/intent-driven-template · .opencode/skills/openspec-bulk-apply-change/SKILL.md · Use when multiple active OpenSpec changes should be applied concurrently in isolated worktrees with delegated…
addyosmani/agent-skills · skills/test-driven-development/SKILL.md · Drives development with tests using the red-green-refactor loop. Use when implementing any logic, fixing any bug, or…
mvschwarz/openrig · skills/_canonical/process/test-driven-development/SKILL.md · Use when implementing any feature or bugfix, before writing implementation code
mvschwarz/openrig · packages/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md · Use when implementing any feature or bugfix, before writing implementation code
cbrock84/headcount · plugins/technology/skills/test-driven-development/SKILL.md · Drives implementation by writing a failing test first, then the smallest code that passes it. Use this before writing…
a5c-ai/babysitter · library/methodologies/superpowers/skills/test-driven-development/SKILL.md · Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle.
a5c-ai/babysitter · library/methodologies/rpikit/skills/test-driven-development/SKILL.md · Test-first development practice where test specifications are written before production code, integrated into plan…