Files
2025-11-30 09:01:45 +08:00

728 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: >
Implement code following TDD/RGRC cycle (Red-Green-Refactor-Commit) with real-time test feedback and quality checks.
Use for feature implementation, refactoring, or bug fixes when you have clear understanding (≥70%) of requirements.
Applies SOLID principles, DRY, and progressive enhancement. Includes dynamic quality discovery and confidence scoring.
計画に基づいてコードを記述TDD/RGRC推奨。要件の明確な理解がある場合に、機能実装、リファクタリング、バグ修正で使用。
allowed-tools: Bash(npm run), Bash(npm run:*), Bash(yarn run), Bash(yarn run:*), Bash(yarn:*), Bash(pnpm run), Bash(pnpm run:*), Bash(pnpm:*), Bash(bun run), Bash(bun run:*), Bash(bun:*), Bash(make:*), Bash(git status:*), Bash(git log:*), Bash(ls:*), Bash(cat:*), Edit, MultiEdit, Write, Read, Glob, Grep, LS, Task
model: inherit
argument-hint: "[implementation description]"
---
# /code - Advanced Implementation with Dynamic Quality Assurance
## Purpose
Perform code implementation with real-time test feedback, dynamic quality discovery, and confidence-scored decisions.
## Usage Modes
- **Standalone**: Implement specific features or bug fixes
- **Workflow**: Code based on `/research` results, then proceed to `/test`
## Prerequisites (Workflow Mode)
- SOW created in `/think`
- Technical research completed in `/research`
- For standalone use, implementation details must be clear
## Dynamic Project Context
### Current Git Status
```bash
!`git status --porcelain`
```
### Package.json Check
```bash
!`ls package.json`
```
### NPM Scripts Available
```bash
!`npm run || yarn run || pnpm run || bun run`
```
### Config Files
```bash
!`ls *.json`
```
### Recent Commits
```bash
!`git log --oneline -5`
```
## Specification Context (Auto-Detection)
### Discover Latest Spec
Search for spec.md in SOW workspace:
```bash
!`find .claude/workspace/sow ~/.claude/workspace/sow -name "spec.md" -type f 2>/dev/null | sort -r | head -1`
```
### Load Specification for Implementation
**If spec.md exists**, use it as implementation guide:
- **Functional Requirements (FR-xxx)**: Define what to implement
- **API Specifications**: Provide exact request/response structures
- **Data Models**: Show expected data structures and validation rules
- **UI Specifications**: Define layout, validation, and interactions
- **Test Scenarios**: Guide test case creation with Given-When-Then
- **Implementation Checklist**: Track implementation progress
**If spec.md does not exist**:
- Proceed with implementation based on available requirements
- Consider running `/think` first to generate specification
- Document assumptions and design decisions inline
This ensures implementation aligns with specification from the start.
## Integration with Skills
This command references the following Skills for implementation guidance:
- [@~/.claude/skills/tdd-test-generation/SKILL.md] - TDD/RGRC cycle, Baby Steps, systematic test design
- [@~/.claude/skills/frontend-patterns/SKILL.md] - Frontend component design patterns (Container/Presentational, Hooks, State Management, Composition)
- [@~/.claude/skills/code-principles/SKILL.md] - Fundamental software development principles (SOLID, DRY, Occam's Razor, Miller's Law, YAGNI)
## Implementation Principles
### Applied Development Rules
- [@~/.claude/skills/tdd-test-generation/SKILL.md] - Test-Driven Development with Baby Steps (primary)
- [@~/.claude/skills/code-principles/SKILL.md] - Fundamental software principles (SOLID, DRY, Occam's Razor, YAGNI)
- [@~/.claude/skills/frontend-patterns/SKILL.md] - Frontend component design patterns
- [@~/.claude/rules/development/PROGRESSIVE_ENHANCEMENT.md](~/.claude/rules/development/PROGRESSIVE_ENHANCEMENT.md) - CSS-first approach for UI
- [@~/.claude/rules/development/READABLE_CODE.md](~/.claude/rules/development/READABLE_CODE.md) - Code readability and clarity
### Principle Hierarchy
**TDD/RGRC is the primary implementation cycle**. With test-generator enhancement:
- **Phase 0 (Preparation)**: test-generator creates test scaffold from spec.md
- **Red & Green phases**: Focus on functionality only
- **Refactor phase**: Apply SOLID and DRY principles
- **Commit phase**: Save stable state
This ensures:
1. Tests align with specification (Phase 0)
2. Code first works (TDD Red-Green)
3. Code becomes clean and maintainable (Refactor with SOLID/DRY)
### 0. Test Preparation (Phase 0 - NEW)
**Purpose**: Generate initial test cases from specification before starting TDD cycle.
**When to use**: When spec.md exists and contains test scenarios.
Use test-generator to extract and generate test code from specification:
```typescript
Task({
subagent_type: "test-generator",
description: "Generate tests from specification",
prompt: `
Feature: "${featureDescription}"
Spec: ${specContent}
Generate test code:
1. FR-xxx requirements → test cases [✓]
2. Given-When-Then scenarios → executable tests [✓]
3. Baby steps order: simple → complex [→]
4. Edge cases and error handling [→]
Output: Test file using project framework (detect from package.json).
Mark: [✓] from spec, [→] inferred, [?] unclear.
`
})
```
**Benefits**:
- Automatic test scaffold from specification
- Baby steps ordering built-in
- Consistent with spec.md requirements
- Faster TDD cycle start
**Integration with TDD**:
```text
Phase 0: test-generator creates test scaffold
Phase 1 (Red): Run generated tests (they fail)
Phase 2 (Green): Implement to pass tests
...
```
### 1. Test-Driven Development (TDD) as t_wada would
**Goal**: "Clean code that works" (動作するきれいなコード) - Ron Jeffries
#### Baby Steps - The Foundation of TDD
**Core Principle**: Make the smallest possible change at each step
##### Why Baby Steps Matter
- **Immediate error localization**: When test fails, the cause is in the last tiny change
- **Continuous working state**: Code is always seconds away from green
- **Rapid feedback**: Each step takes 1-2 minutes max
- **Confidence building**: Small successes compound into major features
##### Baby Steps in Practice
```typescript
// ❌ Big Step - Multiple changes at once
function calculateTotal(items, tax, discount) {
const subtotal = items.reduce((sum, item) => sum + item.price, 0);
const afterTax = subtotal * (1 + tax);
const afterDiscount = afterTax * (1 - discount);
return afterDiscount;
}
// ✅ Baby Steps - One change at a time
// Step 1: Return zero (make test pass minimally)
function calculateTotal(items) {
return 0;
}
// Step 2: Basic sum (next test drives this)
function calculateTotal(items) {
return items.reduce((sum, item) => sum + item.price, 0);
}
// Step 3: Add tax support (only when test requires it)
// ... continue in tiny increments
```
##### Baby Steps Rhythm
1. **Write smallest failing test** (30 seconds)
2. **Make it pass with minimal code** (1 minute)
3. **Run tests** (10 seconds)
4. **Tiny refactor if needed** (30 seconds)
5. **Commit if green** (20 seconds)
Total cycle: ~2 minutes
#### Test Generation from Plan (Pre-Red)
Before entering the RGRC cycle, automatically generate tests from SOW:
```bash
# 1. Check for SOW with test plan
.claude/workspace/sow/[feature-name]/sow.md
# 2. If test plan exists, invoke test-generator
Task(
subagent_type="test-generator",
description="Generate tests from SOW",
prompt="Generate tests from SOW test plan"
)
# 3. Verify generated tests
npm test -- --listTests | grep -E "\.test\.|\.spec\."
```
**When to generate:**
- SOW contains "Test Plan" section
- No existing tests for planned features
- User requests test generation
**Skip conditions:**
- Tests already exist
- No SOW test plan defined
- Quick fix mode
#### Enhanced RGRC Cycle with Real-time Feedback
1. **Red Phase** (Confidence Target: 0.9)
```bash
npm test -- --testNamePattern="[current test]" | grep -E "FAIL|PASS"
```
- Write failing test with clear intent (or use generated tests)
- Verify failure reason matches expectation
- Document understanding via test assertions
- **Exit Criteria**: Test fails for expected reason
2. **Green Phase** (Confidence Target: 0.7)
```bash
npm test -- --watch --testNamePattern="[current test]"
```
- Minimal implementation to pass
- Quick solutions acceptable
- Focus on functionality over form
- **Exit Criteria**: Test passes consistently
3. **Refactor Phase** (Confidence Target: 0.95)
```bash
npm test | tail -5 | grep -E "Passing|Failing"
```
- Apply SOLID principles
- Remove duplication (DRY)
- Improve naming and structure
- Extract abstractions
- **Exit Criteria**: All tests green, code clean
4. **Commit Phase** (Confidence Target: 1.0)
- Quality checks pass
- Coverage maintained/improved
- Ready for stable commit
- User executes git commands
#### Advanced TodoWrite Integration
Real-time tracking with confidence scoring:
```markdown
# Implementation: [Feature Name]
## Scenarios (Total Confidence: 0.85)
1. ⏳ User registration with valid email [C: 0.9]
2. ⏳ Registration fails with invalid email [C: 0.8]
3. ⏳ Duplicate email prevention [C: 0.85]
## Current RGRC Cycle - Scenario 1
### Red Phase (Started: 14:23)
1.1 ✅ Write failing test [C: 0.95] ✓ 2 min
1.2 ✅ Verify correct failure [C: 0.9] ✓ 30 sec
### Green Phase (Active: 14:26)
1.3 ❌ Implement registration logic [C: 0.7] ⏱️ 3 min
1.4 ⏳ Test passes consistently [C: pending]
### Refactor Phase (Pending)
1.5 ⏳ Apply SOLID principles [C: pending]
1.6 ⏳ Extract validation logic [C: pending]
### Quality Gates
- 🧪 Tests: 12/14 passing
- 📊 Coverage: 78% (target: 80%)
- 🔍 Lint: 2 warnings
- 🔷 Types: All passing
```
## Progress Display
### RGRC Cycle Progress Visualization
Display TDD cycle progress with real-time updates:
```markdown
📋 Implementation Task: User Authentication Feature
🔴 Red → 🟢 Green → 🔵 Refactor → ✅ Commit
Current Cycle: Scenario 2/5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 Red Phase [████████████] Complete
🟢 Green Phase [████████░░░░] 70%
🔵 Refactor [░░░░░░░░░░░░] Waiting
✅ Commit [░░░░░░░░░░░░] Waiting
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Current: Minimal implementation until test passes...
Elapsed: 8 min | Remaining scenarios: 3
```
### Quality Check Progress
Parallel quality checks during implementation:
```markdown
Quality checks in progress:
├─ 🧪 Tests [████████████] ✅ 45/45 passing
├─ 📊 Coverage [████████░░░░] ⚠️ 78% (Target: 80%)
├─ 🔍 Lint [████████████] ✅ 0 errors, 2 warnings
├─ 🔷 TypeCheck [████████████] ✅ All types valid
└─ 🎨 Format [████████████] ✅ Formatted
Quality Score: 92% | Confidence: HIGH
```
### Implementation Mode Indicators
#### TDD Mode (Default)
```markdown
📋 TDD Progress:
Cycle 3/8: Green Phase
⏳ Current test: should handle edge cases
📝 Lines written: 125 | Tests: 18/20
```
#### Quick Implementation Mode
```markdown
⚡ Quick implementation... [████████░░] 80%
Skipping some quality checks for speed
```
### 2. SOLID Principles During Implementation
Apply during Refactor phase:
- **SRP**: Each class/function has one reason to change
- **OCP**: Extend functionality without modifying existing code
- **LSP**: Derived classes must be substitutable for base classes
- **ISP**: Clients shouldn't depend on unused interfaces
- **DIP**: Depend on abstractions, not concrete implementations
### 3. DRY (Don't Repeat Yourself) Principle
**"Every piece of knowledge must have a single, unambiguous, authoritative representation"**
- Extract repeated logic into functions
- Create configuration objects for repeated values
- Use composition for repeated structure
- Avoid copy-paste programming
### 4. Consistency with Existing Code
- Follow coding conventions
- Utilize existing patterns and libraries
- Maintain naming convention consistency
## Hierarchical Implementation Process
### Phase 1: Context Discovery & Planning
Analyze with confidence scoring:
1. **Code Context**: Understand existing patterns (C: 0.0-1.0)
2. **Dependencies**: Verify required libraries available
3. **Conventions**: Detect and follow project standards
4. **Test Structure**: Identify test patterns to follow
### Phase 2: Parallel Quality Execution
Run quality checks simultaneously:
```typescript
// Execute these in parallel, not sequentially
const qualityChecks = [
Bash({ command: "npm run lint" }),
Bash({ command: "npm run type-check" }),
Bash({ command: "npm test -- --findRelatedTests" }),
Bash({ command: "npm run format:check" })
];
```
### Phase 3: Confidence-Based Decisions
Make implementation choices based on evidence:
- **High Confidence (>0.8)**: Proceed with implementation
- **Medium (0.5-0.8)**: Add defensive checks
- **Low (<0.5)**: Research before implementing
### 5. Code Implementation with TDD
Follow the RGRC cycle defined above:
- **Red**: Write failing test first
- **Green**: Minimal code to pass
- **Refactor**: Apply SOLID and DRY principles
- **Commit**: Save stable state
### 6. Dynamic Quality Checks
#### Automatic Discovery
```bash
!`cat package.json`
```
#### Parallel Execution
```markdown
## Quality Check Results
### Linting (Confidence: 0.95)
```bash
npm run lint | tail -5
```
- Status: ✅ Passing
- Issues: 0 errors, 2 warnings
- Time: 1.2s
### Type Checking (Confidence: 0.98)
```bash
npm run type-check | tail -5
```
- Status: ✅ All types valid
- Files checked: 47
- Time: 3.4s
### Tests (Confidence: 0.92)
```bash
npm test -- --passWithNoTests | grep -E "Tests:|Snapshots:"
```
- Status: ✅ 45/45 passing
- Coverage: 82%
- Time: 8.7s
### Format Check (Confidence: 0.90)
```bash
npm run format:check | tail -3
```
- Status: ⚠️ 3 files need formatting
- Auto-fixable: Yes
- Time: 0.8s
```
#### Quality Score Calculation
```text
Overall Quality Score: (L*0.3 + T*0.3 + Test*0.3 + F*0.1) = 0.93
Confidence Level: HIGH - Ready for commit
```
### 7. Functionality Verification
- Verify on development server
- Validate edge cases
- Check performance
## Advanced Features
### Real-time Test Monitoring
Watch test results during development:
```bash
npm test -- --watch --coverage
```
### Code Complexity Analysis
Track complexity during implementation:
```bash
npx complexity-report src/ | grep -E "Complexity|Maintainability"
```
### Performance Profiling
For performance-critical code:
```bash
npm run profile
```
### Security Scanning
Automatic vulnerability detection:
```bash
npm audit --production | grep -E "found|Severity"
```
## Implementation Patterns
### Pattern Selection by Confidence
```markdown
## Available Patterns (Choose based on context)
### High Confidence Patterns (>0.9)
1. **Factory Pattern** - Object creation
- When: Multiple similar objects
- Confidence: 0.95
- Example in: src/factories/
2. **Repository Pattern** - Data access
- When: Database operations
- Confidence: 0.92
- Example in: src/repositories/
### Medium Confidence Patterns (0.7-0.9)
1. **Observer Pattern** - Event handling
- When: Loose coupling needed
- Confidence: 0.85
- Consider: Built-in EventEmitter
### Experimental Patterns (<0.7)
1. **New architectural pattern**
- Confidence: 0.6
- Recommendation: Prototype first
```
## Risk Mitigation
### Common Implementation Risks
| Risk | Probability | Impact | Mitigation | Confidence |
|------|------------|--------|------------|------------|
| Breaking existing tests | Medium | High | Run full suite before/after | 0.95 |
| Performance regression | Low | High | Profile critical paths | 0.88 |
| Security vulnerability | Low | Critical | Security scan + review | 0.92 |
| Inconsistent patterns | Medium | Medium | Follow existing examples | 0.90 |
| Missing edge cases | High | Medium | Comprehensive test cases | 0.85 |
## Definition of Done with Confidence Metrics
Implementation complete when all metrics achieved:
```markdown
## Completion Checklist
### Core Implementation
- ✅ All RGRC cycles complete [C: 0.95]
- ✅ Feature works as specified [C: 0.93]
- ✅ Edge cases handled [C: 0.88]
### Quality Metrics
- ✅ All tests passing (47/47) [C: 1.0]
- ✅ Coverage ≥ 80% (current: 82%) [C: 0.95]
- ✅ Zero lint errors [C: 0.98]
- ✅ Zero type errors [C: 1.0]
- ⚠️ 2 lint warnings (documented) [C: 0.85]
### Code Quality
- ✅ SOLID principles applied [C: 0.90]
- ✅ DRY - No duplication [C: 0.92]
- ✅ Readable code standards [C: 0.88]
- ✅ Consistent with codebase [C: 0.94]
### Documentation
- ✅ Code comments where needed [C: 0.85]
- ✅ README updated if required [C: 0.90]
- ✅ API docs current [C: 0.87]
### Overall Confidence: 0.92 (HIGH)
Status: ✅ READY FOR REVIEW
```
If confidence < 0.8 on any critical metric, continue improving.
## Decision Framework
### When Implementation Confidence is Low
```markdown
## Low Confidence Detected (< 0.7)
### Issue: [Uncertain about implementation approach]
Options:
1. **Research More** (/research)
- Time: +30 min
- Confidence gain: +0.3
2. **Prototype First**
- Time: +15 min
- Confidence gain: +0.2
3. **Consult Documentation**
- Time: +10 min
- Confidence gain: +0.15
Recommendation: Option 1 for complex features
```
### Quality Gate Failures
```markdown
## Quality Gate Failed
### Issue: Coverage dropped below 80%
Current: 78% (-2% from main)
Uncovered lines: src/auth/validator.ts:45-52
Actions:
1. ❌ Add tests for uncovered lines
2. ⏳ Or document why not testable
3. ⏳ Or adjust threshold (not recommended)
Proceeding without resolution? (y/N)
```
## Usage Examples
### Basic Implementation
```bash
/code "Add user authentication"
# Standard TDD implementation
```
### With Confidence Threshold
```bash
/code --confidence 0.9 "Critical payment logic"
# Requires 90% confidence before proceeding
```
### Fast Mode (Skip Some Checks)
```bash
/code --fast "Simple UI update"
# Minimal quality checks for low-risk changes
```
### With Specific Pattern
```bash
/code --pattern repository "Database access layer"
# Use repository pattern for implementation
```
## Applied Development Principles
### TDD/RGRC
[@~/.claude/rules/development/TDD_RGRC.md](~/.claude/rules/development/TDD_RGRC.md) - Red-Green-Refactor-Commit cycle
Application:
- **Baby Steps**: Smallest possible change
- **Red**: Write failing test first
- **Green**: Minimal code to pass test
- **Refactor**: Improve clarity
- **Commit**: Manual commit after each cycle
### Occam's Razor
[@~/.claude/rules/reference/OCCAMS_RAZOR.md](~/.claude/rules/reference/OCCAMS_RAZOR.md) - "Entities should not be multiplied without necessity"
Application:
- **Simplest Solution**: Minimal implementation that meets requirements
- **Avoid Unnecessary Complexity**: Don't abstract until proven
- **Question Every Abstraction**: Is it truly necessary?
- **Avoid Premature Optimization**: Only for measured needs
## Next Steps
- **High Confidence (>0.9)** → Ready for `/test` or review
- **Medium (0.7-0.9)** → Consider additional testing
- **Low (<0.7)** → Need `/research` or planning
- **Quality Issues** → Fix before proceeding
- **All Green** → Ready for PR/commit