From 9e95a7e362b4904a48bcbd3ccd7c1c489ca8b2f9 Mon Sep 17 00:00:00 2001 From: garrytan Date: Tue, 3 Nov 2026 06:32:27 +0000 Subject: [PATCH] ship: name the pre-push guards in Step 17 and the early push (moved from #3923 per GSTA-258) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --- bin/gstack-doctor-components.sh | 1 + ship/SKILL.md | 2 +- ship/SKILL.md.tmpl | 2 +- ship/sections/tests.md | 2 +- ship/sections/tests.md.tmpl | 2 +- test/fixtures/golden/agy-ship-SKILL.md | 2 +- test/fixtures/golden/claude-ship-SKILL.md | 2 +- test/fixtures/golden/codex-ship-SKILL.md | 2 +- test/fixtures/golden/factory-ship-SKILL.md | 2 +- test/size-ledger/ship/gsta258-l6-guard-carry.json | 4 ++++ 10 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 test/size-ledger/ship/gsta258-l6-guard-carry.json diff --git a/bin/gstack-doctor-components.sh b/bin/gstack-doctor-components.sh index 23db8f80d..4ec7b9a61 100644 --- a/bin/gstack-doctor-components.sh +++ b/bin/gstack-doctor-components.sh @@ -258,6 +258,7 @@ gstack_result_anchor() { DX_CAPTURE_REDACTION_FAILED) printf '%s' 'dx-capture-redaction-failed' ;; DX_CAPTURE_INTERNAL) printf '%s' 'dx-capture-internal' ;; POLICY_GSTACK_TOO_OLD) printf '%s' 'policy-gstack-too-old' ;; + PREGATE_GSTACK_TOO_OLD) printf '%s' 'pregate-gstack-too-old' ;; QUEUE_NOT_READY) printf '%s' 'queue-not-ready' ;; QUEUE_PROOF_MISSING) printf '%s' 'queue-proof-missing' ;; QUEUE_STAMP_NOT_STAMP_ONLY) printf '%s' 'queue-stamp-not-stamp-only' ;; diff --git a/ship/SKILL.md b/ship/SKILL.md index 125947cba..59687eaab 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -871,7 +871,7 @@ A new PR or an existing draft needs no question: Step 19 creates or keeps the dr ``` It checks the branch, the offer, the gate above (`--gate-open `; `--gate-open-approved` is B) -and `gstack-pregate sealed`, then `git ls-remote --heads origin refs/heads/` against HEAD: a failed lookup STOPs, a match prints +`gstack-pregate sealed` and the guards (`GUARDS:`), then `git ls-remote` of `` against HEAD: a failed lookup STOPs, a match prints `PUSH: ALREADY_PUSHED` (go to Step 18), else it runs `git push -u origin `. **If the push fails, STOP.** No Step 19 or publication claim. Report the error: diff --git a/ship/SKILL.md.tmpl b/ship/SKILL.md.tmpl index 1dc0ce129..1f1418e90 100644 --- a/ship/SKILL.md.tmpl +++ b/ship/SKILL.md.tmpl @@ -592,7 +592,7 @@ A new PR or an existing draft needs no question: Step 19 creates or keeps the dr ``` It checks the branch, the offer, the gate above (`--gate-open `; `--gate-open-approved` is B) -and `gstack-pregate sealed`, then `git ls-remote --heads origin refs/heads/` against HEAD: a failed lookup STOPs, a match prints +`gstack-pregate sealed` and the guards (`GUARDS:`), then `git ls-remote` of `` against HEAD: a failed lookup STOPs, a match prints `PUSH: ALREADY_PUSHED` (go to Step 18), else it runs `git push -u origin `. **If the push fails, STOP.** No Step 19 or publication claim. Report the error: diff --git a/ship/sections/tests.md b/ship/sections/tests.md index bccb51df2..55262a6f2 100644 --- a/ship/sections/tests.md +++ b/ship/sections/tests.md @@ -229,7 +229,7 @@ at this exact, clean tree instead of running here: `LANE: