AGENTS.md: pushing main to amadan is the last step of landing a change (#377)
Merges happen on origin and nothing moves amadan's main by itself, so the mirror falls behind silently — on 2026-08-31 it was 86 commits and three days back, which meant the gate had not run on main once in that window. Every branch had been green against the base it was cut from; nothing had checked the merged result. Written as the last step of landing a change rather than a chore of its own, and cross-referenced from the PR rule, which is where an agent about to merge is actually reading. The intended end state is an auto-mirror the other way — amadan to GitHub, so main moves on the hub that gates it — and the note says so, so this habit is understood as standing in for that rather than as the permanent shape. Claude-Session: https://claude.ai/code/session_01DqT65F1iMwc8NjVG9r8Tr7
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 file changed,
+20
−1
AGENTS.md+20 −1
CI passed — run details
diff --git a/AGENTS.md b/AGENTS.md| index ad438174f..aed29f7bf 100644 |
| --- a/AGENTS.md |
| +++ b/AGENTS.md |
| @@ -69,7 +69,9 @@ wording that read as a blanket ban and cost a session a round trip). The |
| rule is about how work REACHES `main`, not about whose hand lands it: the |
| PR has to exist, so that it can carry the context, the iterations and the |
| several commits that a single squashed push to `main` would flatten. Once |
| -it exists and is green, `gh pr merge` is an ordinary step. |
| +it exists and is green, `gh pr merge` is an ordinary step — followed by |
| +pushing `main` to `amadan`, which is what gates the merged result (see |
| +Build & test). |
| Use the judgement the rest of this file asks for: a PR that is still |
| collecting review, that is gated on something (`#62`), or whose diff you |
| @@ -100,6 +102,23 @@ than commit by commit, while the change can still be turned away. |
| but nothing on GitHub runs a build any more. A branch pushed only to |
| `origin` has been gated by exactly nothing — push it to `amadan` too, |
| and read the run, before calling it green. |
| +- **After a PR lands, push `main` to `amadan` too.** Merging happens on |
| + `origin`, and nothing moves amadan's `main` by itself, so the mirror |
| + falls behind silently: on 2026-08-31 it was 86 commits and three days |
| + back, which meant the gate had not run on `main` once in that window. |
| + A fast-forward is the whole job, and it is the last step of landing a |
| + change, not a separate chore: |
| + |
| + git fetch origin && git push amadan origin/main:refs/heads/main |
| + |
| + What it buys is the one thing per-branch CI cannot tell you: each |
| + branch was green against the base it was cut from, not against what |
| + landed beside it. Read that run too — a red `main` is worth knowing |
| + about the same day, which is the whole argument for the PR gate one |
| + section up. (The intended end state is an auto-mirror the other way, |
| + amadan to GitHub, so that `main` moves on the hub that gates it and |
| + GitHub follows. Until that exists this push is the habit that stands |
| + in for it.) |
| - `20-cross@5` adds `GOOS=darwin`/`windows`/`linux-arm64` compiles, one |
| per shard. **The gate is not Linux-only**: `internal/host` is linked |
| into the CLI, which people run on Macs, so a Linux-only type assumption |