mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-08 01:38:10 +01:00
* feat(captain): /captain skill (also /crew), crew templates and docs/captain.md for running a crew from one controller Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * chore(captain): regenerate SKILL.md at main's version Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(captain): AGENTS.md and NOTES.md templates, roles, ship lane sequence, owner device and lessons loop in docs/captain.md; owner-brief closes with the do-it reply Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(captain): review pass 1: 'do it' parses as rec, READY template matches the tool's lines, slot-2 and freeze wording, mergeChangelogs named, parameter lists and doc numbers aligned Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(captain): align the slot-call BASE merge, freeze repair and severe-race wording across skill, CREW.md and docs; router routes on phrases; receipt head width as printed Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(captain): CREW.md template becomes pointers plus parameters; every crew rule gets a canonical home in gstack (lane discipline, outside contributions, stale READYs, standing spend, the lane side of flaky reruns in docs/captain.md; the rule-to-home map) 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>
51 lines
2.0 KiB
Markdown
51 lines
2.0 KiB
Markdown
# 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):
|
|
|
|
```text
|
|
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>)
|
|
```
|
|
|
|
The lane's own lines, after the block:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
READY #<n> <stamped sha40> STAMP_VERSION=<X>
|
|
```
|