FlowDrop Workflow Specification 1.0-draft

Artifact collection is opened and released per run

Collecting artifacts means holding payloads in memory, so the run that opens collection is the run that ends it, on every way out.

The rule

Normative: this is the rule
  1. An implementation need not collect tool artifacts at all.
  2. Where it does: an artifact is retained only while collection is open for the run it belongs to, and an artifact arriving for a run whose collection was never opened is dropped.
  3. Draining what has been collected does not end collection — a later tool call in the same run still collects — and only releasing it does; an artifact arriving after release is dropped.
  4. Collection is opened and released on the same path, so a run that returns, pauses or fails releases it either way and cannot retain artifacts beyond its own life.
  5. Whether artifacts are collected must not depend on which entry point launched the run.

What it means

Collection is opt-in per run, not automatic: a tool call that produces an artifact while nobody has opened collection for its run does not queue up waiting for someone to ask — it is simply not kept. Nothing later can recover it, and opening collection afterwards does not reach back for it. Draining what has been collected so far is not the same as ending collection: a run can drain, then have a later tool call in the same run still add to what it collects. Only release ends collection outright.

Example

A tool call produces an artifact for a run that never opened collection:

What the tool call producedproduced
{ "type": "citation", "payload": { "ref": "a" }, "tool_call_id": "call_1" }
What the run's collection holdsdropped
[]
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · RT-TOOL-5 · changed in spec 1.0