Files
gh-towry-dots-conf-claude-l…/skills/tdd-enforce/SKILL.md
2025-11-30 09:02:31 +08:00

61 lines
2.4 KiB
Markdown

---
name: tdd-enforce
description: Enforce Test-Driven Development (TDD) workflow for implementation tasks
---
# Description
The TDD workflow ensures high-quality implementation by enforcing a cycle of writing tests before code. This skill guides the agent to break down implementation tasks into small, verifiable steps, ensuring each step is verified by a test before moving forward.
# When to use this skill
- When the user asks to "implement" a feature or function.
- When the user agrees to a plan that involves coding.
- When you are about to use the `TodoWrite` tool for a coding task.
- When the user explicitly mentions "TDD" or "test driven".
# Process
1. **Plan with Todos**: Before coding, create a `TodoWrite` list where every implementation step is paired with a verification step (test).
2. **Red (Write Test)**: Create or update a test case that defines the expected behavior for the next small unit of work. Run it to confirm it fails (or verify it doesn't exist yet).
3. **Green (Implement)**: Write the minimum code necessary to pass the test.
4. **Verify**: Run the test again to confirm it passes.
5. **Refactor (Optional)**: Clean up the code if needed, ensuring tests still pass.
6. **Repeat**: Mark the todo item as done and move to the next pair of Test/Implement steps.
# Examples
## Example Todo List Structure
When implementing a `RealInfluxClient`:
```text
Todos:
1. RED: Write integration test for RealInfluxClient.health() with testcontainers
2. GREEN: Implement RealInfluxClient.health() to make test pass
3. VERIFY: Run test and ensure it passes
4. RED: Write integration test for RealInfluxClient.write_tick()
5. GREEN: Implement RealInfluxClient.write_tick()
6. VERIFY: Run test and ensure it passes
7. RED: Write integration test for RealInfluxClient.query_ticks()
8. GREEN: Implement RealInfluxClient.query_ticks()
9. VERIFY: Run test and ensure it passes
```
## Example Interaction
**User**: "Implement a function to reverse a string."
**Agent**: "I will use TDD to implement this. I'll start by creating a plan."
*Calls `TodoWrite`*:
1. RED: Create test case `test_reverse_hello` expecting "olleh"
2. GREEN: Implement `reverse_string` function to pass the test
3. VERIFY: Run tests to verify
**Agent**: "I've created the plan. First, I'll write the failing test."
*Writes test, runs it (fails)*.
"Now I will implement the logic."
*Writes code, runs test (passes)*.