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
agent-completion/truth-gate fails on essentially every pull request, including merged ones. #1368 is the tip of main and merged with this status red.
#1377 narrowed applicability so pull-side provenance arms the gate only when a linked issue exists. That removed a real false-positive class, but it does not fix the deadlock — and cannot.
Why repair is impossible
Two required checks contradict each other:
PR Governance requires exactly one Closes #<issue> reference.
The armed gate demands an intent snapshot written only by snapshot-agent-task-intent, which runs on issues events — never on pull_request_target — and only for issues labelled agent-task/mcp-agent that already declare an agent login and run id.
So satisfying PR Governanceguarantees failing the truth gate unless the work originated from a dispatch. The only pull requests #1377 could rescue are those with no linked issue — exactly the ones PR Governance rejects.
Demonstrated on #1408. Adding Closes #1407 moved the verdict from:
Still blocked. No change to the applicability rule resolves this, because the arming condition is mandatory under another check.
The trust infrastructure was never provisioned
.github/agent-lock/trusted-publishers.json had all three allowlists empty, and its own note recorded that this was deliberate:
An empty allowlist intentionally blocks rather than downgrading agent work to not_applicable.
So the gate was designed to fail closed until a publisher App that does not exist gets stood up.
What a permanently-red check costs
It trains everyone to ignore CI, which hides real failures. .github/workflows/agent-completion-enforcement.yml documents this in its own comments:
Reporting those as failure makes this check permanently red on 100% of pull requests, which destroys its signal value and hides real build/test failures behind constant noise.
Its sibling reported neutral in the same situation. The truth gate reported failure.
MERGE_POLICY.md v2 now encodes the rule that would have caught this: any required check failing on >50% of pull requests over 7 days is automatically demoted to advisory.
Kept:pr-checks.yml's validate job (PR title, conventional commits, description length, large-PR warning) — independent of the gate. And pr-governance.yml, which becomes the sole binding gate.
Acceptance criteria
agent-completion/truth-gate no longer reports on any pull request
Agent completion enforcement Check removed
validate still runs and still posts its PR-validation comment
PR Governance and Canonical issue and evidence unaffected
No surviving reference in any workflow, script, or test
Full unit suite passes; test-count delta matches the deleted test functions exactly
Problem
agent-completion/truth-gatefails on essentially every pull request, including merged ones. #1368 is the tip ofmainand merged with this status red.#1377 narrowed applicability so pull-side provenance arms the gate only when a linked issue exists. That removed a real false-positive class, but it does not fix the deadlock — and cannot.
Why repair is impossible
Two required checks contradict each other:
PR Governancerequires exactly oneCloses #<issue>reference.snapshot-agent-task-intent, which runs onissuesevents — never onpull_request_target— and only for issues labelledagent-task/mcp-agentthat already declare an agent login and run id.So satisfying
PR Governanceguarantees failing the truth gate unless the work originated from a dispatch. The only pull requests #1377 could rescue are those with no linked issue — exactly the onesPR Governancerejects.Demonstrated on #1408. Adding
Closes #1407moved the verdict from:to:
Still blocked. No change to the applicability rule resolves this, because the arming condition is mandatory under another check.
The trust infrastructure was never provisioned
.github/agent-lock/trusted-publishers.jsonhad all three allowlists empty, and its own note recorded that this was deliberate:So the gate was designed to fail closed until a publisher App that does not exist gets stood up.
What a permanently-red check costs
It trains everyone to ignore CI, which hides real failures.
.github/workflows/agent-completion-enforcement.ymldocuments this in its own comments:Its sibling reported
neutralin the same situation. The truth gate reportedfailure.MERGE_POLICY.mdv2 now encodes the rule that would have caught this: any required check failing on >50% of pull requests over 7 days is automatically demoted to advisory.Scope
tests/unit/test_agent_completion_gate.pypr-checks.ymltruth-gate jobsscripts/ci/agent_completion_gate.py.github/workflows/agent-completion-enforcement.ymldocs/agent-completion-truth-gate.mdscripts/ci/agent_completion_enforcement.pytests/unit/test_agent_completion_enforcement.py.github/agent-lock/trusted-publishers.jsonKept:
pr-checks.yml'svalidatejob (PR title, conventional commits, description length, large-PR warning) — independent of the gate. Andpr-governance.yml, which becomes the sole binding gate.Acceptance criteria
agent-completion/truth-gateno longer reports on any pull requestAgent completion enforcementCheck removedvalidatestill runs and still posts its PR-validation commentPR GovernanceandCanonical issue and evidenceunaffectedRelated
#1377 (narrowing attempt) · #1384 (the applicability defect) · #1407 / #1408 (
MERGE_POLICY.mdv2)