Agent skill
TDD Issues Workflow
Work through docs/ISSUES.md systematically using strict Test-Driven Development. Use this skill when the user asks to work on issues, fix issues, or implement features from the issues list.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/product/tdd-issues-workflow
SKILL.md
TDD Issues Workflow
Work through docs/ISSUES.md systematically using strict Test-Driven Development.
Pre-Flight Checks
Before starting ANY issue:
-
Verify environment:
- Dev server running at http://localhost:3000 (start with
npm startif not) - Git working directory is clean or only has expected changes
- No failing tests from previous work
- Dev server running at http://localhost:3000 (start with
-
Clean up approved issues:
- Read docs/ISSUES.md
- Delete any issues marked 👍 APPROVED from the file
- Commit the cleanup if changes made
- DO NOT re-number the list
-
Identify next issue:
- Find first issue that needs work:
- NOT marked as ✅ DONE (new issue), OR
- Marked as ✅ DONE AND ❌ REJECTED (needs rework)
- If none found, report completion and STOP
- Find first issue that needs work:
Issue Workflow
For CSS-Only Changes
CSS-only = changes ONLY to .css files, no .js/.jsx changes
- Create todo list with TodoWrite for this issue
- Read relevant files (CSS files that need changes)
- Implement CSS changes
- Manual verification:
- Navigate to http://localhost:3000 using browser devtools
- Take screenshots showing the changes
- Explain what changed visually
- Commit (see commit format in reference.md)
- Update docs if CLAUDE.md or docs/ files need updates
- Update ISSUES.md (see Issue Management in reference.md)
- Continue to next issue immediately (return to Pre-Flight Checks)
For Non-CSS Changes (STRICT TDD)
- Create todo list with TodoWrite for this issue
- Read related files (code files + test files)
- Write failing test FIRST:
- Bug fixes → tests/regression.spec.js
- New features → appropriate existing test or new test
- Explain what the test does
- Run test - verify FAILURE:
- Run
npm run test:e2e(Chrome/Chromium only) - Confirm fails for the RIGHT reason
- If passes unexpectedly, STOP and ask user
- Run
- Implement minimal code to make test pass
- Run test - verify SUCCESS
- Run full suite:
npm run test:e2e:coverage- ALL tests must pass
- Coverage must be 100% (statements, functions, lines, branches)
- Commit test + implementation together (see commit format in reference.md)
- Update docs if CLAUDE.md or docs/ files need updates
- Update ISSUES.md (see Issue Management in reference.md)
- Continue to next issue immediately (return to Pre-Flight Checks)
Absolute Rules
NEVER:
- ❌ Implement code before writing test (for non-CSS changes)
- ❌ Skip running tests after writing them
- ❌ Commit without running full test suite
- ❌ Mark issue as APPROVED or 👍 APPROVED (only user can approve)
- ❌ Batch multiple issues into one commit
- ❌ Continue if coverage drops below 100%
- ❌ Continue if any test fails unexpectedly
- ❌ Skip pre-flight checks when starting new issue
- ❌ Delete issue that is NOT marked APPROVED or 👍 APPROVED
- ❌ Delete issue immediately after completing it
- ❌ Use issue numbers in code or commit messages. Issue numbers are re-used so identifying them by number is not useful
ALWAYS:
- ✅ Write test FIRST (except CSS-only changes)
- ✅ Run tests after every change
- ✅ Commit each issue separately
- ✅ Update ISSUES.md immediately after commit
- ✅ Mark issues only as "✅ DONE" (never as APPROVED)
- ✅ Include user journey context in test assertions
- ✅ Use TodoWrite to track progress on current issue
- ✅ Continue to next issue after successful completion
When to STOP and Ask User
- Issue requirements are unclear or ambiguous
- Test fails for unexpected reason
- Cannot achieve 100% coverage after reasonable attempt
- Multiple equally valid implementation approaches exist
- Issue seems to conflict with existing functionality
- Need to use
istanbul ignore(requires permission) - Any rule in ABSOLUTE RULES section is violated
See reference.md for detailed rules and examples.md for output format examples.
Didn't find tool you were looking for?