Preserve intermediate outputs as concrete artifacts…
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… (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.