# Test Discipline

> Design assertions that prove the actual contract and fail on realistic regressions

- Skill: `bradygaster/test-discipline` (Agent Skill)
- Install (CLI): `npx skillmds@latest add bradygaster/test-discipline`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bradygaster/test-discipline/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bradygaster (https://skillmd.com/u/bradygaster)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bradygaster/test-discipline

---


## Context

Use this skill whenever a change affects an API, public interface, workflow contract, generated
artifact, or user-observable behavior. A passing status-only test is not evidence that the
intended artifact or contract is correct.

## Patterns

- Update tests in the same change as an API, signature, export, or public-interface change.
- Make assertions name and inspect the offending artifact, output, or configuration field—not just
  an exit code or broad success status.
- Mutation-test critical gates by changing the real source or emitted artifact and proving the
  assertion turns red.
- Exercise every caller path for a changed parser, normalizer, or helper; isolated unit coverage
  can miss the integration path that invokes it differently.
- Reproduce working-tree-only failures locally when the contract depends on index, filesystem,
  line-ending, or generated-output state.
- Keep expected inventory arrays synchronized with the files they enumerate.

## Examples

A workflow-compilation test mutates the source workflow, compiles it, and inspects the emitted
safe-output contract. A repair-script test constructs the actual index/blob/worktree state that
the repair routine must handle instead of a simplified fixture.

## Anti-Patterns

- Calling a test sufficient because it observes only a successful process exit
- Mutating a hand-built fixture instead of the source or artifact protected by the gate
- Testing a helper while omitting production callers
- Treating a local checkout defect as something CI alone can validate

