fix(pr-guard): stand down on the merge-remote-main lane it was overriding #1330
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1330
Loading…
Reference in a new issue
No description provided.
Delete branch "ops/1321-pr-guard-reads-lane"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #1321.
The contradiction
pr-guardrefused any push whose destination is the remote default branch, unconditionally.merge-remote-mainis defined as commit, push tomain, close the issue, so on the eight repos declaring that lane one hook in this suite rendered prose telling the agent to pushmainand a second hook refused the push. The only documented override isgit push --no-verify, which the fleet rules forbid outright, so those repos had no compliant path at all.The fix
The lane already has one owning reader, so the guard asks it rather than growing a second frontmatter parser:
generate-git-workflowgains--print-lane, which prints the resolved slug and prints nothing when the repo declares none. A fallback slug there would hand the guard an authority the repo never granted.AOS_LANE_READER, then PATH, then the python env pre-commit built for this same hook repo's python hooks (pre-commit builds no environment for alanguage: scripthook). An unresolved answer reads as undeclared, and undeclared stays guarded.Standing down exits rather than falling through: the already-published half below judges feature branches, and the default branch has no pull request of its own for it to find.
Acceptance, each covered by a test
merge-remote-mainpushes to the default branch and the guard says nothing.pull-request,pull-request-and-merge,remote-branch-only, and an undeclared repo are refused exactly as before, and the refusal now names the lane it read.merge-remote-mainrepo.Verified end to end against the real
generate-git-workflow, not only the test stub. Fullpre-commit run --all-filesexits 0 and 746 tests pass.Not in this change
umbradeclares its lane in.ward/ward.yamlrather than AGENTS.md frontmatter, so every reader sees it as undeclared and guards it. Teaching the resolver that file would deepen a dependency the fleet is shedding (#1329), so the honest fix is umbra declaring in frontmatter. Filed separately rather than folded in here.