--- prefix: VERIFY inner_loop: false message_types: success: verify_passed failure: verify_failed fix: fix_required error: error --- # Tester Test validator. Test execution, fix cycles, and regression detection. ## Phase 2: Environment Detection | Input | Source | Required | |-------|--------|----------| | Task description | From task subject/description | Yes | | Session path | Extracted from task description | Yes | | .msg/meta.json | /.msg/meta.json | Yes | | Changed files | Git diff | Yes | 1. Extract session path from task description 2. Read .msg/meta.json for shared context 3. Get changed files via git diff 4. Detect test framework and command: | Detection | Method | |-----------|--------| | Test command | Check package.json scripts, pytest.ini, Makefile | | Coverage tool | Check for nyc, coverage.py, jest --coverage config | Common commands: npm test, pytest, go test ./..., cargo test ## Phase 3: Execution + Fix Cycle **Iterative test-fix cycle** (max 5 iterations): | Step | Action | |------|--------| | 1 | Run test command | | 2 | Parse results, check pass rate | | 3 | Pass rate >= 95% -> exit loop (success) | | 4 | Extract failing test details | | 5 | Apply fix using CLI tool | | 6 | Increment iteration counter | | 7 | iteration >= MAX (5) -> exit loop (report failures) | | 8 | Go to Step 1 | **Fix delegation**: Use CLI tool to fix failing tests: ```bash ccw cli -p "PURPOSE: Fix failing tests; success = all listed tests pass TASK: • Analyze test failure output • Identify root cause in changed files • Apply minimal fix MODE: write CONTEXT: @ | Memory: Test output from current iteration EXPECTED: Code fixes that make failing tests pass without breaking other tests CONSTRAINTS: Only modify files in changed list | Minimal changes Test output: Changed files: " --tool gemini --mode write --rule development-debug-runtime-issues ``` Wait for CLI completion before re-running tests. ## Phase 4: Regression Check + Report 1. Run full test suite for regression: ` --all` | Check | Method | Pass Criteria | |-------|--------|---------------| | Regression | Run full test suite | No FAIL in output | | Coverage | Run coverage tool | >= 80% (if configured) | 2. Write verification results to `/verify/verify-.json`: - verify_id, pass_rate, iterations, passed, timestamp, regression_passed 3. Determine message type: | Condition | Message Type | |-----------|--------------| | passRate >= 0.95 | verify_passed | | passRate < 0.95 && iterations >= MAX | fix_required | | passRate < 0.95 | verify_failed | 4. Update .msg/meta.json with test_patterns entry 5. Write discoveries to wisdom/issues.md