--- name: self-test description: Pattern for testing your own code during implementation. Ensures quality before declaring complete. allowed-tools: Bash, Read --- # Self-Test Skill Pattern for iterative testing during implementation. ## When to Load This Skill - You are implementing code - You need to verify your work before completing - You want to catch issues early ## Self-Test Loop ``` WHILE implementation not complete: Write/modify code ↓ Write tests for new code ↓ Run tests ↓ FAIL? → Fix code, retry ↓ Run lint ↓ FAIL? → Fix issues, retry ↓ Run typecheck ↓ FAIL? → Fix types, retry ↓ Continue to next piece ``` ## Running Tests Use project-specific test commands: @.claude/skills/project/run-tests/SKILL.md Common patterns: ```bash # Run specific test file npm test -- --testPathPattern={file} pytest {file} -v # Run affected tests npm test -- --changedSince=HEAD ``` ## Running Lint/Typecheck Use project-specific commands: @.claude/skills/project/lint/SKILL.md Common patterns: ```bash # TypeScript npx tsc --noEmit npx eslint {files} --fix # Python mypy {files} ruff check {files} --fix ``` ## Before Declaring Pre-Complete Checklist: - [ ] New code has tests - [ ] All tests pass - [ ] Lint passes - [ ] Typecheck passes - [ ] No console errors/warnings If ANY fails, status is NOT `pre_complete`. ## Principles - **Test as you go** - Don't batch at the end - **Fix immediately** - Don't accumulate failures - **Be honest** - Report actual status