# /ship token budget and fresh-context handoffs `/ship --token-cap 25M` (or `GSTACK_SHIP_TOKEN_CAP=25M`) bounds what one /ship run spends, and long runs hand their heavy segments to fresh-context children. The helper is `bin/gstack-ship-budget`; the skill's procedure is `ship/sections/budget-handoff.md`. There is no default cap: without one, /ship meters usage when it can and prints it, and nothing else changes. ## What the cap guarantees It is an **admission cap**, not a hard ceiling. Before every step and every dispatch batch, `check` admits the work only when used + open reservations + unknown charges + projection + tail reserve + stop overhead <= cap Exactly at the cap is admitted; one token over is not. A parallel review batch is reserved as one sum before any of it starts. Admitted work can still cost more than its projection, and gstack cannot stop a host mid-turn from bash, so a run can finish above the cap by the misprojection of work already admitted. The tail reserve (default 2M, `--reserve `) keeps room for the receipt steps, and the stop overhead (calibrated) keeps room to stop cleanly. Once the run has measured a step, the tail reserve scales with its measured step cost (a `--reserve` you set stays as given); the stop overhead never scales. ## Observe mode (ship/DRIVER.md) `start --mode observe` turns the ledger into a record. No step or dispatch is admitted, reserved or delegated, so a run spends no call on the meter: each program the driver runs ends with gstack-ship-budget note --run --step [--label ] --reading --credits \ [--dispatched-at --dispatched-credits --readers ] which prints `NOTE: [: