implement-feature

Implement Feature Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "implement-feature" with this command: npx skills add adolfoaranaes12/bmad-enhanced/adolfoaranaes12-bmad-enhanced-implement-feature

Implement Feature Skill

Purpose

Implement features from task specifications or user stories using Test-Driven Development (TDD). This skill writes tests first, implements code to make tests pass, and validates the implementation meets all acceptance criteria.

Core Principles:

  • Test-Driven Development (Red → Green → Refactor)

  • Deterministic operations via bmad-commands

  • Automated acceptance criteria verification

  • Continuous validation

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 bmad-commands to load task spec.

Execute:

python .claude/skills/bmad-commands/scripts/read_file.py
--path workspace/tasks/{task_id}.md
--output json

Parse Response:

  • Verify success == true

  • Extract outputs.content for task specification

  • Parse sections: Objective, Acceptance Criteria, Context, Tasks

If task spec not found:

  • Error: file_not_found in errors array

  • Action: Create task spec first using create-task-spec skill

  • Halt implementation

If subtask_id is provided:

  • Parse the task specification to locate the specific subtask section

  • Filter acceptance criteria to only those related to the subtask

  • Scope implementation to only the subtask requirements

  • Note: All workflow steps below apply only to the selected subtask

See: references/templates.md for required task spec format

Step 1: Analyze Requirements

Action: Break down acceptance criteria into test cases.

For each acceptance criterion:

  • Identify what needs to be tested (behavior/outcome)

  • Determine test type (unit/integration/e2e)

  • Plan test structure and data

  • Identify edge cases

Example Analysis:

AC-1: 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 return 401 when login fails

Identify Files:

  • Files to create (new implementation + tests)

  • Files to modify (existing routes, config)

  • Files to reference (existing models, utilities)

See: references/requirement-analysis-guide.md for detailed analysis patterns

Step 2: Write Tests (TDD Red Phase)

Action: Write failing tests that cover all acceptance criteria.

Run Tests:

python .claude/skills/bmad-commands/scripts/run_tests.py
--path .
--framework auto
--output json

Verify RED Phase:

  • Parse response: outputs.passed == false

  • Tests fail because implementation doesn't exist (not syntax errors)

If tests pass in RED phase:

  • Tests are invalid (code already exists)

  • Refine tests to be more specific

See: references/test-examples.md for comprehensive test patterns and structure

Step 3: Implement Code (TDD Green Phase)

Action: Write minimum code to make tests pass.

Implementation Strategy:

  • Start with simplest test first

  • Implement just enough to pass that test

  • Run tests after each small change

  • Keep refactoring for later (Green phase)

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 in outputs.failures

  • Fix implementation

  • Re-run tests

  • Repeat until GREEN

See: references/implementation-examples.md for implementation patterns

Step 4: Refactor (TDD Refactor Phase)

Action: Improve code quality while keeping tests green.

Refactoring Targets:

  • Remove duplication (DRY principle)

  • Improve naming (clarity)

  • Extract functions/methods (single responsibility)

  • Simplify conditionals (readability)

  • Add type safety

  • Enhance error handling

After Each Refactor:

python .claude/skills/bmad-commands/scripts/run_tests.py
--path .
--framework auto
--output json

Verify tests stay green:

  • outputs.passed == true after each refactor

  • If tests break, revert refactor

  • Only commit refactors that keep tests green

See: references/refactoring-patterns.md for common refactoring 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 == true

  • outputs.coverage_percent >= 80

  • outputs.total_tests >= expected_count

  • All acceptance criteria have corresponding passing tests

Manual Verification:

  • Review code against technical specifications

  • Verify API contracts match spec

  • Check data models are correct

  • Ensure error handling is complete

Step 6: Run Validation Suite

Action: Run comprehensive checks before completion.

Validation Checks:

  • All tests passing

  • Coverage >= 80%

  • No syntax errors

  • No linting errors

  • All files created as specified

  • Code follows project standards

Run Final Tests:

