Claude-skill-registry implement
Implement features using Test-Driven Development (TDD). Executes red-green-refactor cycle, uses bmad-commands for file operations and testing, verifies acceptance criteria. This skill should be used when implementing new features or functionality from task specifications with test coverage.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/implement-v2" ~/.claude/skills/majiayu000-claude-skill-registry-implement-7470b3 && rm -rf "$T"
skills/data/implement-v2/SKILL.mdImplement Feature with TDD
Overview
Implement features following strict Test-Driven Development workflow. Uses bmad-commands for deterministic file and test operations, ensures acceptance criteria are met through automated verification.
TDD Cycle:
- RED: Write failing tests
- GREEN: Implement code to pass tests
- REFACTOR: Improve code while keeping tests green
Prerequisites
- Task specification exists at
workspace/tasks/{task_id}.md - bmad-commands skill available at
.claude/skills/bmad-commands/ - Development environment configured
- Test framework installed (Jest or Pytest)
Workflow
Step 0: Load Task Specification
Action: Use
read_file command to load task spec.
python .claude/skills/bmad-commands/scripts/read_file.py \ --path workspace/tasks/{task_id}.md \ --output json
Parse Response:
- Extract
for task specificationoutputs.content - Verify
success == true - Parse task spec sections:
- Objective
- Acceptance Criteria
- Technical Specifications
- Required Files
Required Sections in Task Spec:
## Objective [What to build] ## Acceptance Criteria 1. [Testable requirement 1] 2. [Testable requirement 2] ## Technical Specifications - API endpoints - Data models - Dependencies - File locations ## Required Files - src/path/to/implementation.ts - tests/path/to/tests.test.ts
If task spec not found or invalid:
- Return error with message
- Suggest creating task spec first
- Halt implementation
Step 0.5: Check for External Packages and Fetch Documentation
CRITICAL STEP: Before writing any code, identify external packages and fetch current documentation.
Why This Step is Essential:
- Training data may be outdated
- Package APIs change between versions
- Prevents using deprecated or removed methods
- Ensures compatibility with installed version
Action 1: Identify External Packages
Scan task specification and requirements for package mentions:
- npm packages (JavaScript/TypeScript)
- PyPI packages (Python)
- Go modules
- Maven/Gradle dependencies (Java)
- Crates (Rust)
- NuGet packages (.NET)
Action 2: Check Installed Versions
# JavaScript/TypeScript cat package.json | grep "package-name" cat package-lock.json | grep -A 5 "package-name" # Python cat requirements.txt | grep package-name pip show package-name # Go cat go.mod | grep package-name # Rust cat Cargo.toml | grep package-name
Action 3: Fetch Official Documentation
Use WebFetch tool to get current documentation:
JavaScript/TypeScript packages:
WebFetch( url: "https://www.npmjs.com/package/{package-name}", prompt: "Extract: installation, main API methods, usage examples, version compatibility" ) # Or check official docs WebFetch( url: "{official-docs-url}", prompt: "Extract: API reference for version {version}, method signatures, parameters, return types" )
Python packages:
WebFetch( url: "https://pypi.org/project/{package-name}/", prompt: "Extract: installation, API reference, examples for version {version}" ) WebFetch( url: "https://{package}.readthedocs.io/en/stable/", prompt: "Extract: API documentation, class methods, function signatures" )
Go modules:
WebFetch( url: "https://pkg.go.dev/{module-path}", prompt: "Extract: package documentation, function signatures, examples" )
Action 4: Verify API Compatibility
Compare fetched documentation with task requirements:
- Confirm method names exist
- Verify parameter types match
- Check return types
- Note any deprecated methods
- Identify breaking changes from older versions
Action 5: Document Findings
Add comments in code referencing documentation:
// Using axios@1.6.0 // Docs: https://axios-http.com/docs/api_intro // Method: axios.get(url, config) returns Promise<AxiosResponse> import axios from 'axios';
If Package is Unfamiliar:
- Spend 5-10 minutes reviewing documentation
- Understand core concepts and patterns
- Review example code
- Note common pitfalls
- Prefer official examples over training data
Common Documentation Sources:
| Language | Primary Source | Secondary Source |
|---|---|---|
| JavaScript/TS | npmjs.com, official docs | TypeScript definitions |
| Python | PyPI, Read the Docs | Official package docs |
| Go | pkg.go.dev | godoc |
| Java | Maven Central | Javadoc |
| Rust | docs.rs | crates.io |
| .NET | NuGet | Microsoft Docs |
If Documentation Not Found:
- Check package repository (GitHub, GitLab)
- Look for README.md
- Check CHANGELOG for version-specific changes
- Search for migration guides
- Escalate to user if critical package lacks documentation
Step 1: Analyze Requirements
Action: Break down acceptance criteria into test cases.
For each acceptance criterion:
- Identify what needs to be tested
- Determine test type (unit/integration/e2e)
- Plan test structure
- Identify edge cases
Example:
Acceptance Criterion: "User can log in with valid credentials" Test Cases: - [Unit] Should return user object when credentials valid - [Unit] Should return null when email not found - [Unit] Should return null when password incorrect - [Integration] Should create session when login successful - [Integration] Should not create session when login fails
Reference
references/tdd-workflow.md for detailed TDD patterns and best practices.
Step 2: RED Phase - Write Failing Tests
Action: Write tests that cover all acceptance criteria.
Test Structure:
// tests/auth/login.test.ts describe('AuthService.login', () => { // Happy path it('should return user when credentials valid', async () => { // Arrange // Act // Assert }); // Error cases it('should return null when email not found', async () => { // ... }); it('should return null when password incorrect', async () => { // ... }); // Edge cases it('should handle empty email', async () => { // ... }); });
Run Tests:
python .claude/skills/bmad-commands/scripts/run_tests.py \ --path . \ --framework auto \ --output json
Verify RED Phase:
- Tests should fail (NOT pass)
- Failures should be for the right reason (not syntax errors)
- Parse response:
outputs.passed == false
If tests pass in RED phase:
- Tests are not valid (already passing code exists)
- Refine tests to be more specific
- Verify testing the right functionality
Step 3: GREEN Phase - Implement Code
Action: Write minimum code to make tests pass.
Focus on:
- Making tests pass (not elegance)
- Implementing simplest solution
- Following TDD cycle strictly
Implementation Pattern:
// src/auth/login.ts export class AuthService { async login(email: string, password: string): Promise<User | null> { // Step 1: Find user const user = await this.userRepository.findByEmail(email); if (!user) return null; // Step 2: Verify password const valid = await this.passwordService.verify(password, user.passwordHash); if (!valid) return null; // Step 3: Return user return user; } }
Run Tests:
python .claude/skills/bmad-commands/scripts/run_tests.py \ --path . \ --framework auto \ --output json
Verify GREEN Phase:
- Parse response:
outputs.passed == true - Check
outputs.coverage_percent >= 80 - Verify
outputs.failed_tests == 0
If tests still failing:
- Review failure messages
- Fix implementation
- Re-run tests
- Repeat until GREEN
Step 4: REFACTOR Phase
Action: Improve code quality while keeping tests green.
Refactoring Targets:
- Remove duplication
- Improve naming
- Extract functions/methods
- Simplify conditionals
- Add type safety
- Improve error handling
After Each Refactor:
python .claude/skills/bmad-commands/scripts/run_tests.py \ --path . \ --framework auto \ --output json
Verify tests stay green:
after each refactoroutputs.passed == true- If tests break, revert refactor
- Only commit refactors that keep tests green
Reference
references/refactoring-patterns.md for common refactoring patterns and techniques.
Step 5: Verify Acceptance Criteria
Action: Check that all acceptance criteria from task spec are met.
For each acceptance criterion:
- Identify corresponding tests
- Verify tests pass
- Verify behavior matches requirement
- Check edge cases covered
Automated Verification:
# Run full test suite python .claude/skills/bmad-commands/scripts/run_tests.py \ --path . \ --framework auto \ --output json
Check:
outputs.passed == trueoutputs.coverage_percent >= 80outputs.total_tests >= expected_count- All acceptance criteria have corresponding passing tests
Manual Verification:
- Review code against technical specifications
- Verify API contracts match
- Check data models are correct
- Ensure error handling is complete
Step 6: Final Validation
Action: Run comprehensive checks before completion.
Checks:
- All tests passing
- Coverage >= 80%
- No syntax errors
- No linting errors
- All files created as specified
- Code follows project standards
Run Tests One Final Time:
python .claude/skills/bmad-commands/scripts/run_tests.py \ --path . \ --framework auto \ --output json
Acceptance Criteria Verification:
- ✅
:tests_passingoutputs.passed == true - ✅
:coverage_thresholdoutputs.coverage_percent >= 80 - ✅
: No syntax errors in outputno_syntax_errors - ✅
: Task spec was successfully loaded in Step 0task_spec_loaded - ✅
: All acceptance criteria verified in Step 5all_requirements_met
Output
Return structured output with telemetry:
{ "implementation_complete": true, "test_coverage_percent": 87, "files_modified": [ "src/auth/login.ts", "tests/auth/login.test.ts" ], "tests_passed": true, "telemetry": { "skill": "implement", "task_id": "task-auth-002", "duration_ms": 45000, "files_modified_count": 2, "tests_total": 12, "tests_passed": 12, "tests_failed": 0, "coverage_percent": 87 } }
Error Handling
If any step fails:
-
Task Spec Not Found:
- Error: "Task specification not found at workspace/tasks/{task_id}.md"
- Action: Create task spec first
-
Tests Failing:
- Error: "Tests failing after implementation"
- Action: Review test failures, fix code, re-run
-
Coverage Below Threshold:
- Error: "Test coverage {actual}% below threshold 80%"
- Action: Add more tests to increase coverage
-
Syntax Errors:
- Error: "Syntax errors detected in implementation"
- Action: Fix syntax errors, re-run tests
References
Detailed documentation in
references/:
- tdd-workflow.md: Complete TDD workflow with patterns
- refactoring-patterns.md: Common refactoring techniques
- testing-best-practices.md: Testing patterns and anti-patterns
- acceptance-criteria-guide.md: Writing good acceptance criteria
Using This Skill
From James subagent:
@james *implement task-auth-002
Directly:
Use .claude/skills/development/implement-v2/SKILL.md with input {task_id: "task-auth-002"}
With Orchestrator: Orchestrator calls this skill automatically during delivery workflow.
Philosophy
This skill embodies BMAD's 3-layer architecture:
- Uses Commands: bmad-commands for read_file, run_tests
- Provides Composition: Sequences commands into TDD workflow
- Enables Orchestration: Called by James subagent with routing
By using commands, this skill is:
- Observable: Telemetry at every step
- Testable: Commands have known contracts
- Composable: Can be used by other workflows
- Reliable: Deterministic command behavior