TDD a Feature
Red → green → refactor. Failing test first, minimum-code to pass, refactor only after green.
Overview
Strict TDD discipline. Writes the failing test via shell_write, runs it via shell_exec, watches it fail (red), implements the minimum code to make it pass (green), only then considers refactoring (per minimal-patch/SKILL.md). Forbidden to skip the red phase. Forbidden to refactor while red.
When to use this
- user wants to build a new feature TDD-style
- user says 'TDD this' / 'red green refactor' / 'write the test first'
- user wants strong test coverage from day one
When NOT to use this
- feature has no testable interface → use spin-up-web-app or shell_exec directly
- user is fixing a bug, not adding a feature → use minimal-patch + add regression test
Example prompts
Inputs and output
Inputs
| Field | Description |
|---|---|
feature | what to build in one sentence |
test_runner | pnpm test | bun test | etc. |
Output
Implementation file + test file + the green test-runner output.
Runtime profile
What the engine commits when this skill runs.
| Property | Value | Meaning |
|---|---|---|
| Model tier | sonnet | The balanced default model class. Trades quality against cost for the vast majority of skill runs. |
| Cost class | standard | The balanced default model. Right for most skills. |
| Turn budget | 15 | Hard cap on tool-calling iterations before the engine forces a final answer. |
| Execution | synchronous | Runs inside the live turn; result lands in the same response. |
Under the hood
Tools the engine exposes to this skill and integrations it needs.
| Resource | Kind |
|---|---|
shell_exec | tool |
shell_write | tool |
shell_read | tool |
Tags: engineering, test, discipline
Execution template
Shell tools dispatch via a command template. The model substitutes user inputs into the placeholders before firing the underlying tool.
Invoking this from an agent
Three paths reach this skill. From the chat UI, a user can type the persona slash command followed by a natural request and the discovery step resolves to this skill automatically. From the MCP server, fetch the skill detail with get_skill({id: "tdd-feature"}) and then invoke it through the agent runtime once the authenticated tier ships. From your own code, hit /docs/skills/tdd-feature/llm.txt for the token-efficient markdown body and feed it to your model directly.
Accept: text/markdown. The full machine-readable catalog lives at /.well-known/agent-skills/index.json.