Launch cards
A launch card proposes runs and go starts them; what draft records, what go re-reads and freezes, the queue, lineup, choosing a template, and the 409 no_checks refusal.
A launch card proposes runs; go starts them. A card records some facts when it is drafted, and go re-reads others.
01draft and go#
- Draft records
no_checkson the card when the project has no checks. - The draft result's
checksfield always says what the run will get: the check ids joined by ", ", or the no-checks sentence. Only the tool result carries it; the card record is unchanged. - Drafting a card supersedes every older card in the same conversation that is still live (not pressed, not dismissed) and names one of its tickets, a batch card included. The draft result lists them as
superseded, the window folds them as "superseded by card N", and go on one is refused with 409card_supersedednaming the newer card. - Go re-reads the project's settings, but the drafted
no_checksflag still refuses unlesswithout_checksis ticked. - If the project has checks now, go refuses with 409
no_checks: "this card was drafted when had no checks; it has N now (). Draft the card again." The card is not refreshed and nothing launches. - If the project really has no checks, go refuses with "no checks: only the reviewer and the operator check this work; tick run without checks to go".
- Fixes: draft the card again, or press the card's "add these" to save the repo's detected checks; both preview a new card.
02draft, card, go#
The conductor calls draft_launch. It puts a launch card in the thread, with one run per ticket, and starts nothing. The desk previews each run when it drafts the card, and the operator presses go to start them. The conductor never presses go. File:line citations are in parentheses.
- A card is one ask: the tickets it names, one template, and a reason for the template. A ticket card has one entry per ticket. A
batchcard has one entry whose tickets are equal rows. - An entry that could not be previewed shows its error and has no digest, so go cannot start it.
- Pressing go on a ticket entry calls
LaunchHarnesswith the entry's preset choice and the digest of the preview the card showed. A template with inputs and no ticket callsLaunchTemplateinstead. - Go says
go: <tickets>in the thread. A card made by run again saysgo again, and a continue card saysgo on from run, starting at work. - A card lists assets that smith matched to the tickets, and only the operator's keep plugs one. See assets.
03what go freezes#
Go starts what the last preview showed. Three things are fixed at that point.
- The preset. A ticket entry starts at the preset it was drafted with, or the one the operator chose on the card, and any tweaks. Picking a preset or tweaking a knob previews again with a new digest, and a choice without a fresh digest is refused. The shipped presets are
quick,balanced,thoroughandmax, and a blank choice isbalanced. An operator's preset with the same name replaces a shipped one. A preset turns quality dials, and cannot remove the human gate, the checks, the completion proof, or the handoff and land. - The plugged asset versions. Each plug is frozen at the
AtGoversion shown on the card, and go keeps all plugs unless the press names the ones to keep. See assets. - The launch digest. The preview's digest is a hash of the base, the harness config and the preview itself. At go the service previews again, and if the digest differs, go is refused with "harness preview changed; prepare the run again". The card then offers go with the new plan. The base commit, the worktree and the branch are set at launch after the digest.
Go also reads some things fresh. It loads the template from the library again, so a template removed or broken since the draft starts nothing. A project's harness settings are read as they are at go, so a settings change makes the card stale. The no_checks flag is described under draft and go.
04lineup#
A run builds on its work clone as go finds it, so go first lines the clone up with the branch it tracks.
- A clean clone that is only behind is fast-forwarded.
- A clone with commits of its own that were not synced, such as a landed run's, has them rebased on top.
- A rebase that conflicts is aborted, and go is refused, naming the files.
- A clone with changes is left as it is. The run builds on top of what is there, and go says how far behind it is.
- A clone that tracks nothing, or is not a git clone, is left alone. A fetch that fails is said in the thread, and the run builds on the clone as it is.
- A project in pr mode catches up with the fetched remote-tracking ref instead, and a clone whose commits a squash-merge already holds is reset onto it.
05the queue and up next#
The launch queue is every open row from every launch card in a conversation, in one place. It is worked out from the thread each time and never stored, so a card stays the record. The up_next tool reads it (see tickets).
- A row stays until it starts from any card, its card is dismissed, or a later card drafts the same ticket again. The newer plan replaces it.
- A row is
pending,heldorfailed. Not yet parks a row, and it can still go. A row whose go failed is tried again through a fresh preview. - A row whose ticket is archived or done stays, marked
settled. It cannot go, and only the operator's ✕ on its card clears it. - A row is
readywhen go can start it now, and itsreasonsays why not. Astalerow offers go with the new plan, andchangedsays what moved. waits_fornames the runs holding the workspace a row would write in.on_topsays the workspace only has work left in it, so go may start on top of it if the operator says so.
06choosing a template#
The conductor recommends one template for a card, with a reason (draft_launch's description).
quick-fixfor a small, well-specified fix.ticket-completionwhen the ticket needs a plan or a review.batchfor several small related tickets as one run.researchtakes a question, not tickets.- Other templates take inputs.
Each template's purpose is on templates. A template saved to the library with propose_template can be carried the same way.
07when you're the conductor#
After saving checks to a project, draft the launch card again rather than telling the operator to press go on the old one.