AgentSkillsCN

tdd

当用户请求测试驱动开发、测试优先的实施、红-绿-重构,或在编写代码前强制执行测试时启用此技能。适用于功能开发、漏洞修复与重构;除非用户明确放弃,否则将 TDD 视为默认规则。

SKILL.md
--- frontmatter
name: tdd
description: Activate when user asks for Test-Driven Development, test-first implementation, red-green-refactor, or enforcing tests before code. Use for feature work, bug fixes, and refactors; treat TDD as the default rule unless the user explicitly waives it.
version: 10.2.14

TDD Skill

General-purpose Test-Driven Development workflow for product code.

Rule

For implementation work, TDD is the default.

  • Do not start with production code changes.
  • Start with a test plan, then failing tests (RED), then minimum code (GREEN), then cleanup (REFACTOR).
  • Only skip TDD when the user explicitly says tests are out of scope.

When to Use

  • User asks for TDD, test-first, or red-green-refactor
  • Implementing a new feature with clear behavior
  • Fixing a bug and preventing regression
  • Refactoring code while preserving behavior
  • Working in unfamiliar code where tests reduce risk

When Not to Use

  • One-off prototypes where tests are explicitly out of scope
  • Tasks with no practical automated verification path
  • Purely cosmetic edits where behavior does not change

Core Loop: Red -> Green -> Refactor

  1. Define a single behavior slice

    • Capture one user-visible outcome at a time.
    • Prefer smallest meaningful increment.
  2. Write a failing test first (RED)

    • Add or update one focused test.
    • Run the narrowest command that executes the test.
    • Confirm it fails for the expected reason.
  3. Implement the minimum code to pass (GREEN)

    • Change only what is needed to satisfy the test.
    • Avoid speculative abstractions.
    • Re-run the focused test, then nearby tests.
  4. Improve design without changing behavior (REFACTOR)

    • Remove duplication and improve naming/structure.
    • Keep tests green after each small refactor step.
  5. Repeat

    • Add the next failing test for the next behavior slice.
    • Continue until acceptance criteria are covered.

Acceptance Tests (for this skill)

Test IDTypePrompt / ConditionExpected Result
T1Positive trigger"Implement this in TDD"skill triggers
T2Positive trigger"Write tests first, then code"skill triggers
T3Positive trigger"Red green refactor this bug fix"skill triggers
T4Negative trigger"Polish this dashboard layout"skill does not trigger
T5Negative trigger"Draft release notes only"skill does not trigger
T6Behaviorskill triggered for code changerequires test plan + RED evidence before implementation
T7Behaviorbug fix workflowregression test added first, initially failing
T8Behaviorcompletionreports failing-to-passing evidence and final suite result

Test Planning Pattern (implementation work)

Before coding, define lightweight acceptance checks:

Test IDTypeScenarioExpected Result
T1Happy pathvalid inputexpected output returned
T2Edge caseboundary inputstable, correct behavior
T3Error pathinvalid inputsafe, explicit failure
T4Regressionpreviously broken flowbug stays fixed

Practical Rules

  • Start with behavior, not internal implementation details.
  • Use deterministic tests (no flaky timing/network dependencies).
  • Keep tests readable (Arrange -> Act -> Assert).
  • For bug fixes, write the regression test before the code fix.
  • For legacy code, write characterization tests first, then refactor.
  • Run full relevant test suite before finishing.
  • Record the command/output proving the first failing test run.
  • Record the command/output proving the final passing run.

Validation Checklist

  • Tests were written/updated before implementation changes
  • First test run failed for expected reason
  • Minimal implementation made tests pass
  • Refactor preserved green test state
  • New behavior and regression paths are covered
  • Relevant suite passes end-to-end

Output Contract

When this skill is used, produce:

  1. Test plan (happy path, edge, error, regression)
  2. Evidence of initial failing test(s)
  3. Code change summary tied to passing tests
  4. Final test results and residual risks (if any)