feat(scripts): add the git-workflow block bulk migration #943

Merged
coilyco-ops merged 2 commits from aos/claude/sy55 into main 2026-08-26 03:04:27 +00:00
Owner

Rollout half of #937, and a sibling of agents-pointer-migrate.py: agentic-os authors the renderer and the drift gate, this repo lands the block on each managed repo's canonical main.

Why it was needed

agentic-os wires the git-workflow hook as a local hook, and the managed hook set written into consumer repos never included it. So the authoring repo was gated against this drift and no consumer repo ever has been. One repo stayed current and 18 did not.

Design notes

Lane-aware, because the block is what states the lane and landing it has to obey the lane it states. merge-remote-main pushes to main, and every other lane including undeclared opens a pull request and stops there.

Three guards the precedent does not have, each earned during the run:

  • Fast-forward before committing. A commit on a stale base is a push rejected after the work is already done.
  • Re-read the lane after that fast-forward. main may declare a lane the stale worktree did not, which is exactly what routed agent-proxy down the pull-request path on its first pass.
  • Report a repo whose AGENTS.md cap the block overruns as capped rather than force-fitting it. Raising a cap is a per-repo judgement with a written reason.

The clean-on-main guard both migrations share moves to migrate_common.py.

Run results

15 repos landed. deploy and infrastructure were skipped for dirty host checkouts, exactly as intended, and landed through worktrees instead. sirens-echo is open at coilyco-gaming/sirens-echo#1156, blocked on unrelated pre-existing drift filed at coilyco-gaming/sirens-echo#1157. The coilysiren/coilysiren profile repo is exempt in code, because GitHub is canonical there and a Forgejo main push would land on the downstream side.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

Rollout half of https://forgejo.coilysiren.me/coilyco-flight-deck/infrastructure/issues/937, and a sibling of `agents-pointer-migrate.py`: agentic-os authors the renderer and the drift gate, this repo lands the block on each managed repo's canonical `main`. ## Why it was needed agentic-os wires the `git-workflow` hook as a local hook, and the managed hook set written into consumer repos never included it. So the authoring repo was gated against this drift and no consumer repo ever has been. One repo stayed current and 18 did not. ## Design notes Lane-aware, because the block is what states the lane and landing it has to obey the lane it states. `merge-remote-main` pushes to `main`, and every other lane including undeclared opens a pull request and stops there. Three guards the precedent does not have, each earned during the run: * Fast-forward before committing. A commit on a stale base is a push rejected after the work is already done. * Re-read the lane after that fast-forward. `main` may declare a lane the stale worktree did not, which is exactly what routed agent-proxy down the pull-request path on its first pass. * Report a repo whose AGENTS.md cap the block overruns as `capped` rather than force-fitting it. Raising a cap is a per-repo judgement with a written reason. The clean-on-main guard both migrations share moves to `migrate_common.py`. ## Run results 15 repos landed. deploy and infrastructure were skipped for dirty host checkouts, exactly as intended, and landed through worktrees instead. sirens-echo is open at https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/pulls/1156, blocked on unrelated pre-existing drift filed at https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/1157. The `coilysiren/coilysiren` profile repo is exempt in code, because GitHub is canonical there and a Forgejo main push would land on the downstream side. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
feat(scripts): add the git-workflow block bulk migration
All checks were successful
TruffleHog / Scan for secrets (pull_request) Successful in 5s
CI / lint (pull_request) Successful in 44s
cd77342e1b
Sibling of agents-pointer-migrate.py, and the rollout half of the same split:
agentic-os authors the renderer and the drift gate, this repo lands the block
on each managed repo's canonical main.

Only agentic-os carried the block, because it wires the git-workflow hook
locally while the managed hook set written into consumer repos never included
it. So the authoring repo was gated against this drift and no consumer repo
ever has been, which is why one repo stayed current and 18 did not.

Lane-aware, because the block is what states the lane and landing it has to
obey the lane it states: merge-remote-main pushes to main, every other lane
including undeclared opens a pull request and stops there.

Three guards the precedent did not have. It fast-forwards before committing,
since a commit on a stale base is a push rejected after the work is done. It
re-reads the lane after that fast-forward, because main may declare a lane the
stale worktree did not. And it reports a repo whose AGENTS.md cap the block
overruns as capped rather than force-fitting it, since raising a cap is a
per-repo judgement with a written reason.

The clean-on-main guard both migrations need moves to migrate_common.

Run against 18 repos: 15 landed, deploy and infrastructure were skipped for
dirty host checkouts and landed through worktrees instead, and sirens-echo is
open on unrelated pre-existing drift.

One-time rollout from #937

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Agent-Role: platform
Merge branch 'main' into aos/claude/sy55
All checks were successful
TruffleHog / Scan for secrets (pull_request) Successful in 4s
CI / lint (pull_request) Successful in 41s
cdc69c2226
coilyco-ops deleted branch aos/claude/sy55 2026-08-26 03:04:28 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/infrastructure!943
No description provided.