Preserve intermediate outputs as concrete artifacts at every workflow boundary — enables resumption, failure recovery, and reuse
Every boundary between composed workflows must preserve an intermediate output as a concrete artifact to enable resumption, failure recovery, and reuse.
Why This Is a Rule
When a multi-stage workflow fails at stage 4 of 7, the recovery cost depends entirely on whether intermediate outputs were preserved. If stage 3's output exists as a concrete artifact (a saved file, a documented state, a checkpointed dataset), you restart from stage 4. If stage 3's output was only a transient state in someone's head or a temporary file that was overwritten, you restart from stage 1. The difference between a 10-minute recovery and a 3-hour redo is whether you checkpointed at the boundaries.
This is the workflow equivalent of database transaction logs or version control commits: concrete checkpoints that enable recovery to the last known-good state. Without them, any failure requires full restart. With them, failure cost is bounded to one sub-workflow's worth of effort.
Beyond failure recovery, preserved intermediate artifacts enable two other capabilities. Resumption: when you're interrupted mid-workflow (end of day, emergency, context switch), the boundary artifact tells you exactly where to restart. Reuse: the intermediate artifact from one workflow execution can serve as the starting input for a different workflow. Your research notes (intermediate artifact between "research" and "draft") can feed into multiple different drafting workflows without re-doing the research.
When This Fires
- When designing composed workflows that span multiple sessions or collaborators
- When a workflow failure forces a full restart because intermediate state was lost
- When returning to interrupted work and not knowing where you left off
- Complements Test composability by replacing one sub-workflow without breaking others — forced changes to adjacent workflows mean interfaces are leaking (composability test) by mandating the artifact that makes clean interfaces possible
Common Failure Mode
Streaming workflows where each stage feeds directly into the next with no saved state: research flows into drafting flows into editing with no checkpoint. If editing reveals a fundamental research gap, you can't go back to the research output — it only existed as a mental model that has since been overwritten by the drafting and editing work. The entire pipeline must restart.
The Protocol
(1) For each boundary between sub-workflows, identify what the upstream sub-workflow produces. (2) Save this output as a concrete, retrievable artifact: a file, a document, a saved state, a checklist of completed items — something that exists independently of anyone's memory. (3) The artifact must be self-contained: someone (including your future self) should be able to pick it up and understand what it represents without needing context from the upstream workflow. (4) Name and store artifacts consistently: a naming convention (date-stage-description) and a known location (a specific folder, a specific tool) so they're findable. (5) Before starting any downstream sub-workflow, verify the upstream artifact exists and is complete. This is the checkpoint: if it doesn't exist, the upstream work isn't done yet.