skills/tdd-enforcement/SKILL.md
# Skill: Verification Discipline > Enforces task-class-aware verification during execution. The source of truth is `verification_spec`, not a universal TDD ritual. --- ## Why This Exists ADLC needs one discipline for all tasks, but not one verifier shape for all tasks. The right verifier depends on what changed: - `feature` tasks need behavior-defining tests - `bugfix` tasks need a reproducible failure first - `build_validation` tasks need the exact failing build or test command - `lint_clea
npx skillsauth add bigeasyfreeman/adlc skills/tdd-enforcementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Enforces task-class-aware verification during execution. The source of truth is
verification_spec, not a universal TDD ritual.
ADLC needs one discipline for all tasks, but not one verifier shape for all tasks. The right verifier depends on what changed:
feature tasks need behavior-defining testsbugfix tasks need a reproducible failure firstbuild_validation tasks need the exact failing build or test commandlint_cleanup tasks need the exact failing lint, fmt, or static-analysis commandThe goal is to prevent false greens without forcing fake behavioral tests onto maintenance work. Strong verification is task-class-specific.
This skill operates at execution time, when a task reaches a coding agent.
triggers:
- phase: 3
event: task_dispatched_to_coding_agent
action: verify `task_classification` and `verification_spec` are present
- phase: 3
event: verification_spec_missing_or_weak
action: stop and request clarification
The upstream planner must provide:
task_classificationverification_specverifier_qualityIf those fields are missing, the execution agent should not invent a ceremony. It should stop.
featurebugfixbuild_validationlint_cleanuprefactor or infrafeature or bugfix rules.build_validation or lint_cleanup rules.The execution agent should follow this loop:
verification_specverification_specThe point is not ceremony. The point is to bind implementation to a falsifiable signal that matches the task class.
Every verifier must satisfy these rules:
If a verifier passes too early, it is either the wrong verifier or the thing already exists.
The codegen-context skill should receive the verification_spec and convert it into the right execution prompt:
## Verification Spec
- Task class: `[task_classification]`
- Primary verifier: `[type + command/test/reproducer]`
- Expected pre-change result: fail
- Expected post-change result: pass
- Secondary verifiers: `[optional list]`
- Scope note: `[why this verifier is sufficient]`
## Task-Class Instructions
- Feature: write or run the behavioral tests that define success
- Bugfix: reproduce the failure first, then fix it
- Build validation: use the exact failing build/test command
- Lint cleanup: use the exact failing lint/fmt/static-analysis command
The assembled context should not imply that every task must start with new behavioral tests.
| Violation | Detection | Response |
|-----------|-----------|----------|
| No verification_spec provided | Missing upstream field | Stop and request clarification |
| Verifier does not match task class | feature task using only cargo fmt --check, or lint_cleanup task using invented tests | Reject the verifier |
| Verifier passes before the fix for the wrong reason | Current code already satisfies the check, or the check is too weak | Treat the verifier as invalid |
| Production code added without any verifier evidence | Diff shows code changes but no failing verifier or reproducer | Block completion |
| Weak verifier masks a false green | Task appears done but the failure mode is still present | Strengthen the verifier before approving |
verification_specverification_spec payloads should include contract_versiontask_classification and verifier shape before executionmissing_verification_spec, invalid_task_classification, weak_verifier, non_deterministic_verifier, and verifier_mismatchdevelopment
Discovers and records repo-local approved build paths so agents reuse proven patterns instead of inventing parallel architectures.
development
Scoped maintenance for docs/solutions entries when stale signals, refactors, or explicit user scope require refresh.
documentation
Conditionally captures verified reusable ADLC learnings into docs/solutions after successful closeout.
development
Uses Graphify as ADLC's graph-backed research layer and Beads as an optional dependency-aware task memory layer. Produces evidence for compatibility, reuse, accuracy, dark-code hotspots, and long-horizon handoff.