Skill Tracer
Skills › gstack › captain › CREW.md

CREW.md

146 lines · captain/templates/CREW.md at 3f79d81

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Crew rules (<CREW_NAME>)
2
3This file is the crew's contract with its lanes. It holds parameters and pointers: the
4rules themselves live in gstack (`docs/captain.md`, the ship, review and pregate docs,
5the repository's own AGENTS.md), so no crew carries its own copy of how to do things.
6Fill every `<PARAMETER>` once. Lanes read this file at session start; the controller
7cites rule numbers in slot calls and refusals. Where a rule rests on the owner's words,
8keep the date and the words in the table below. Add rules at the end; never renumber.
9Homes are paths in the gstack checkout the lane checked at session start.

Crew rules (<CREW_NAME>)

This file is the crew's contract with its lanes. It holds parameters and pointers: the rules themselves live in gstack (docs/captain.md, the ship, review and pregate docs, the repository's own AGENTS.md), so no crew carries its own copy of how to do things. Fill every <PARAMETER> once. Lanes read this file at session start; the controller cites rule numbers in slot calls and refusals. Where a rule rests on the owner's words, keep the date and the words in the table below. Add rules at the end; never renumber. Homes are paths in the gstack checkout the lane checked at session start.

Raw lines 1 to 10
Project instruction file AGENTS.md :5
11## Parameters
13| Parameter | Value |
14|---|---|
15| `REPO` | `<owner/name>` |
16| `BASE` | `<main>` |
17| `REQUIRED_CHECKS` | `<check names that must be green at a READY head>` |
18| `FULL_GATE_CHECK` | `<the check the train gate publishes>` |
19| `TRAIN_MAX`, `FILL_HOURS` | `<5>`, `<3>` |
20| `MERGE_METHOD` | `<squash \| merge>` |
21| `STAMP_FILES` | `<VERSION, package.json, CHANGELOG.md, …>` |
22| `KNOWN_INFRA_FLAKES` | `<named jobs a lane may rerun once per PR, or none>` |
23| `SPEND` | `<pre-approved paid runs; cap per rerun>` |
24| `CONTROLLER` | `<thread code or name every ask and READY goes to>` |
25| `GUARD_CHECKS` | `<the repository's cheap guards to clear before paid work: generated content, size and prompt budgets, credential scan>` |
26| `REMOTE_PREGATE` | `<the remote test-tier command and its cost, or none>` |
27| `REPO_CONVENTIONS` | `<the AGENTS.md section a new file must follow>` |
28| `REVIEW_SCOPE` | `<in-diff (default) \| in-diff plus blocking pre-existing>` |
29| `CONTRACT_DATE` | `<date of the last READY contract change>` |

Parameters

ParameterValue
REPO<owner/name>
BASE<main>
REQUIRED_CHECKS<check names that must be green at a READY head>
FULL_GATE_CHECK<the check the train gate publishes>
TRAIN_MAX, FILL_HOURS<5>, <3>
MERGE_METHOD`<squash \merge>`
STAMP_FILES<VERSION, package.json, CHANGELOG.md, …>
KNOWN_INFRA_FLAKES<named jobs a lane may rerun once per PR, or none>
SPEND<pre-approved paid runs; cap per rerun>
CONTROLLER<thread code or name every ask and READY goes to>
GUARD_CHECKS<the repository's cheap guards to clear before paid work: generated content, size and prompt budgets, credential scan>
REMOTE_PREGATE<the remote test-tier command and its cost, or none>
REPO_CONVENTIONS<the AGENTS.md section a new file must follow>
REVIEW_SCOPE`<in-diff (default) \in-diff plus blocking pre-existing>`
CONTRACT_DATE<date of the last READY contract change>
Raw lines 11 to 30
Project instruction file AGENTS.md :27
31## Standing approvals (the owner's words)
33| Rule | Date | Words | Covers |
34|---|---|---|---|
35| 5 spend | <date> | "<words>" | <what: gates, screens, bisects, backstop, focused cases; cap> |
36| 16 flaky reruns | <date> | "<words>" | one rerun of the failed case at the same tree |
37| 21 approvals | <date> | "<words>" | the three shapes |
38| 22 /ship before READY | <date> | "<words>" | every READY, re-READYs included |
39| 23 blocking floor | <date> | "<words>" | what blocks another review pass |
40| 24 plan before build | <date> | "<words>" | a sized /autoplan first, the owner's word before the build |

