Run Unstructured Work with bob do
Run unstructured work with bob do
Section titled “Run unstructured work with bob do”Use bob do for work with no requirement behind it: a spike, an hour poking at
something, or a “should we even do this?”. The run refuses to start working
until you have said what the hour will produce. For why it is built this way,
see The bob do machine.
Before you start
Section titled “Before you start”- No warp-drive run is active in this checkout.
bob dowrites files, so it refuses to start beside one and names the run it found. Let that run finish or stop it withbob warp stop. - The run’s state lives in
.claude/.do-state.json.
-
Start the run and frame it. Give the question as one quoted line, and name the artifact it will produce:
Terminal window bob do "should we cache the fleet feed?" --artifact decision --budget 45mThe artifact must be one of
decision,lesson,doc,spike,issue-setordiscard. Anything else is refused and the run stays inframing. Without--artifactthe run also stays inframing. Frame it later with:Terminal window bob do transition framed --data '{"artifact":"spike"}' -
Work inside the budget.
--budgettakes minutes (45or45m), tokens (200000t) or thousands of tokens (200k). Without it the budget is_workflow.do_budget_minutes(default 60). Check the run at any time:Terminal window bob do statusWhen the budget is spent, the next
bob docall moves the run tolandingwithbudget_exhausted: true. It does not wait for you. -
Stop working when you have enough:
Terminal window bob do transition worked --data '{"enough":"the numbers answer it"}' -
Land the artifact. Name it, and the gate reads it back. Use an issue number for
decision,lesson,spikeordiscard,issuesfor anissue-set, or a path underdocs/for adoc(or aspike):Terminal window bob do transition landed --data '{"issue":3021}'bob do transition landed --data '{"path":"docs/explanation/fleet-feed-cache.md"}'An issue must carry the artifact’s label and name the question. A doc must be committed and pass the docs check. The evidence for each type is listed in Artifact evidence.
-
Record what prompted it. Link the artifact and the prompt to each other (for example, a comment on each issue naming the other), then:
Terminal window bob do transition recorded --data '{"prompted_by":"#2990"}'prompted_bycan also be a file in the checkout, such as a brief, ornone. The run endsdone, andbob do statusshows the outcome and the artifact.
When the answer is “no”
Section titled “When the answer is “no””If the work shows the thing is not worth doing, discard the run. This ends it successfully, but only after a decision is on record:
-
File the decision with
/journal decision. Say why not, and quote the run’s question in it. -
Discard the run with that issue’s number. You can do this from
workingorlanding:Terminal window bob do transition discard --data '{"decision":3021}'
The gate reads the issue back. It must exist, carry the decision label and
name the question. The run then ends discarded and exits 0.
To abandon a run
Section titled “To abandon a run”bob do stopThis removes the run’s state and frees the checkout for warp-drive. Nothing is
recorded, so if the hour answered a question, prefer discard with a decision.
Verify
Section titled “Verify”bob do statusprints the phase, the question, the artifact and the budget used.- While a
dorun is active,bob warp startexits 5 and warp-drive’sinitexits 3, both naming the run.
Reference
Section titled “Reference”bob doreference: events, payloads, the artifact evidence and the state fields.bob doin the CLI reference: every flag and exit code.- The bob do machine: the phases, the framing
gate and why
discardedis a success.