mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-06 00:44:07 +01:00
fix(ship): one answer per ship-workflow question the judge flagged (GST-1346) (#3996)
* fix(ship): one answer per ship-workflow question the judge flagged (GST-1346)
The ship/SKILL.md workflow judge failed twice on main b244e6d (run 41817566885,
actionability 4/3/3 in both panels) on prose no landed PR changed. Every sample
cited the same conflicts; resolve them without growing the skill:
- Step 11: Codex-mode branches keep only the Claude pass the plan dispatched;
both Codex passes run on DISPATCH: outside-voice.
- Steps 12/16: item and stage commands serve only a STOP:.
- CI carry: names the draft-PR command; Step 6.5's question covers only Greptile;
accept runs after Step 17's push.
- Step 19 exit 3 ends Step 22 with status=refused run=-.
Ship union -8 bytes (size ledger), skeleton within its cap.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(ship): drop the Step 11 wording; keep the three no-loss-free repairs (GST-1346)
ship/sections/adversarial.md is pinned to a no-loss replay (GSTA-258-C) and its
headings anchor lib/ship-parts.ts, so its rewording needs a replay first; it moves
to a follow-up. A local single-case judge panel without it passed 3/4/4 on all
three samples. Trims the CI_CARRY reason list (the tool prints the reason) to keep
the ship union under its ledger (-11 bytes).
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(ship): stage 1 builds go to finish as --build, stage 5 commits only regenerated outputs, full draft-PR command (GST-1346)
Step 11 review findings: the bare 'gstack-post pr-create --draft' exits 64
without --base/--title-file/--body-file (outside voice), and '1-4's commands are
only STOP recoveries' read as skipping stage 1's build discovery (native).
Folds #3951's stage 5 commit-owner wording. Ship union -39 bytes.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(ship): keep pr-body byte-neutral after the exit-3 status=refused line (GST-1346)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* chore: changelog and TODOS
Co-Authored-By: Claude <noreply@anthropic.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
12 files changed
+65
-62
No files matched your search
@@ -0,0 +1 @@
|
||||
- **/ship's workflow now gives one answer where it used to give two, so main's backstop gate can pass again.** The `ship/SKILL.md workflow` judge failed twice on main at b244e6d (run 41817566885) because its readers kept finding the same conflicts. Steps 12 and 16 now say their item and stage commands serve only a `STOP:`, apart from stage 1's builds, which go to the one `gstack-ship-release finish` call as `--build`. Stage 5 says `finish` already made the release commit and only regenerated outputs are left to commit. The CI-carry early push names its full draft-PR command, says Step 6.5's question covers only Greptile, and runs `accept` after Step 17's push. A PR that `gh` failed to create (Step 19 exit 3) now ends Step 22 with `status=refused` instead of a result line that needs a PR number. The ship skill is 70 bytes smaller. (GST-1346)
|
||||
+6
-6
@@ -517,7 +517,7 @@ Item 3 needs `BUMP_LEVEL`: reuse this invocation's saved level. Else FRESH
|
||||
chooses it in item 2 and ALREADY_BUMPED derives it in item 1.
|
||||
|
||||
**One call:** `~/.claude/skills/gstack/bin/gstack-ship-release version --base <base> [--bump <BUMP_LEVEL>] --why '<WHY>'`
|
||||
runs items 1 and 3–5; each decision left to you is a `STOP:` naming its rerun flag
|
||||
runs items 1 and 3–5; item commands serve only a `STOP:`, which names its rerun flag
|
||||
(`--bump`, `--accept-incomplete`, `--version <v>`, `--keep-current`, `--answer`).
|
||||
|
||||
`VERSION: skipped` or `VERSION: <v> kept (…; no write)` ends Step 12 with
|
||||
@@ -653,12 +653,12 @@ Make bisectable commits; if already committed, continue to Step 16. Never create
|
||||
|
||||
**IRON LAW: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
|
||||
|
||||
Run stages 1–5 in order; recovery notes below name where to resume. Content
|
||||
Stages run in order; 1–4's other commands are `STOP:` recoveries. Content
|
||||
changes during or after verification restart at stage 1 and complete all five
|
||||
stages before Step 17. Content-preserving commits keep evidence valid.
|
||||
|
||||
**One call for stages 1–4:** `~/.claude/skills/gstack/bin/gstack-ship-release finish --base <base> --reviewed-tree <tree> --reviewed-base <mb> --docs-post <audit-id>-post.json --lane <label>=<Step 5 command>... [--build <cmd>]... --trailer '<trailer>'`
|
||||
makes Step 15's item-3 commit and runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
makes Step 15's item-3 commit, runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
below (`--docs-rechecked`, `--no-lanes-approved` record stage 2.2 and Step 5's approval).
|
||||
|
||||
### 1. Finish writers and prepare outputs
|
||||
@@ -668,7 +668,7 @@ termination before another writer runs; timeout or cancellation acknowledgment
|
||||
alone means STOP until confirmed.
|
||||
|
||||
Find declared generation/build commands in project instructions, manifests, build
|
||||
files and CI. Run them and save results. If none exists, record not applicable and
|
||||
files and CI. Pass each to `finish` as `--build`. If none exists, record not applicable and
|
||||
the inspected sources. A missing prerequisite or failed build stops shipping:
|
||||
report **Build failed or prerequisite missing**, with the command, error and needed
|
||||
repair. Never invent a substitute command.
|
||||
@@ -764,8 +764,8 @@ does not authorize a third attempt.
|
||||
|
||||
### 5. Report, then push
|
||||
|
||||
Commit only approved, verified release changes left uncommitted after Step 15,
|
||||
including generated outputs; use its grouping rules; never create an empty commit.
|
||||
`finish` made the release commit. Commit only verified outputs stage 1's
|
||||
builds regenerated, grouped as in Step 15; never create an empty commit.
|
||||
Preserve unrelated user files.
|
||||
|
||||
Paste build/docs/test results. Reuse waivers only for the same verified
|
||||
|
||||
+6
-6
@@ -240,7 +240,7 @@ Item 3 needs `BUMP_LEVEL`: reuse this invocation's saved level. Else FRESH
|
||||
chooses it in item 2 and ALREADY_BUMPED derives it in item 1.
|
||||
|
||||
**One call:** `~/.claude/skills/gstack/bin/gstack-ship-release version --base <base> [--bump <BUMP_LEVEL>] --why '<WHY>'`
|
||||
runs items 1 and 3–5; each decision left to you is a `STOP:` naming its rerun flag
|
||||
runs items 1 and 3–5; item commands serve only a `STOP:`, which names its rerun flag
|
||||
(`--bump`, `--accept-incomplete`, `--version <v>`, `--keep-current`, `--answer`).
|
||||
|
||||
`VERSION: skipped` or `VERSION: <v> kept (…; no write)` ends Step 12 with
|
||||
@@ -374,12 +374,12 @@ Make bisectable commits; if already committed, continue to Step 16. Never create
|
||||
|
||||
**IRON LAW: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
|
||||
|
||||
Run stages 1–5 in order; recovery notes below name where to resume. Content
|
||||
Stages run in order; 1–4's other commands are `STOP:` recoveries. Content
|
||||
changes during or after verification restart at stage 1 and complete all five
|
||||
stages before Step 17. Content-preserving commits keep evidence valid.
|
||||
|
||||
**One call for stages 1–4:** `~/.claude/skills/gstack/bin/gstack-ship-release finish --base <base> --reviewed-tree <tree> --reviewed-base <mb> --docs-post <audit-id>-post.json --lane <label>=<Step 5 command>... [--build <cmd>]... --trailer '<trailer>'`
|
||||
makes Step 15's item-3 commit and runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
makes Step 15's item-3 commit, runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
below (`--docs-rechecked`, `--no-lanes-approved` record stage 2.2 and Step 5's approval).
|
||||
|
||||
### 1. Finish writers and prepare outputs
|
||||
@@ -389,7 +389,7 @@ termination before another writer runs; timeout or cancellation acknowledgment
|
||||
alone means STOP until confirmed.
|
||||
|
||||
Find declared generation/build commands in project instructions, manifests, build
|
||||
files and CI. Run them and save results. If none exists, record not applicable and
|
||||
files and CI. Pass each to `finish` as `--build`. If none exists, record not applicable and
|
||||
the inspected sources. A missing prerequisite or failed build stops shipping:
|
||||
report **Build failed or prerequisite missing**, with the command, error and needed
|
||||
repair. Never invent a substitute command.
|
||||
@@ -485,8 +485,8 @@ does not authorize a third attempt.
|
||||
|
||||
### 5. Report, then push
|
||||
|
||||
Commit only approved, verified release changes left uncommitted after Step 15,
|
||||
including generated outputs; use its grouping rules; never create an empty commit.
|
||||
`finish` made the release commit. Commit only verified outputs stage 1's
|
||||
builds regenerated, grouped as in Step 15; never create an empty commit.
|
||||
Preserve unrelated user files.
|
||||
|
||||
Paste build/docs/test results. Reuse waivers only for the same verified
|
||||
|
||||
@@ -277,7 +277,7 @@ reads the title back. Then resolve the draft state from Step 9's gate findings:
|
||||
under Step 17's recorded human authorisation (option B there); the body already
|
||||
carries the `Gate edits: N open` banner. Without that record, STOP here and report.
|
||||
|
||||
Print the existing URL and continue to Step 20; do not run the create command below.
|
||||
Print the existing URL and continue to Step 20; skip the create command below.
|
||||
|
||||
**No open PR/MR:** add `--draft` when any gate finding is `open` (a later agent never
|
||||
infers approval from the PR existing; the human marks it ready after dispositioning
|
||||
@@ -298,17 +298,17 @@ Branch on the exit code of either block:
|
||||
finding (sterner on public repos, no batch acknowledge). PII offers auto-redact:
|
||||
write `~/.claude/skills/gstack/bin/gstack-redact --from-file "$PR_BODY_FILE" --auto-redact <ids>`
|
||||
output back into the body file and rerun the block, which scans again. Only when the
|
||||
user accepts the findings as they are, rerun the same block with
|
||||
user accepts the findings unchanged, rerun the same block with
|
||||
`--confirm <confirm-token>` added to the command that printed it; any edit needs a new token.
|
||||
- **64** with stderr saying the current body holds a title `more than once`: nothing was
|
||||
posted. STOP and report the duplicated titles; never rerun with `--replace` yourself,
|
||||
since a human picks which copy stays (docs/troubleshooting.md#gstack-post-pr-body-merge).
|
||||
- **3** `gh`/`glab` failed, or any other **64** (no usable remote or CLI): print the error, the
|
||||
branch name, the remote URL and the block for posting by hand. Do not stop — the code
|
||||
is pushed — but never report a PR that was not created. With open gate findings,
|
||||
- **3** `gh`/`glab` failed, or any other **64** (no usable remote or CLI): print the error, branch,
|
||||
remote URL and the block to post by hand. Do not stop — the code is pushed — but never
|
||||
report a PR that was not created; Step 22 ends `status=refused`. With open gate findings,
|
||||
also say the gate edits were not disclosed and leave the Step 16 open-items report
|
||||
in the invocation record; never report the disclosure as done.
|
||||
- Any other exit is an error that blocks publication until its cause is fixed.
|
||||
- Any other exit errors: it blocks publication until its cause is fixed.
|
||||
|
||||
**Output the PR/MR URL** — then proceed to Step 20.
|
||||
|
||||
|
||||
@@ -260,7 +260,7 @@ reads the title back. Then resolve the draft state from Step 9's gate findings:
|
||||
under Step 17's recorded human authorisation (option B there); the body already
|
||||
carries the `Gate edits: N open` banner. Without that record, STOP here and report.
|
||||
|
||||
Print the existing URL and continue to Step 20; do not run the create command below.
|
||||
Print the existing URL and continue to Step 20; skip the create command below.
|
||||
|
||||
**No open PR/MR:** add `--draft` when any gate finding is `open` (a later agent never
|
||||
infers approval from the PR existing; the human marks it ready after dispositioning
|
||||
@@ -281,17 +281,17 @@ Branch on the exit code of either block:
|
||||
finding (sterner on public repos, no batch acknowledge). PII offers auto-redact:
|
||||
write `~/.claude/skills/gstack/bin/gstack-redact --from-file "$PR_BODY_FILE" --auto-redact <ids>`
|
||||
output back into the body file and rerun the block, which scans again. Only when the
|
||||
user accepts the findings as they are, rerun the same block with
|
||||
user accepts the findings unchanged, rerun the same block with
|
||||
`--confirm <confirm-token>` added to the command that printed it; any edit needs a new token.
|
||||
- **64** with stderr saying the current body holds a title `more than once`: nothing was
|
||||
posted. STOP and report the duplicated titles; never rerun with `--replace` yourself,
|
||||
since a human picks which copy stays (docs/troubleshooting.md#gstack-post-pr-body-merge).
|
||||
- **3** `gh`/`glab` failed, or any other **64** (no usable remote or CLI): print the error, the
|
||||
branch name, the remote URL and the block for posting by hand. Do not stop — the code
|
||||
is pushed — but never report a PR that was not created. With open gate findings,
|
||||
- **3** `gh`/`glab` failed, or any other **64** (no usable remote or CLI): print the error, branch,
|
||||
remote URL and the block to post by hand. Do not stop — the code is pushed — but never
|
||||
report a PR that was not created; Step 22 ends `status=refused`. With open gate findings,
|
||||
also say the gate edits were not disclosed and leave the Step 16 open-items report
|
||||
in the invocation record; never report the disclosure as done.
|
||||
- Any other exit is an error that blocks publication until its cause is fixed.
|
||||
- Any other exit errors: it blocks publication until its cause is fixed.
|
||||
|
||||
**Output the PR/MR URL** — then proceed to Step 20.
|
||||
|
||||
|
||||
@@ -213,8 +213,7 @@ Only commit if there are changes. Stage the bootstrap's own files by name (confi
|
||||
**Run it:** `~/.claude/skills/gstack/bin/gstack-ship-preflight --tests-only --base <base> --lane <label>=<command>...`
|
||||
(or the Step 1 call with lanes). It runs the free pre-gate first, before any lane, eval or
|
||||
remote gate (`gstack-pregate --allow-repo-commands`: stage 1 regen, secrets, strays, literals;
|
||||
stage 2 the selected lanes under pipefail), then the lanes inside the evidence ledger (one at
|
||||
a time on 4 or fewer cores unless `--lanes serial|parallel`), and prints `PREGATE:`, `LANES:` and
|
||||
stage 2 the selected lanes under pipefail), then the lanes inside the evidence ledger, and prints `PREGATE:`, `LANES:` and
|
||||
one `LANE: <label> <state> exit= tests_ran= log=` line each.
|
||||
`fail` or `incomplete` blocks: fix, rerun. **No-stop** (docs/review-policy.md#no-stop): a pregate flake rerun (one per branch), a
|
||||
timeout-only fix and three other routine stops go through `gstack-no-stop record` (`--help`); `recorded` goes on,
|
||||
@@ -228,16 +227,16 @@ Use the project's test commands discovered in Step 4 or documented in CLAUDE.md/
|
||||
**CI is the one full test run.** When `origin/<base>`'s `.gstack/pregate.json` maps a lane's exact
|
||||
command in `ship_lanes_from` (gstack maps `bun run test`), that lane is carried from a verified CI run
|
||||
at this exact, clean tree instead of running here: `LANE: <label> carried run=<id>/<attempt> tests_ran=<n>`.
|
||||
Before the first push run only targeted tests and the repro (the full suite too when the diff touches
|
||||
Before the first push that lane runs only targeted tests and the repro (the full suite too when the diff touches
|
||||
merge-check code: `lib/ship-*`, `lib/pregate/*`, the ship and pregate bins,
|
||||
`scripts/lib/shard-engine.ts`). Push early so CI runs beside the review: commit, `gstack-ship-release push
|
||||
--branch <branch> --early` (sealed, secrets and guards first), open a draft PR, then `gstack-ci-carry wait` in
|
||||
--branch <branch> --early` (sealed, secrets and guards first; Step 6.5 asks only for Greptile), open a draft PR
|
||||
(`gstack-post pr-create --base <base> --draft --title-file <f> --body-file <f>`), then `gstack-ci-carry wait` in
|
||||
the background; once it prints `CI_WAIT: green`, rerun `--tests-only` and the mapped lane is carried. A red
|
||||
run is a failed lane: triage it below. Batch review fixes into one commit and one push. `CI_CARRY: none
|
||||
label=<l> (<reason>)` names why a mapped lane ran here (a dirty tree, no green run at HEAD yet, a fork or stale
|
||||
run, a newer red run, a tree.json that misses an inventory file). Any other lane that already passed at this
|
||||
label=<l> (<reason>)` names why a mapped lane ran here. Any other lane that already passed at this
|
||||
tree, command and runtime is reused (`reused=<time>`), never run twice. In Step 16, `finish` defers a mapped
|
||||
lane it cannot carry (`EVIDENCE: DEFERRED`); after the push, `gstack-ship-release accept --base <base>
|
||||
lane it cannot carry (`EVIDENCE: DEFERRED`); after Step 17's push, `gstack-ship-release accept --base <base>
|
||||
--lane …` carries it from the green run at the final head and reruns the pregate there.
|
||||
|
||||
**If no applicable test suite exists:** Name the untested scope. AskUserQuestion:
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
**Run it:** `~/.claude/skills/gstack/bin/gstack-ship-preflight --tests-only --base <base> --lane <label>=<command>...`
|
||||
(or the Step 1 call with lanes). It runs the free pre-gate first, before any lane, eval or
|
||||
remote gate (`gstack-pregate --allow-repo-commands`: stage 1 regen, secrets, strays, literals;
|
||||
stage 2 the selected lanes under pipefail), then the lanes inside the evidence ledger (one at
|
||||
a time on 4 or fewer cores unless `--lanes serial|parallel`), and prints `PREGATE:`, `LANES:` and
|
||||
stage 2 the selected lanes under pipefail), then the lanes inside the evidence ledger, and prints `PREGATE:`, `LANES:` and
|
||||
one `LANE: <label> <state> exit= tests_ran= log=` line each.
|
||||
`fail` or `incomplete` blocks: fix, rerun. **No-stop** (docs/review-policy.md#no-stop): a pregate flake rerun (one per branch), a
|
||||
timeout-only fix and three other routine stops go through `gstack-no-stop record` (`--help`); `recorded` goes on,
|
||||
@@ -24,16 +23,16 @@ Use the project's test commands discovered in Step 4 or documented in CLAUDE.md/
|
||||
**CI is the one full test run.** When `origin/<base>`'s `.gstack/pregate.json` maps a lane's exact
|
||||
command in `ship_lanes_from` (gstack maps `bun run test`), that lane is carried from a verified CI run
|
||||
at this exact, clean tree instead of running here: `LANE: <label> carried run=<id>/<attempt> tests_ran=<n>`.
|
||||
Before the first push run only targeted tests and the repro (the full suite too when the diff touches
|
||||
Before the first push that lane runs only targeted tests and the repro (the full suite too when the diff touches
|
||||
merge-check code: `lib/ship-*`, `lib/pregate/*`, the ship and pregate bins,
|
||||
`scripts/lib/shard-engine.ts`). Push early so CI runs beside the review: commit, `gstack-ship-release push
|
||||
--branch <branch> --early` (sealed, secrets and guards first), open a draft PR, then `gstack-ci-carry wait` in
|
||||
--branch <branch> --early` (sealed, secrets and guards first; Step 6.5 asks only for Greptile), open a draft PR
|
||||
(`gstack-post pr-create --base <base> --draft --title-file <f> --body-file <f>`), then `gstack-ci-carry wait` in
|
||||
the background; once it prints `CI_WAIT: green`, rerun `--tests-only` and the mapped lane is carried. A red
|
||||
run is a failed lane: triage it below. Batch review fixes into one commit and one push. `CI_CARRY: none
|
||||
label=<l> (<reason>)` names why a mapped lane ran here (a dirty tree, no green run at HEAD yet, a fork or stale
|
||||
run, a newer red run, a tree.json that misses an inventory file). Any other lane that already passed at this
|
||||
label=<l> (<reason>)` names why a mapped lane ran here. Any other lane that already passed at this
|
||||
tree, command and runtime is reused (`reused=<time>`), never run twice. In Step 16, `finish` defers a mapped
|
||||
lane it cannot carry (`EVIDENCE: DEFERRED`); after the push, `gstack-ship-release accept --base <base>
|
||||
lane it cannot carry (`EVIDENCE: DEFERRED`); after Step 17's push, `gstack-ship-release accept --base <base>
|
||||
--lane …` carries it from the green run at the final head and reruns the pregate there.
|
||||
|
||||
**If no applicable test suite exists:** Name the untested scope. AskUserQuestion:
|
||||
|
||||
+6
-6
@@ -518,7 +518,7 @@ Item 3 needs `BUMP_LEVEL`: reuse this invocation's saved level. Else FRESH
|
||||
chooses it in item 2 and ALREADY_BUMPED derives it in item 1.
|
||||
|
||||
**One call:** `~/.gemini/antigravity-cli/skills/gstack/bin/gstack-ship-release version --base <base> [--bump <BUMP_LEVEL>] --why '<WHY>'`
|
||||
runs items 1 and 3–5; each decision left to you is a `STOP:` naming its rerun flag
|
||||
runs items 1 and 3–5; item commands serve only a `STOP:`, which names its rerun flag
|
||||
(`--bump`, `--accept-incomplete`, `--version <v>`, `--keep-current`, `--answer`).
|
||||
|
||||
`VERSION: skipped` or `VERSION: <v> kept (…; no write)` ends Step 12 with
|
||||
@@ -654,12 +654,12 @@ Make bisectable commits; if already committed, continue to Step 16. Never create
|
||||
|
||||
**IRON LAW: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
|
||||
|
||||
Run stages 1–5 in order; recovery notes below name where to resume. Content
|
||||
Stages run in order; 1–4's other commands are `STOP:` recoveries. Content
|
||||
changes during or after verification restart at stage 1 and complete all five
|
||||
stages before Step 17. Content-preserving commits keep evidence valid.
|
||||
|
||||
**One call for stages 1–4:** `~/.gemini/antigravity-cli/skills/gstack/bin/gstack-ship-release finish --base <base> --reviewed-tree <tree> --reviewed-base <mb> --docs-post <audit-id>-post.json --lane <label>=<Step 5 command>... [--build <cmd>]... --trailer '<trailer>'`
|
||||
makes Step 15's item-3 commit and runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
makes Step 15's item-3 commit, runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
below (`--docs-rechecked`, `--no-lanes-approved` record stage 2.2 and Step 5's approval).
|
||||
|
||||
### 1. Finish writers and prepare outputs
|
||||
@@ -669,7 +669,7 @@ termination before another writer runs; timeout or cancellation acknowledgment
|
||||
alone means STOP until confirmed.
|
||||
|
||||
Find declared generation/build commands in project instructions, manifests, build
|
||||
files and CI. Run them and save results. If none exists, record not applicable and
|
||||
files and CI. Pass each to `finish` as `--build`. If none exists, record not applicable and
|
||||
the inspected sources. A missing prerequisite or failed build stops shipping:
|
||||
report **Build failed or prerequisite missing**, with the command, error and needed
|
||||
repair. Never invent a substitute command.
|
||||
@@ -765,8 +765,8 @@ does not authorize a third attempt.
|
||||
|
||||
### 5. Report, then push
|
||||
|
||||
Commit only approved, verified release changes left uncommitted after Step 15,
|
||||
including generated outputs; use its grouping rules; never create an empty commit.
|
||||
`finish` made the release commit. Commit only verified outputs stage 1's
|
||||
builds regenerated, grouped as in Step 15; never create an empty commit.
|
||||
Preserve unrelated user files.
|
||||
|
||||
Paste build/docs/test results. Reuse waivers only for the same verified
|
||||
|
||||
+6
-6
@@ -517,7 +517,7 @@ Item 3 needs `BUMP_LEVEL`: reuse this invocation's saved level. Else FRESH
|
||||
chooses it in item 2 and ALREADY_BUMPED derives it in item 1.
|
||||
|
||||
**One call:** `~/.claude/skills/gstack/bin/gstack-ship-release version --base <base> [--bump <BUMP_LEVEL>] --why '<WHY>'`
|
||||
runs items 1 and 3–5; each decision left to you is a `STOP:` naming its rerun flag
|
||||
runs items 1 and 3–5; item commands serve only a `STOP:`, which names its rerun flag
|
||||
(`--bump`, `--accept-incomplete`, `--version <v>`, `--keep-current`, `--answer`).
|
||||
|
||||
`VERSION: skipped` or `VERSION: <v> kept (…; no write)` ends Step 12 with
|
||||
@@ -653,12 +653,12 @@ Make bisectable commits; if already committed, continue to Step 16. Never create
|
||||
|
||||
**IRON LAW: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
|
||||
|
||||
Run stages 1–5 in order; recovery notes below name where to resume. Content
|
||||
Stages run in order; 1–4's other commands are `STOP:` recoveries. Content
|
||||
changes during or after verification restart at stage 1 and complete all five
|
||||
stages before Step 17. Content-preserving commits keep evidence valid.
|
||||
|
||||
**One call for stages 1–4:** `~/.claude/skills/gstack/bin/gstack-ship-release finish --base <base> --reviewed-tree <tree> --reviewed-base <mb> --docs-post <audit-id>-post.json --lane <label>=<Step 5 command>... [--build <cmd>]... --trailer '<trailer>'`
|
||||
makes Step 15's item-3 commit and runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
makes Step 15's item-3 commit, runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
below (`--docs-rechecked`, `--no-lanes-approved` record stage 2.2 and Step 5's approval).
|
||||
|
||||
### 1. Finish writers and prepare outputs
|
||||
@@ -668,7 +668,7 @@ termination before another writer runs; timeout or cancellation acknowledgment
|
||||
alone means STOP until confirmed.
|
||||
|
||||
Find declared generation/build commands in project instructions, manifests, build
|
||||
files and CI. Run them and save results. If none exists, record not applicable and
|
||||
files and CI. Pass each to `finish` as `--build`. If none exists, record not applicable and
|
||||
the inspected sources. A missing prerequisite or failed build stops shipping:
|
||||
report **Build failed or prerequisite missing**, with the command, error and needed
|
||||
repair. Never invent a substitute command.
|
||||
@@ -764,8 +764,8 @@ does not authorize a third attempt.
|
||||
|
||||
### 5. Report, then push
|
||||
|
||||
Commit only approved, verified release changes left uncommitted after Step 15,
|
||||
including generated outputs; use its grouping rules; never create an empty commit.
|
||||
`finish` made the release commit. Commit only verified outputs stage 1's
|
||||
builds regenerated, grouped as in Step 15; never create an empty commit.
|
||||
Preserve unrelated user files.
|
||||
|
||||
Paste build/docs/test results. Reuse waivers only for the same verified
|
||||
|
||||
+6
-6
@@ -517,7 +517,7 @@ Item 3 needs `BUMP_LEVEL`: reuse this invocation's saved level. Else FRESH
|
||||
chooses it in item 2 and ALREADY_BUMPED derives it in item 1.
|
||||
|
||||
**One call:** `$GSTACK_ROOT/bin/gstack-ship-release version --base <base> [--bump <BUMP_LEVEL>] --why '<WHY>'`
|
||||
runs items 1 and 3–5; each decision left to you is a `STOP:` naming its rerun flag
|
||||
runs items 1 and 3–5; item commands serve only a `STOP:`, which names its rerun flag
|
||||
(`--bump`, `--accept-incomplete`, `--version <v>`, `--keep-current`, `--answer`).
|
||||
|
||||
`VERSION: skipped` or `VERSION: <v> kept (…; no write)` ends Step 12 with
|
||||
@@ -656,12 +656,12 @@ Make bisectable commits; if already committed, continue to Step 16. Never create
|
||||
|
||||
**IRON LAW: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
|
||||
|
||||
Run stages 1–5 in order; recovery notes below name where to resume. Content
|
||||
Stages run in order; 1–4's other commands are `STOP:` recoveries. Content
|
||||
changes during or after verification restart at stage 1 and complete all five
|
||||
stages before Step 17. Content-preserving commits keep evidence valid.
|
||||
|
||||
**One call for stages 1–4:** `$GSTACK_ROOT/bin/gstack-ship-release finish --base <base> --reviewed-tree <tree> --reviewed-base <mb> --docs-post <audit-id>-post.json --lane <label>=<Step 5 command>... [--build <cmd>]... --trailer '<trailer>'`
|
||||
makes Step 15's item-3 commit and runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
makes Step 15's item-3 commit, runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
below (`--docs-rechecked`, `--no-lanes-approved` record stage 2.2 and Step 5's approval).
|
||||
|
||||
### 1. Finish writers and prepare outputs
|
||||
@@ -671,7 +671,7 @@ termination before another writer runs; timeout or cancellation acknowledgment
|
||||
alone means STOP until confirmed.
|
||||
|
||||
Find declared generation/build commands in project instructions, manifests, build
|
||||
files and CI. Run them and save results. If none exists, record not applicable and
|
||||
files and CI. Pass each to `finish` as `--build`. If none exists, record not applicable and
|
||||
the inspected sources. A missing prerequisite or failed build stops shipping:
|
||||
report **Build failed or prerequisite missing**, with the command, error and needed
|
||||
repair. Never invent a substitute command.
|
||||
@@ -768,8 +768,8 @@ does not authorize a third attempt.
|
||||
|
||||
### 5. Report, then push
|
||||
|
||||
Commit only approved, verified release changes left uncommitted after Step 15,
|
||||
including generated outputs; use its grouping rules; never create an empty commit.
|
||||
`finish` made the release commit. Commit only verified outputs stage 1's
|
||||
builds regenerated, grouped as in Step 15; never create an empty commit.
|
||||
Preserve unrelated user files.
|
||||
|
||||
Paste build/docs/test results. Reuse waivers only for the same verified
|
||||
|
||||
+6
-6
@@ -519,7 +519,7 @@ Item 3 needs `BUMP_LEVEL`: reuse this invocation's saved level. Else FRESH
|
||||
chooses it in item 2 and ALREADY_BUMPED derives it in item 1.
|
||||
|
||||
**One call:** `$GSTACK_ROOT/bin/gstack-ship-release version --base <base> [--bump <BUMP_LEVEL>] --why '<WHY>'`
|
||||
runs items 1 and 3–5; each decision left to you is a `STOP:` naming its rerun flag
|
||||
runs items 1 and 3–5; item commands serve only a `STOP:`, which names its rerun flag
|
||||
(`--bump`, `--accept-incomplete`, `--version <v>`, `--keep-current`, `--answer`).
|
||||
|
||||
`VERSION: skipped` or `VERSION: <v> kept (…; no write)` ends Step 12 with
|
||||
@@ -658,12 +658,12 @@ Make bisectable commits; if already committed, continue to Step 16. Never create
|
||||
|
||||
**IRON LAW: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
|
||||
|
||||
Run stages 1–5 in order; recovery notes below name where to resume. Content
|
||||
Stages run in order; 1–4's other commands are `STOP:` recoveries. Content
|
||||
changes during or after verification restart at stage 1 and complete all five
|
||||
stages before Step 17. Content-preserving commits keep evidence valid.
|
||||
|
||||
**One call for stages 1–4:** `$GSTACK_ROOT/bin/gstack-ship-release finish --base <base> --reviewed-tree <tree> --reviewed-base <mb> --docs-post <audit-id>-post.json --lane <label>=<Step 5 command>... [--build <cmd>]... --trailer '<trailer>'`
|
||||
makes Step 15's item-3 commit and runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
makes Step 15's item-3 commit, runs stages 1–4 and the pregate; each `STOP:` is a recovery
|
||||
below (`--docs-rechecked`, `--no-lanes-approved` record stage 2.2 and Step 5's approval).
|
||||
|
||||
### 1. Finish writers and prepare outputs
|
||||
@@ -673,7 +673,7 @@ termination before another writer runs; timeout or cancellation acknowledgment
|
||||
alone means STOP until confirmed.
|
||||
|
||||
Find declared generation/build commands in project instructions, manifests, build
|
||||
files and CI. Run them and save results. If none exists, record not applicable and
|
||||
files and CI. Pass each to `finish` as `--build`. If none exists, record not applicable and
|
||||
the inspected sources. A missing prerequisite or failed build stops shipping:
|
||||
report **Build failed or prerequisite missing**, with the command, error and needed
|
||||
repair. Never invent a substitute command.
|
||||
@@ -770,8 +770,8 @@ does not authorize a third attempt.
|
||||
|
||||
### 5. Report, then push
|
||||
|
||||
Commit only approved, verified release changes left uncommitted after Step 15,
|
||||
including generated outputs; use its grouping rules; never create an empty commit.
|
||||
`finish` made the release commit. Commit only verified outputs stage 1's
|
||||
builds regenerated, grouped as in Step 15; never create an empty commit.
|
||||
Preserve unrelated user files.
|
||||
|
||||
Paste build/docs/test results. Reuse waivers only for the same verified
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"bytes": -70,
|
||||
"why": "GST-1346: ship workflow judge repair (one-call Steps 12/16 with --build; stage 5 commit owner from #3951; CI-carry draft PR and Greptile-only consent; exit 3 terminal), net -70 bytes"
|
||||
}
|
||||
Reference in new issue
Block a user