chore: add shared skills catalog (19 skills), installers, manifest, validator
This commit is contained in:
31
skills/test-driven-development/SKILL.md
Normal file
31
skills/test-driven-development/SKILL.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: test-driven-development
|
||||
description: Use when building new features, refactoring existing modules, or fixing bugs using Test-Driven Development (TDD: Red-Green-Refactor cycle).
|
||||
---
|
||||
|
||||
# Test-Driven Development (TDD)
|
||||
|
||||
## Purpose
|
||||
Build robust, well-designed, and thoroughly tested software by writing automated tests *before* writing production code.
|
||||
|
||||
## The Red-Green-Refactor Cycle
|
||||
|
||||
### 1. 🔴 RED — Write a Failing Test
|
||||
- Define the desired behavior from the caller's perspective.
|
||||
- Write a focused test asserting that behavior.
|
||||
- **Run the test** and verify that it fails for the *expected* reason (e.g. missing method or assertion mismatch, not a syntax/import error).
|
||||
|
||||
### 2. 🟢 GREEN — Write the Minimal Implementation
|
||||
- Write just enough code to make the failing test pass.
|
||||
- Resist the temptation to implement speculative future features or premature optimizations.
|
||||
- **Run the test suite** and verify that all tests pass.
|
||||
|
||||
### 3. 🔵 REFACTOR — Clean Up & Optimize
|
||||
- Eliminate duplication and code smells.
|
||||
- Improve naming, types, and module structure.
|
||||
- Ensure all invariants hold while keeping the test suite green at all times.
|
||||
|
||||
## Best Testing Practices
|
||||
- **Test Behavior, Not Implementation Details:** Avoid asserting private state or internal methods. Test through public interfaces.
|
||||
- **Fast and Deterministic:** Unit tests should run in milliseconds without relying on real network calls or unstable timing delays.
|
||||
- **AAA Pattern:** Arrange (setup data), Act (call function/method), Assert (check outcome and side-effects).
|
||||
Reference in New Issue
Block a user