self-test

majiayu000's avatarfrom majiayu000

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

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 5, 2026

When & Why to Use This Skill

The Self-Test Claude skill establishes a robust, iterative testing pattern for software development. By integrating automated test execution, linting, and typechecking directly into the implementation phase, it empowers AI agents and developers to verify code quality in real-time, reduce technical debt, and ensure all deliverables meet rigorous stability standards before they are declared complete.

Use Cases

  • Continuous Verification: Automatically running unit tests (such as Jest or Pytest) immediately after code modifications to catch logic errors early in the development cycle.
  • Static Analysis Integration: Executing linters and typecheckers (like ESLint, Ruff, or Mypy) to maintain code style consistency and prevent type-related runtime crashes.
  • Pre-Completion Validation: Utilizing a standardized checklist to ensure that new features are fully tested, linted, and compliant with project requirements before final submission.
  • Regression Prevention: Running project-specific test suites during the development loop to ensure that new changes haven't introduced bugs into existing functionality.
nameself-test
descriptionPattern for testing your own code during implementation. Ensures quality before declaring complete.
allowed-toolsBash, 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:

# 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