Skill Tracer
Skills › gstack › captain › READY.md

READY.md

54 lines · captain/templates/READY.md at 3f79d81

Open on GitHub
1# READY block
2
3Sent by the lane: first the block exactly as `gstack-ship-queue ready --pr <n> --no-screen|--screen`
4prints it, then the lane's own lines. The controller validates every field before the pin
5enters `train build`. A missing or wrong field goes back to the lane, never into a train.
6
7The tool's lines (shapes as printed; `screen:` is inserted as the second line under a train policy):
8
9```text
10READY #<n> <sha40> STAMP_VERSION=unstamped
11screen: <screen|no-screen> policy=<selection> nonce=<nonce> run=<run id or ->
12pr: <PR url>
13head: <sha40>
14version: unstamped
15base: origin/<BASE>@<base sha40>
16ci: green at <sha12> (passed=<k> failed=0 pending=0 skipped=<s>)
17PREGATE: pass tree=<tree12> head=<sha12> checks=<c>
18gate: command=<"…"|none> full_e2e=<yes|no> gate-ahead=<…>
19SHIP_RECEIPT: pr=<n> head=<sha12> version=- base=<BASE> tree=<tree> session_kind=unattended …
20READY_RECEIPT: <path the tool wrote> (<local and notes-ref detail>)
21```
23Under `changelog_fragments` (docs/ship-policy.md#changelog-fragments) the PR's entry is a
24fragment, `changelog.d/<slug>.md`, never an `[Unreleased]` section or a version, and the
25controller merges with `train land` or `land`, so no slot call follows this block.
27The lane's own lines, after the block:
29```text
30pin: <sha40> # the full head SHA, restated
31screen choice: <--no-screen: cases <ids> ran focused and passed | --screen: <reason>>
32flaky: <none | case, both run ids, logged in the ledger on <date>>
33review passes: <n> (deferred: <items filed as issues, or none>)
34Head frozen from now on; a push drops this PR from any train and I will READY again.
35```
37Optional lines a crew's rules file may require:
39```text
40gate_run: <run id> tree=<tree12> # when lanes gate on their own machines
41closes: #<issue>
42image: <URL of the key before/after image>
43```
45Refuse (send back) when: the SHA is short or a fork head; `SHIP_RECEIPT` reads `none` or
46`invalid`, or its head is not the pin; `ci:` is not `green at` the pin; `PREGATE:` is not
47`pass` for the pin's tree; `--no-screen` names no cases; a flaky case is not in the ledger;
48the PR page is "green" but no block was sent; the evidence offered is a cheap tier.
50After the slot call the lane answers with the stamped head:
52```text
53READY #<n> <stamped sha40> STAMP_VERSION=<X>
54```

READY block

Sent by the lane: first the block exactly as gstack-ship-queue ready --pr <n> --no-screen|--screen prints it, then the lane's own lines. The controller validates every field before the pin enters train build. A missing or wrong field goes back to the lane, never into a train.

The tool's lines (shapes as printed; screen: is inserted as the second line under a train policy):

READY #<n> <sha40> STAMP_VERSION=unstamped
screen: <screen|no-screen> policy=<selection> nonce=<nonce> run=<run id or ->
pr: <PR url>
head: <sha40>
version: unstamped
base: origin/<BASE>@<base sha40>
ci: green at <sha12> (passed=<k> failed=0 pending=0 skipped=<s>)
PREGATE: pass tree=<tree12> head=<sha12> checks=<c>
gate: command=<"…"|none> full_e2e=<yes|no> gate-ahead=<…>
SHIP_RECEIPT: pr=<n> head=<sha12> version=- base=<BASE> tree=<tree> session_kind=unattended …
READY_RECEIPT: <path the tool wrote> (<local and notes-ref detail>)

Under changelog_fragments (docs/ship-policy.md#changelog-fragments) the PR's entry is a fragment, changelog.d/<slug>.md, never an [Unreleased] section or a version, and the controller merges with train land or land, so no slot call follows this block.

The lane's own lines, after the block:

pin: <sha40>                      # the full head SHA, restated
screen choice: <--no-screen: cases <ids> ran focused and passed | --screen: <reason>>
flaky: <none | case, both run ids, logged in the ledger on <date>>
review passes: <n> (deferred: <items filed as issues, or none>)
Head frozen from now on; a push drops this PR from any train and I will READY again.

Optional lines a crew's rules file may require:

gate_run: <run id> tree=<tree12>        # when lanes gate on their own machines
closes: #<issue>
image: <URL of the key before/after image>

Refuse (send back) when: the SHA is short or a fork head; SHIP_RECEIPT reads none or invalid, or its head is not the pin; ci: is not green at the pin; PREGATE: is not pass for the pin's tree; --no-screen names no cases; a flaky case is not in the ledger; the PR page is "green" but no block was sent; the evidence offered is a cheap tier.

After the slot call the lane answers with the stamped head:

READY #<n> <stamped sha40> STAMP_VERSION=<X>
Raw lines 1 to 54