structure batch
experimentalstructure batch compose <composition.json> [--pre-approval <file>] [--digest-only]
a typed batch-flight run from a composition
file: the governing process is DISCOVERED
from this repo, context pinned from HEAD's
real blobs, declared conditions answered
explicitly (silence refuses), and stage
briefs compiled from the record's own
pinned context. The composition digest
prints FIRST, so a sponsor can sign those
exact bytes before anything is created —
--digest-only stops there. A pre-approval
is a person's act: an agent/ signer is
refused at the door, and a signature over
a drifted composition lands as a typed
VOID instead of satisfying the gatestructure batch compose <composition.json> [--pre-approval <file>] [--digest-only]a typed batch-flight run from a composition file: the governing process is DISCOVERED from this repo, context pinned from HEAD's real blobs, declared conditions answered explicitly (silence refuses), and stage briefs compiled from the record's own pinned context. The composition digest prints FIRST, so a sponsor can sign those exact bytes before anything is created — --digest-only stops there. A pre-approval is a person's act: an agent/ signer is refused at the door, and a signature over a drifted composition lands as a typed VOID instead of satisfying the gate
structure batch close <run> <stage> --checks <file>
[--scratch <dir>]... [--worktree <path>]... [--keep <path>]...
complete a stage from the record's own
declarations: output ids, destinations,
and check ids are READ from the run
record, never guessed; artifact digests
are computed from the files at the
declared destinations; a missing declared
artifact refuses honestly, by name. On a
stage that declares the workspace restored,
the close is a gate: --scratch names each
receipt root, scratch clone and export
target, --worktree each ephemeral worktree,
--keep a small kit to leave — they are
verified, then removed, and the report
carries the bytes freedstructure batch close <run> <stage> --checks <file>
[--scratch <dir>]... [--worktree <path>]... [--keep <path>]...complete a stage from the record's own declarations: output ids, destinations, and check ids are READ from the run record, never guessed; artifact digests are computed from the files at the declared destinations; a missing declared artifact refuses honestly, by name. On a stage that declares the workspace restored, the close is a gate: --scratch names each receipt root, scratch clone and export target, --worktree each ephemeral worktree, --keep a small kit to leave — they are verified, then removed, and the report carries the bytes freed