AGENTS.md tells agents the merge is director-gated, which inverts the pull-request-and-merge lane and strands finished work #937
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/infrastructure#937
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
What
AGENTS.mdin this repo carries a hand-written one-line summary of the git workflow:The lane authority says the opposite.
agentic_os/generators/generate_git_workflow.pyin agentic-os is the canonical source for this block, and it states that the agent that authored the code merges its own pull request onpull-request-and-merge. Its own docstring names this exact reading as the bug it was written to correct:Why it matters
An agent reading this repo's
AGENTS.mdstops at the open pull request and hands back. That is the stranded-work failure the lane slug was renamed to prevent, and it is invisible until someone reads the merge queue.The sentence also claims to be "byte-identical across the five PR-lane repos (agentic-os, deploy, infrastructure, sirens-echo, ward)". It is not: agentic-os carries the generated block instead, which says the agent merges. So the claim of identity is itself stale, and the other three repos are worth checking for the same drift.
Fix
Adopt the generated git-workflow block here rather than hand-maintaining a summary of it. agentic-os ships both
scripts/apply-git-workflow.py(the writer) and thecheck-git-workflowpre-commit hook (the drift gate), so the block stops diverging once this repo is on it. This repo has no generated-block markers inAGENTS.mdtoday, which is why it drifted.Check
deploy,sirens-echo, andwardfor the same stale sentence while landing it.Found by
Surfaced while landing #936, whose merge decision the contradiction blocked. Sibling fleet-writer change: coilyco-flight-deck/agentic-os#1244
This repo's copy is fixed in #940. Measuring the rest changed the shape of the remainder, so leaving the numbers here rather than in the pull request alone.
The drift is fleet-wide
A dry run of
agentic-os/scripts/apply-git-workflow.pyacross the 20 checked-out repos:agentic-os is the only repo already current. Every other repo drifts, on both lanes, not just the four PR-lane siblings this issue named.
Why, structurally
agentic-os wires
git-workflowas a local hook in its own.pre-commit-config.yaml. The managed hook set thatapply-agentic-os-hooks.pywrites into consumer repos does not include it. So the authoring repo is gated against this drift and no consumer repo ever has been, which is exactly why one repo stayed current and 18 did not.Ordering constraint
Adding
git-workflowto the fleet hook set first turns 18 repos red until each takes its block. So the blocks land first, per repo on its own lane, and the gate follows once the tree is clean.There is a second cost per repo. The block is about 2.3 KB and lands in a file most repos cap at 4000 chars. This repo was already opted up to 8000 for the engineer/QA prohibition and still went 133 over, so it needed another raise. Repos sitting near their cap will each need the same, and that is a judgement call per repo rather than something the applier can make.
Scope
That rollout belongs here as ansible rather than as a hand run of the authored applier, per the authoring-vs-rollout split the applier's own docstring states. It also wants a decision from Kai first, since it is 18 pull requests across lanes plus a per-repo cap judgement, so I have not started it.
Suggest this issue stays open as the rollout tracker once the pull request above merges, rather than closing with it.
Rollout complete. Closing, with the one residual tracked elsewhere.
Landed
16 repos carry the managed block. 13 went straight to
mainonmerge-remote-main, and 3 landed through pull requests on their own lanes: agent-proxy, deploy, and this repo. agentic-os was already current.Two repos needed an AGENTS.md char cap raise, both with the reason written next to the number: this repo 8000 to 8500, deploy 6500 to 8700. The block is about 2.3 KB of machine-generated text a consumer repo cannot trim, which is the same argument each cap had already been raised on once.
Tooling
scripts/git-workflow-migrate.pyin #943, sibling of the pointer migration. The shared clean-on-main guard moved tomigrate_common.py.The gate that stops this recurring is in coilyco-flight-deck/agentic-os#1262:
git-workflowis now in the fleet hook set, so consumer repos get it on their next managed-block refresh. Blocks first, then the gate, as the ordering note above required.Not done, and why
role-drift-checkclones the catalog at an unpinnedmain, so the upstream seat retitles invalidated its committed role record with no commit on its side. Filed at coilyco-gaming/sirens-echo#1157. Its config refresh should wait for that, or the new gate lands on a repo whose block is still absent.mainpush would land the commit on the downstream side.