Context (AMS adversarial audit)
Nothing independently verifies a coding agent's work before submission: slop-assessment.ts is a static pattern scorer; the only real verification module (engine lint-guard.ts:94-131) is hardcoded to loopover's own monorepo commands AND never passed in production (driver-factory.ts:283 gates on options.lintGuard, which no production caller sets). coding-task-spec.ts:235-259 only TELLS the agent which commands to run. A known-bad PR passes every AMS-side gate.
Fix
Thread detectRepoStack's inferred test/build/lint commands into a real post-edit verification step (target-repo-aware generalization of lint-guard's pattern) that runs before checkSubmissionFreshness; a failure returns the attempt to the iterate loop (bounded) instead of submitting. Tests with a fixture repo whose test command fails.
99%+ patch coverage, branch-counted.
Context (AMS adversarial audit)
Nothing independently verifies a coding agent's work before submission: slop-assessment.ts is a static pattern scorer; the only real verification module (engine lint-guard.ts:94-131) is hardcoded to loopover's own monorepo commands AND never passed in production (driver-factory.ts:283 gates on options.lintGuard, which no production caller sets). coding-task-spec.ts:235-259 only TELLS the agent which commands to run. A known-bad PR passes every AMS-side gate.
Fix
Thread detectRepoStack's inferred test/build/lint commands into a real post-edit verification step (target-repo-aware generalization of lint-guard's pattern) that runs before checkSubmissionFreshness; a failure returns the attempt to the iterate loop (bounded) instead of submitting. Tests with a fixture repo whose test command fails.
99%+ patch coverage, branch-counted.