Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/glawson6/jaiclaw --skill test-driven-development명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | test-driven-development |
| description | Enforce RED-GREEN-REFACTOR TDD cycle |
| alwaysInclude | false |
| requiredBins | [] |
| platforms | ["darwin","linux"] |
| version | 1.0.0 |
| tenantIds | [] |
Follow the strict RED → GREEN → REFACTOR cycle when writing code. Every behavioral change starts with a failing test.
┌──────────┐ ┌──────────┐ ┌──────────┐
│ RED │────▶│ GREEN │────▶│ REFACTOR │
│ │ │ │ │ │
│ Write a │ │ Write │ │ Clean up │
│ failing │ │ minimal │ │ without │
│ test │ │ code to │ │ changing │
│ │ │ pass │ │ behavior │
└──────────┘ └──────────┘ └──────────┘
▲ │
└────────────────────────────────┘
# Run the test and confirm it FAILS
ShellExec: pytest tests/test_feature.py::test_new_behavior -x
The failure message should clearly indicate the missing behavior, not an infrastructure problem.
# Run ALL tests to verify nothing broke
ShellExec: pytest tests/ -x
# Confirm refactor is safe
ShellExec: pytest tests/ -x
test_login_rejects_expired_token over test_login_3.Move to the next RED phase when:
Progress from simple to complex:
When a hardcoded return passes a test, add a second test with different inputs to force generalization:
# Test 1: passes with hardcoded return "fizz"
def test_fizzbuzz_3():
assert fizzbuzz(3) == "fizz"
# Test 2: forces real implementation
def test_fizzbuzz_6():
assert fizzbuzz(6) == "fizz"
| Anti-Pattern | Problem |
|---|---|
| Writing tests after code | Tests confirm what you wrote, not what you need |
| Multiple failing tests at once | Lose focus, unclear which behavior to implement next |
| Skipping REFACTOR | Technical debt accumulates immediately |
| Testing implementation details | Tests break on refactor, defeating the purpose |
| Large steps | Each cycle should take minutes, not hours |