# READY block Sent by the lane: first the block exactly as `gstack-ship-queue ready --pr --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): ```text READY # STAMP_VERSION=unstamped screen: policy= nonce= run= pr: head: version: unstamped base: origin/@ ci: green at (passed= failed=0 pending=0 skipped=) PREGATE: pass tree= head= checks= gate: command=<"…"|none> full_e2e= gate-ahead=<…> SHIP_RECEIPT: pr= head= version=- base= tree= session_kind=unattended … READY_RECEIPT: () ``` A wave PR (docs/ship-policy.md#wave-prs) adds two lines after `READY`, and the controller checks that every constituent named is one the wave was planned for: ```text WAVE: area= branch=wave/ constituents= integrator_commits= CONSTITUENTS: #@,#@,... (heads frozen; fixes go on the wave branch) ``` Under `changelog_fragments` (docs/ship-policy.md#changelog-fragments) the PR's entry is a fragment, `changelog.d/.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: ```text pin: # the full head SHA, restated screen choice: <--no-screen: cases ran focused and passed | --screen: > flaky: > review passes: (deferred: ) 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: ```text gate_run: tree= # when lanes gate on their own machines closes: # 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: ```text READY # STAMP_VERSION= ```