Initial commit
This commit is contained in:
235
skills/tdd-automation/SKILL.md
Normal file
235
skills/tdd-automation/SKILL.md
Normal file
@@ -0,0 +1,235 @@
|
||||
---
|
||||
name: tdd-automation
|
||||
description: Use PROACTIVELY when starting new projects requiring strict TDD adherence, or when user wants to enforce test-first workflow. Automates red-green-refactor cycle for LLM-assisted development with git hooks, npm scripts, and CLAUDE.md configuration. Not for prototypes or projects without test requirements.
|
||||
---
|
||||
|
||||
# TDD Red-Green-Refactor Automation
|
||||
|
||||
## Overview
|
||||
|
||||
This skill transforms any project to automatically enforce TDD (Test-Driven Development) workflow when using LLMs for code generation. Once installed, Claude Code will automatically follow the red-green-refactor cycle without manual prompting.
|
||||
|
||||
**Version:** 0.2.0
|
||||
**Status:** Stable
|
||||
**Success Rate:** 86% (based on 37 pattern applications)
|
||||
**Source:** Pattern Suggestion Pipeline (Issue #13)
|
||||
|
||||
## What This Skill Does
|
||||
|
||||
**Automatic TDD Enforcement** - When you ask Claude to implement a feature, it will:
|
||||
|
||||
1. 🔴 **RED Phase**: Write failing test FIRST
|
||||
2. 🟢 **GREEN Phase**: Implement minimal code to pass test
|
||||
3. 🔵 **REFACTOR Phase**: Improve code quality while keeping tests green
|
||||
|
||||
**No manual steps required** - The LLM is automatically configured through CLAUDE.md to follow this workflow.
|
||||
|
||||
## Installation Process
|
||||
|
||||
When you invoke this skill, it will:
|
||||
|
||||
1. **Detect project configuration**
|
||||
- Identify test framework (Vitest, Jest, Mocha, AVA)
|
||||
- Check for TypeScript/JavaScript
|
||||
- Validate git repository exists
|
||||
|
||||
2. **Configure CLAUDE.md safely**
|
||||
- Create automatic backup before any changes
|
||||
- Merge TDD requirements (preserves existing content)
|
||||
- Add clear section markers for identification
|
||||
|
||||
3. **Install npm scripts**
|
||||
- `test:tdd` - Run all tests once
|
||||
- `test:tdd:watch` - Run tests in watch mode
|
||||
- `test:red` - Verify test fails (RED phase)
|
||||
- `test:green` - Verify test passes (GREEN phase)
|
||||
- `validate:tdd` - Check TDD compliance
|
||||
- `generate:test` - Create test template
|
||||
|
||||
4. **Install git hooks**
|
||||
- Pre-commit hook validates tests exist
|
||||
- Prevents commits without tests
|
||||
- Enforces test-first workflow
|
||||
|
||||
5. **Create helper scripts**
|
||||
- Test template generator
|
||||
- TDD compliance validator
|
||||
- Rollback utility
|
||||
- Section removal utility
|
||||
|
||||
## When to Use This Skill
|
||||
|
||||
**Use this skill when:**
|
||||
- Starting a new project that requires strict TDD adherence
|
||||
- Migrating existing project to TDD workflow
|
||||
- Training team members on TDD practices
|
||||
- Ensuring consistent quality in LLM-generated code
|
||||
- Working on mission-critical code that needs high test coverage
|
||||
|
||||
**Don't use this skill if:**
|
||||
- Project doesn't have or need tests
|
||||
- Working on prototypes or experiments
|
||||
- TDD workflow conflicts with existing practices
|
||||
|
||||
## Trigger Phrases
|
||||
|
||||
The skill can be invoked by:
|
||||
- Direct invocation: `tdd-automation`
|
||||
- Natural language: "Set up TDD automation"
|
||||
- Natural language: "Configure automatic TDD workflow"
|
||||
- Natural language: "Install TDD enforcement"
|
||||
|
||||
## Behavior After Installation
|
||||
|
||||
Once installed, when you say something like:
|
||||
```
|
||||
"Implement user authentication"
|
||||
```
|
||||
|
||||
Claude will **automatically**:
|
||||
```
|
||||
1. Create todo list with TDD phases:
|
||||
- [ ] RED: Write failing test for user authentication
|
||||
- [ ] Verify test fails with expected error
|
||||
- [ ] GREEN: Implement minimal authentication logic
|
||||
- [ ] Verify test passes
|
||||
- [ ] REFACTOR: Improve code quality
|
||||
- [ ] Verify all tests still pass
|
||||
|
||||
2. Create test file FIRST:
|
||||
src/auth/authenticate.test.ts
|
||||
|
||||
3. Write failing test with clear description
|
||||
|
||||
4. Run test and verify RED state:
|
||||
npm run test:red -- src/auth/authenticate.test.ts
|
||||
|
||||
5. Implement minimal code:
|
||||
src/auth/authenticate.ts
|
||||
|
||||
6. Run test and verify GREEN state:
|
||||
npm run test:green -- src/auth/authenticate.test.ts
|
||||
|
||||
7. Refactor if needed while keeping tests green
|
||||
|
||||
8. Final validation:
|
||||
npm run test:tdd
|
||||
```
|
||||
|
||||
## Safety Features
|
||||
|
||||
### Non-Destructive Installation
|
||||
- Automatic backups before file modifications
|
||||
- Merge strategy preserves all existing CLAUDE.md content
|
||||
- Clear markers (`<!-- TDD_AUTOMATION_START/END -->`) for identification
|
||||
- Rollback capability to restore previous state
|
||||
|
||||
### Validation Before Installation
|
||||
- Detects if TDD automation already installed (skips if present)
|
||||
- Checks for existing CLAUDE.md (merges safely)
|
||||
- Validates project structure
|
||||
- Reports warnings for missing dependencies
|
||||
|
||||
### Clean Uninstallation
|
||||
- Remove only TDD section without affecting other content
|
||||
- Restore from timestamped backups
|
||||
- Utility scripts for easy maintenance
|
||||
|
||||
## Response Style
|
||||
|
||||
After installation, this skill guides Claude Code to:
|
||||
|
||||
- **Be explicit**: Always state which TDD phase is active
|
||||
- **Be thorough**: Verify each phase completion before proceeding
|
||||
- **Be traceable**: Use TodoWrite to track progress
|
||||
- **Be safe**: Run tests to confirm RED/GREEN states
|
||||
- **Be helpful**: Provide clear error messages if TDD is violated
|
||||
|
||||
## Files Modified/Created
|
||||
|
||||
### Modified Files
|
||||
- `.claude/CLAUDE.md` - TDD workflow configuration added (backed up)
|
||||
- `package.json` - npm scripts added (backed up)
|
||||
- `.git/hooks/pre-commit` - TDD validation added (backed up if exists)
|
||||
|
||||
### Created Files
|
||||
```
|
||||
.tdd-automation/
|
||||
├── scripts/
|
||||
│ ├── generate-test.js # Test template generator
|
||||
│ ├── validate-tdd.js # Compliance checker
|
||||
│ ├── rollback-tdd.js # Restore previous state
|
||||
│ └── remove-tdd-section.js # Clean uninstall
|
||||
├── templates/
|
||||
│ └── test-template.js # Test file template
|
||||
└── README.md # Usage documentation
|
||||
|
||||
.claude/
|
||||
├── CLAUDE.md.backup.* # Timestamped backups
|
||||
└── hooks/
|
||||
└── tdd-auto-enforcer.sh # Pre-prompt hook (optional)
|
||||
```
|
||||
|
||||
## Success Criteria
|
||||
|
||||
Installation succeeds when:
|
||||
1. ✅ CLAUDE.md contains TDD configuration
|
||||
2. ✅ npm scripts added to package.json
|
||||
3. ✅ Git pre-commit hook installed (if git repo exists)
|
||||
4. ✅ Helper scripts created in .tdd-automation/
|
||||
5. ✅ Backups created for all modified files
|
||||
6. ✅ Validation passes: `npm run validate:tdd`
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Issue: LLM not following TDD
|
||||
|
||||
**Check:**
|
||||
```bash
|
||||
# Verify CLAUDE.md has TDD configuration
|
||||
grep "TDD_AUTOMATION" .claude/CLAUDE.md
|
||||
|
||||
# Verify npm scripts
|
||||
npm run test:tdd
|
||||
|
||||
# Run validation
|
||||
npm run validate:tdd
|
||||
```
|
||||
|
||||
### Issue: Git hook blocking commits
|
||||
|
||||
**Solution:**
|
||||
1. Ensure tests exist for implementation files
|
||||
2. Commit tests before implementation
|
||||
3. Or bypass temporarily: `git commit --no-verify`
|
||||
|
||||
### Issue: Want to remove TDD automation
|
||||
|
||||
**Options:**
|
||||
```bash
|
||||
# Option 1: Remove CLAUDE.md section only
|
||||
node .tdd-automation/scripts/remove-tdd-section.js
|
||||
|
||||
# Option 2: Rollback to previous CLAUDE.md
|
||||
node .tdd-automation/scripts/rollback-tdd.js
|
||||
```
|
||||
|
||||
## Generated By
|
||||
|
||||
🤖 **Pattern Suggestion Pipeline**
|
||||
- Detected from 37 successful TDD applications
|
||||
- Success rate: 86%
|
||||
- Source: GitHub Issue #13
|
||||
- Generated: 2025-11-02
|
||||
- Enhanced with full implementation: 2025-11-02
|
||||
|
||||
## Version History
|
||||
|
||||
- **0.2.0** (2025-11-02) - Stable release with full implementation
|
||||
- **0.1.0** (2025-11-02) - Initial proof-of-concept
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- Full documentation: `README.md`
|
||||
- Helper scripts: `.tdd-automation/scripts/`
|
||||
- Examples: See README.md "Usage Examples" section
|
||||
Reference in New Issue
Block a user