journey-durable
Use as the durable-objects build stage of the Butterbase journey. Implements the Durable section of 02-plan.md by delegating to durable-objects. Calls manage_durable_objects (deploy). Skipped if the plan has no per-key stateful actors (chat rooms, multiplayer, rate limiters).
SKILL.md
Full skill instructions
Journey: Durable Objects
Stage 3i of the guided journey. Deploy stateful per-key actors.
When to use
- Dispatched by
journeywhencurrent_stage: durable. - Directly via
/butterbase-skills:journey-durable. - Skipped (annotated
(n/a)) if the plan has no Durable section.
Preflight
If docs/butterbase/03-preflight.md is missing, older than 24 hours, or 00-state.md has app_id: null, invoke butterbase-skills:journey-preflight first. Wait for it to return successfully before proceeding.
Inputs
docs/butterbase/02-plan.md— the Durable section.docs/butterbase/00-state.md— forapp_id.
Procedure
- Refresh docs. Call
butterbase_docswithtopic: "functions". For Durable Object class structure, also WebFetchhttps://docs.butterbase.ai/durable-objects. Skip if cache is fresh.
For each Durable Object class in the plan:
- Print:
"About to deploy Durable Object: <name>. Proceed?". Wait foryes. - Invoke
butterbase-skills:durable-objectsvia the Skill tool with the DO spec andapp_id. The wrapped skill callsmanage_durable_objects action: deploy, sets env viaset_envif needed. - Verify with
manage_durable_objects action: listandaction: get. - Append one line per DO to
docs/butterbase/04-build-log.md:<ISO timestamp> durable manage_durable_objects <do-name> ok - After all DOs are done, tick
- [x] durablein00-state.md, setcurrent_stage:to the next unchecked stage. - Return to
journeyorchestrator (or ask"Continue to the next stage? (yes/no)").
Outputs
- Deployed Durable Object classes.
- One line per DO in
04-build-log.md.
Anti-patterns
- ❌ Sharing state across users via a single DO key — keys should be naturally per-room / per-user / per-resource.
