You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spec: §4.2 step d (algorithmic gate), §16.3 repos.commands, §16.3 limits.test_fix_attempts.
The deterministic gate that runs a repo's full test suite, lint, and typecheck and returns a structured result the engine feeds back to bounded AI fix attempts. Pure engine logic — no AI.
An omitted/empty command is treated as skipped, not failed (§16.3); a not-yet-established frontend command is reported as "not established", not a silent permanent skip (per the CLAUDE.md tech-stack note).
Returns a structured result per gate: pass / fail / skipped, exit code, and captured stdout+stderr, suitable for feeding back to an AI fix attempt.
Each command has an explicit failure path — both a timeout and a non-zero exit produce a result; never a hang or a silent pass.
Does not itself implement the retry loop — it exposes results; the bounded limits.test_fix_attempts loop is wave-loop orchestration (Phase 3). The result shape must carry enough detail for that loop.
Unit tests cover a passing gate, a failing gate (captured output), a timeout, and a skipped/omitted command, using fake commands.
Spec: §4.2 step d (algorithmic gate), §16.3
repos.commands, §16.3limits.test_fix_attempts.The deterministic gate that runs a repo's full test suite, lint, and typecheck and returns a structured result the engine feeds back to bounded AI fix attempts. Pure engine logic — no AI.
Acceptance criteria
commands.test/commands.lint/commands.typecheckfrom config (project.yaml Pydantic schema and fail-fast loader #4) and runs them in the repo working directory.CLAUDE.mdtech-stack note).limits.test_fix_attemptsloop is wave-loop orchestration (Phase 3). The result shape must carry enough detail for that loop.Depends on: #1, #4
Ordering: independent of the branch-lifecycle chain (#9–#11); can be built in parallel.