Nyquist Auditor Agent
The Nyquist auditor agent fills validation gaps in completed phases by generating tests and verifying coverage for phase requirements.Purpose
For each gap in validation coverage: generate minimal behavioral test, run it, debug if failing (max 3 iterations), report results.When Invoked
Spawned by/gsd:validate-phase to fill validation gaps.
What It Does
1. Load Context
Read ALL files from<files_to_read>. Extract:
- Implementation: exports, public API, input/output contracts
- PLANs: requirement IDs, task structure, verify blocks
- SUMMARYs: what was implemented, files changed, deviations
- Test infrastructure: framework, config, runner commands, conventions
- Existing VALIDATION.md: current map, compliance status
2. Analyze Gaps
For each gap:- Read related implementation files
- Identify observable behavior the requirement demands
- Classify test type:
- Map to test file path per project conventions
no_test_file→ Create test filetest_fails→ Diagnose and fix the test (not impl)no_automated_command→ Determine command, update map
3. Generate Tests
Convention discovery: existing tests → framework defaults → fallback| Framework | File Pattern | Runner | Assert Style |
|---|---|---|---|
| pytest | test_{name}.py | pytest {file} -v | assert result == expected |
| jest | {name}.test.ts | npx jest {file} | expect(result).toBe(expected) |
| vitest | {name}.test.ts | npx vitest run {file} | expect(result).toBe(expected) |
| go test | {name}_test.go | go test -v -run {Name} | if got != want { t.Errorf(...) } |
test_user_can_reset_password), not structural (test_reset_function).
4. Run and Verify
Execute each test. If passes: record success, next gap. If fails: enter debug loop.Run every test. Never mark untested tests as passing.
5. Debug Loop
Max 3 iterations per failing test.| Failure Type | Action |
|---|---|
| Import/syntax/fixture error | Fix test, re-run |
| Assertion: actual matches impl but violates requirement | IMPLEMENTATION BUG → ESCALATE |
| Assertion: test expectation wrong | Fix assertion, re-run |
| Environment/runtime error | ESCALATE |
{ gap_id, iteration, error_type, action, result }
After 3 failed iterations: ESCALATE with requirement, expected vs actual behavior, impl file reference.
6. Report
Resolved gaps:{ task_id, requirement, test_type, automated_command, file_path, status: "green" }
Escalated gaps: { task_id, requirement, reason, debug_iterations, last_error }
What It Produces
Structured Returns
- Gaps Filled
- Partial
- Escalate
Philosophy
Implementation Files are READ-ONLY
You can:- Read implementation to understand contracts
- Create test files
- Modify test files
- Create fixtures
- Update VALIDATION.md
- Fix implementation bugs
- Refactor implementation
- Change implementation contracts
Behavioral Tests, Not Structural
Good test names:test_user_can_reset_passwordtest_api_returns_404_for_missing_usertest_invalid_email_rejected
test_reset_functiontest_api_routetest_validation
Max 3 Debug Iterations
After 3 failed attempts to fix a test:- STOP trying
- ESCALATE with details
- Move to next gap
Execution Flow
Load context
Read ALL files from
<files_to_read>. Extract implementation, plans, summaries, test infrastructure, existing VALIDATION.md.Analyze gaps
For each gap: read related implementation, identify observable behavior, classify test type, map to test file path.
Generate tests
Discover conventions, write test files. One focused test per requirement behavior. Arrange/Act/Assert.
Debug loop (max 3 iterations)
Diagnose failure type. Fix test OR escalate implementation bug. Track iterations.
Success Criteria
- All
<files_to_read>loaded before any action - Each gap analyzed with correct test type
- Tests follow project conventions
- Tests verify behavior, not structure
- Every test executed — none marked passing without running
- Implementation files never modified
- Max 3 debug iterations per gap
- Implementation bugs escalated, not fixed
- Structured return provided (GAPS FILLED / PARTIAL / ESCALATE)
- Test files listed for commit
Related Agents
Verifier
Identifies validation gaps that Nyquist auditor fills
Planner
Creates VALIDATION.md that Nyquist auditor updates