python .claude/skills/bmad-commands/scripts/run_tests.py
--path .
--framework auto
--output json

Acceptance Criteria Verification:

  • ✅ tests_passing : outputs.passed == true

  • ✅ coverage_threshold : outputs.coverage_percent >= 80

  • ✅ no_syntax_errors : No syntax errors in output

  • ✅ task_spec_loaded : Task spec was successfully loaded in Step 0

  • ✅ requirements_met : All acceptance criteria verified in Step 5

See: references/validation-guide.md for complete validation procedures

Output

Return structured output with implementation status, test results, and telemetry.

See: references/templates.md for complete output format and examples

Error Handling

If any step fails:

  • Task Spec Not Found: Create task spec first using create-task-spec skill

  • Tests Failing: Review failures in outputs, fix code, re-run

  • Coverage Below Threshold: Add more tests to reach 80%

  • Syntax Errors: Fix syntax errors, re-run tests

See: references/error-scenarios.md for detailed error handling strategies

Common Scenarios

Scenario 1: Ambiguous Requirements

If acceptance criteria are unclear or not testable:

  • Halt implementation

  • Request requirement refinement

  • Suggest using refine-story skill

Scenario 2: Missing Dependencies

If implementation requires files that don't exist:

  • Check if dependency is from another task

  • Suggest implementing dependency task first

  • OR expand scope to include dependency (with user approval)

Scenario 3: Tests Failing After Refactor

If tests break during refactoring:

  • Revert the refactor

  • Run tests to verify green again

  • Try smaller refactoring step

  • Ensure tests are correct (not implementation-dependent)

Scenario 4: Large Task with Multiple Subtasks

If a task has multiple independent subtasks that can be implemented separately:

  • Use the --subtask flag to implement one subtask at a time

  • Example: /implement-feature workspace/tasks/task-auth-002.md --subtask subtask-1

  • This allows for incremental development and easier code review

  • Each subtask should have its own tests and can be committed independently

Best Practices

  • Follow TDD Cycle - Red → Green → Refactor, no shortcuts

  • Keep Tests Focused - One test per behavior

  • Mock External Dependencies - Database, APIs, file system

  • Commit Frequently - After each TDD phase

See: references/best-practices.md for detailed TDD best practices

Routing Guidance

Use this skill when:

  • Task complexity is simple to medium (≤60 complexity score)

  • Changes affect ≤5 files

  • No breaking changes or migrations

  • Clear, testable acceptance criteria

Use alternative when:

  • High complexity (>60 complexity score)

  • Large scale changes (>5 files)

  • Breaking changes requiring discovery phase

  • Migrations or schema changes

  • → Route to: implement-with-discovery skill

Complexity Assessment:

  • Low (0-30): 1-2 files, no database/API changes → Use this skill

  • Medium (31-60): 3-5 files, minor schema changes → Use this skill with caution

  • High (61-100): 6+ files, migrations, breaking changes → Use implement-with-discovery

Reference Files

  • references/requirement-analysis-guide.md

  • Analyze acceptance criteria, plan tests

  • references/test-examples.md

  • Complete test patterns (unit, integration, e2e)

  • references/implementation-examples.md

  • Code implementation patterns

  • references/refactoring-patterns.md

  • Common refactoring techniques

  • references/validation-guide.md

  • Complete validation procedures

  • references/error-scenarios.md

  • Error handling strategies

  • references/best-practices.md

  • TDD and testing best practices

  • references/templates.md

  • Task spec format, output format, commit templates

Using This Skill

Invoked by James subagent with routing, or called directly with task_id input.

Part of BMAD Enhanced Development Suite

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

analyze-architecture

No summary provided by upstream source.

Repository SourceNeeds Review
General

document-project

No summary provided by upstream source.

Repository SourceNeeds Review
General

quality-gate

No summary provided by upstream source.

Repository SourceNeeds Review
General

create-brownfield-prd

No summary provided by upstream source.

Repository SourceNeeds Review