Skip to content
self-test logo

Self-Test Skill

self-test

Pattern for testing your own code during implementation. Ensures quality before declaring complete.

SKILL.md

Full skill instructions

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:

# 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:

# 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