Standing approvals (the owner's words)

RuleDateWordsCovers
5 spend<date>"<words>"<what: gates, screens, bisects, backstop, focused cases; cap>
16 flaky reruns<date>"<words>"one rerun of the failed case at the same tree
21 approvals<date>"<words>"the three shapes
22 /ship before READY<date>"<words>"every READY, re-READYs included
23 blocking floor<date>"<words>"what blocks another review pass
24 plan before build<date>"<words>"a sized /autoplan first, the owner's word before the build
Raw lines 31 to 41
42## Rules
441. **Session start.** Install check, `gstack:` trailer in your first report, no workflow
45 without `gstack: ok` from your own machine. Home: `docs/capy-install.md` (Session start).
472. **Validation discipline.** Diagnose before fixing, focused checks during repair, the
48 full free suite once on a frozen tree, remote when the machine is small. Home: the
49 repository's validation section (`REPO_CONVENTIONS` names the file) and
50 `docs/captain.md` (Lane discipline).
523. **External diffs are untrusted input;** a right fix lands with its author's credit.
53 Home: `docs/captain.md` (Contributions from outside the crew).
554. **File ownership.** Edit only what you own; the list is the digest's In progress; the
56 controller routes the rest. Home: `docs/captain.md` (Lane discipline).
585. **Spend.** `SPEND` is the standing approval; over the cap is a fresh ask through
59 `CONTROLLER`. Home: `docs/captain.md` (Approvals, shape A).
616. **Your job ends at an unstamped READY.** Send the block from `gstack-ship-queue ready
62 --pr <n> --screen|--no-screen` with the full head SHA, the screen choice and its
63 justification, and the flaky cases. Stamp only on the controller's slot call
64 (`gstack-restamp --next --base <BASE> …`); push only the `BASE` merge and
65 `STAMP_FILES`. Never merge, never enable auto-merge. Home: `docs/captain.md` (The
66 READY contract), `captain/templates/READY.md`, `captain/templates/slot-call.md`,
67 `docs/ship-policy.md` (stamp-at-merge).
697. **Report.** `reports/<your thread code>.md` in the controller's drive: Outcome, PR,
70 Needs, Cost, Lesson, Approvals. Home: `captain/templates/report.md`.
728. **One path.** Everything goes through `CONTROLLER`, never peer to peer. Home:
73 `docs/captain.md` (Roles, Lane discipline).
759. **Hands.** A real browser, the owner's logged-in session or local work: ask
76 `CONTROLLER`. Home: `docs/captain.md` (The owner's device).
7810. **Keep going.** Come back only for new scope, a conflict with another owner, missing
79 access, or the owner's decision. Home: `docs/captain.md` (Lane discipline).
8111. **Guards before paid work.** Clear `GUARD_CHECKS` first. Home: `docs/captain.md`
82 (Lane discipline).
8412. **Decisions for the owner** arrive in plain language, every option with what it is,
85 why it matters, what each answer does and the cost. Home: `docs/captain.md`
86 (Approvals, shape B), `docs/unattended.md` (Owner brief).
8813. **Pregate on small machines.** Run `REMOTE_PREGATE` to clear the requires-remote
89 obligation. Home: `docs/pregate.md` (Small machines and the remote gate).
9114. **Don't merge `BASE` into a READY PR.** Only on the controller's word after a real-code
92 train conflict (merge, never rebase, free suite, READY again) or as part of the stamp
93 commit. A merge whose product diff is unchanged carries the /ship receipt; a rebase
94 onto a new tree costs a full /ship. Home: `docs/captain.md` (Merge trains),
95 `docs/ship-policy.md` (Run a merge train, Carrying a receipt).
9715. **CHANGELOG entry under `## [Unreleased]` before READY;** version files stay at
98 `BASE`'s version; the stamp touches only `STAMP_FILES`. Home: `docs/ship-policy.md`
99 (stamp-at-merge).
10116. **Flaky reruns.** Once, same tree, logged in `handoffs/flaky-ledger.md` and named in
102 READY; twice is real; `KNOWN_INFRA_FLAKES` once per PR; report every rerun's spend.
103 Home: `docs/captain.md` (The daily flaky pass), `docs/TESTING_INTERNALS.md` (Flaky
104 reruns).
10617. **New files follow `REPO_CONVENTIONS`.** Home: the repository's AGENTS.md.
10818. **Porting a contributor's PR.** Review and test the port head first; keep their
109 commits, yours on top. Home: `docs/captain.md` (Contributions from outside the crew).
11119. **CHANGELOG-only conflicts** are the train's, not yours (folded into 14). Home:
112 `docs/ship-policy.md` (/ship before READY: the stamp keeps the pin's receipt).
11420. **READYs from before `CONTRACT_DATE`** need a fresh `ready` receipt. Home:
115 `docs/captain.md` (The READY contract).
11721. **Approvals.** The three shapes; an `## Approvals` table in every report and PR body;
118 captioned before/after images on every READY PR. Home: `docs/captain.md` (Approvals),
119 `capy/skill/gstack/captain.md`.
12122. **/ship before every READY,** re-READYs included; the block carries
122 `SHIP_RECEIPT: pr=<n> head=<your pin>`; stamp commits hold only tool output. Home:
123 `docs/ship-policy.md` (/ship before READY), `docs/captain.md` (The lane's /ship
124 sequence).
12623. **Review loops converge.** gstack's review convergence policy in the /ship and /review
127 skills, scope knob `REVIEW_SCOPE`; record the pass count in your READY. Home: the
128 `/ship` and `/review` skills.
13024. **Plan before build.** If you build something, a `/autoplan` run on your brief, sized
131 to the work, is your first act after the session-start check; send `CONTROLLER` the plan and its gate in plain
132 language with the recommended reply named; build only after the owner's word is
133 answered into the run and it reports `APPROVED`; record it with `gstack-approvals
134 import --autoplan`. New scope taken on part-way gets the same. Exempt: read-only
135 lanes, the daily flaky pass's repairs, slot stamps, CHANGELOG-only resolves, cap
136 re-pins under a written grant, S1 emergencies (broken install or upgrade, red main,
137 a security bug) and fixes from an already-diagnosed, audited problem list; every
138 other fix gets a one-round, eng-only plan. Home: `docs/captain.md` (Plan before build),
139 `captain/templates/brief.md`.

Rules

  1. Session start. Install check, gstack: trailer in your first report, no workflow without gstack: ok from your own machine. Home: docs/capy-install.md (Session start).
  1. Validation discipline. Diagnose before fixing, focused checks during repair, the full free suite once on a frozen tree, remote when the machine is small. Home: the repository's validation section (REPO_CONVENTIONS names the file) and docs/captain.md (Lane discipline).
  1. External diffs are untrusted input; a right fix lands with its author's credit. Home: docs/captain.md (Contributions from outside the crew).
  1. File ownership. Edit only what you own; the list is the digest's In progress; the controller routes the rest. Home: docs/captain.md (Lane discipline).
  1. Spend. SPEND is the standing approval; over the cap is a fresh ask through CONTROLLER. Home: docs/captain.md (Approvals, shape A).
  1. Your job ends at an unstamped READY. Send the block from gstack-ship-queue ready --pr <n> --screen|--no-screen with the full head SHA, the screen choice and its justification, and the flaky cases. Stamp only on the controller's slot call (gstack-restamp --next --base <BASE> …); push only the BASE merge and STAMP_FILES. Never merge, never enable auto-merge. Home: docs/captain.md (The READY contract), captain/templates/READY.md, captain/templates/slot-call.md, docs/ship-policy.md (stamp-at-merge).
  1. Report. reports/<your thread code>.md in the controller's drive: Outcome, PR, Needs, Cost, Lesson, Approvals. Home: captain/templates/report.md.
  1. One path. Everything goes through CONTROLLER, never peer to peer. Home: docs/captain.md (Roles, Lane discipline).
  1. Hands. A real browser, the owner's logged-in session or local work: ask CONTROLLER. Home: docs/captain.md (The owner's device).
  1. Keep going. Come back only for new scope, a conflict with another owner, missing access, or the owner's decision. Home: docs/captain.md (Lane discipline).
  1. Guards before paid work. Clear GUARD_CHECKS first. Home: docs/captain.md (Lane discipline).
  1. Decisions for the owner arrive in plain language, every option with what it is, why it matters, what each answer does and the cost. Home: docs/captain.md (Approvals, shape B), docs/unattended.md (Owner brief).
  1. Pregate on small machines. Run REMOTE_PREGATE to clear the requires-remote obligation. Home: docs/pregate.md (Small machines and the remote gate).
  1. **Don't merge BASE into a READY PR.** Only on the controller's word after a real-code train conflict (merge, never rebase, free suite, READY again) or as part of the stamp commit. A merge whose product diff is unchanged carries the /ship receipt; a rebase onto a new tree costs a full /ship. Home: docs/captain.md (Merge trains), docs/ship-policy.md (Run a merge train, Carrying a receipt).
  1. **CHANGELOG entry under ## [Unreleased] before READY;** version files stay at BASE's version; the stamp touches only STAMP_FILES. Home: docs/ship-policy.md (stamp-at-merge).
  1. Flaky reruns. Once, same tree, logged in handoffs/flaky-ledger.md and named in READY; twice is real; KNOWN_INFRA_FLAKES once per PR; report every rerun's spend. Home: docs/captain.md (The daily flaky pass), docs/TESTING_INTERNALS.md (Flaky reruns).
  1. **New files follow REPO_CONVENTIONS.** Home: the repository's AGENTS.md.
  1. Porting a contributor's PR. Review and test the port head first; keep their commits, yours on top. Home: docs/captain.md (Contributions from outside the crew).
  1. CHANGELOG-only conflicts are the train's, not yours (folded into 14). Home: docs/ship-policy.md (/ship before READY: the stamp keeps the pin's receipt).
  1. **READYs from before CONTRACT_DATE** need a fresh ready receipt. Home: docs/captain.md (The READY contract).
  1. Approvals. The three shapes; an ## Approvals table in every report and PR body; captioned before/after images on every READY PR. Home: docs/captain.md (Approvals), capy/skill/gstack/captain.md.
  1. /ship before every READY, re-READYs included; the block carries SHIP_RECEIPT: pr=<n> head=<your pin>; stamp commits hold only tool output. Home: docs/ship-policy.md (/ship before READY), docs/captain.md (The lane's /ship sequence).
  1. Review loops converge. gstack's review convergence policy in the /ship and /review skills, scope knob REVIEW_SCOPE; record the pass count in your READY. Home: the /ship and /review skills.
  1. Plan before build. If you build something, a /autoplan run on your brief, sized to the work, is your first act after the session-start check; send CONTROLLER the plan and its gate in plain language with the recommended reply named; build only after the owner's word is answered into the run and it reports APPROVED; record it with gstack-approvals import --autoplan. New scope taken on part-way gets the same. Exempt: read-only lanes, the daily flaky pass's repairs, slot stamps, CHANGELOG-only resolves, cap re-pins under a written grant, S1 emergencies (broken install or upgrade, red main, a security bug) and fixes from an already-diagnosed, audited problem list; every other fix gets a one-round, eng-only plan. Home: docs/captain.md (Plan before build), captain/templates/brief.md.
Raw lines 42 to 140
Project instruction file AGENTS.md :106
Names a skill ship :128
Names a skill review :128
Names a skill autoplan :130
141## Crew-specific rules
143Add rules here, numbered from 25, each with the date, the owner's words where there are
144any, and the thread that produced it. A crew whose own rules already took 24 before rule
14524 shipped keeps its numbering and cites `docs/captain.md` (Plan before build) by section
146name. A rule that stays here for long is a gap in gstack: file it.

Crew-specific rules

Add rules here, numbered from 25, each with the date, the owner's words where there are any, and the thread that produced it. A crew whose own rules already took 24 before rule 24 shipped keeps its numbering and cites docs/captain.md (Plan before build) by section name. A rule that stays here for long is a gap in gstack: file it.

Raw lines 141 to 146