fix(aw): require an explicit noop terminal state in agentic workflows - #1124
fix(aw): require an explicit noop terminal state in agentic workflows#1124groupthinking wants to merge 1 commit into
Conversation
The EventRelay CI Investigator has auto-filed 54 "[aw] ... produced no safe outputs" issues, 6 of which are still open (#1091, #1042, #1019, #978, #964, #950). They are not real findings — they are the workflow reporting on its own silence. Root cause is a contradiction between the prompt and the harness: - The harness treats a run that emits zero safe outputs as a failure and files a tracking issue. Its own warning says "The agent should have called `noop` to explicitly indicate no action was taken." - `noop` is available: the compiler auto-injects it (`max: 1`, required `message` field) and the runtime prompt advertises it in `<safe-output-tools>`. - But the workflow body never mentioned `noop` — zero occurrences — while actively instructing the agent to go silent: "Never create duplicate issues/comments for unchanged healthy state." "Exit before expensive analysis if preflight detects no state change." So on every healthy, unchanged CI run the agent did exactly what it was told, emitted nothing, and the harness filed a bogus issue. The workflow was guaranteed to generate noise precisely when the repository was healthy. Add an explicit terminal-state contract: a run must always emit at least one safe output, and the no-action paths must terminate with `noop` plus a one-line reason rather than returning silently. The two silent-exit constraints are amended to route through `noop`. The same contract is added to canonical-pr-remediator and focused-coverage-controller. Neither has manifested the failure yet, but both run on the identical harness with `noop` advertised and no guidance to call it, so both carry the same latent defect. Lock files recompiled with the CI-pinned compiler (gh aw v0.82.14). Only `body_hash` changes in each lock; `frontmatter_hash` and `compiler_version` are unchanged, confirming no configuration drift. Closes #1091 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited) Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Snapshot WarningsEnsure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice. Scanned FilesNone |
Agent Completion Truth Gate: BLOCKEDReasons: Machine-readable verdict{
"details": {
"invalid_fields": [
"issue.number",
"policy.agent_login",
"policy.run_id"
]
},
"reasons": [
"invalid_payload"
],
"verdict": "blocked"
} |
|
CI status — one red check, by design; halting for owner sign-off.
Terminal state: Nothing further is auto-mergeable here without either a human decision or fabricated governance evidence, so I'm not pushing more commits to this PR. Generated by Claude Code |
|
Closing as a duplicate of #1123. This PR is not merely similar — it points at the identical commit: Same SHA, same 6 files, same #1123 was opened first ( Keeping both open would also break governance on both: Tracking on #1123. |
Canonical issue
Closes # (no canonical feature issue — this is a harness-contract fix. It stops the bogus auto-filed noise issues #1091, #1042, #1019, #978, #964, #950 from recurring, but those are the symptom, not a feature request.)
Outcome
The EventRelay CI Investigator has auto-filed 54
[aw] … produced no safe outputsissues (6 still open). They are not real findings — the workflow was reporting on its own silence. This PR adds an explicit terminal-state contract so every run emits at least one safe output, and the no-action paths terminate withnoop+ a one-line reason instead of returning silently. That eliminates the noise precisely when the repository is healthy.Scope
noopterminal-state contract in three agentic-workflow definitions —eventrelay-ci-investigator.md(the one that has manifested the failure), pluscanonical-pr-remediator.mdandfocused-coverage-controller.md(same latent defect: identical harness,noopadvertised, no guidance to call it). Lock files recompiled with the CI-pinned compiler (gh aw v0.82.14); onlybody_hashchanges.main.Risk
noopsafe-output on a healthy run (the intended behavior).Verification
Production evidence
Not applicable — CI/agentic-workflow configuration change, no runtime or web surface.
Agent handoff
mainAgent provenance
Human-authored commit (owner
groupthinking) surfaced as a draft PR by the scheduled PR-remediation routine so the pushed work is trackable and reviewable. No agent-lock manifest is supplied.Generated by Claude Code