Saphan StudioDocs
Reference/Command reference

saphan board

Board exports over the persisted fleet record

saphan board

Board exports over the persisted fleet record

saphan board

Subcommands

SubcommandWhat it does
saphan board exportExport the fleet record: delivery report (md), flat data lanes (csv), paginated document (pdf), styled report (html)

saphan board export

Export the fleet record: delivery report (md), flat data lanes (csv), paginated document (pdf), styled report (html)

saphan board export --format md|csv|pdf|html --out <path> [--force] (or --stdout) [flags]

Export the workspace's PERSISTED fleet record (D20: the fleet_event log is the only source — no reconcile scan, no git probe, never the resolved projection).

--format md the human weekly: per stream — record state, actor history (human|agent, gate decisions verbatim with ts), last commit, order-doc link. Flat pre-PREREQ-1, and it says so. --format csv the tool-importable flat lanes: one row per gate event and one row per stream summary — two files from an --out base, or one lane via --csv events|streams. --format pdf the --md content as a dated, paginated document: title page (workspace, generated-at, engine + contract version), footer "page N of M". Deliberately plain (the archival artifact) — for the styled version, --format html prints to PDF from the browser. --format html the human-facing report: the same record as ONE self-contained file — inline CSS, zero JS, zero external assets; opens anywhere, mails anywhere, prints from the browser. Paths render workspace-relative (--full-paths restores absolute).

A report is a NAMED ARTIFACT, not a text stream (the openssl model): --out <path> is REQUIRED, written atomically (tmp+rename), never replacing an existing file without --force, and the ABSOLUTE path written is printed as the last stdout line. --stdout is the explicit pipeline escape hatch — artifact bytes on stdout, every diagnostic on stderr; pdf (binary) refuses --stdout on a terminal.

Cost columns render "not yet attributed" until a per-stream cost surface lands — never 0 (honest-absence: zero is a claim).

Options

OptionTypeDefaultDescription
--csvstringunsetcsv lane selection: events | streams (default: both files)
--forceboolfalselet --out replace an existing file (one atomic swap; without it an existing file is refused)
--formatstringunsetexport format: md | csv | pdf | html (required)
--full-pathsboolfalsehtml: render absolute paths (default OFF = workspace-relative — a client-facing artifact must not leak the operator's disk layout)
--outstringunsetthe named artifact's path (md/pdf/html: the file; csv without --csv: the base for <base>.events.csv + <base>.streams.csv); required unless --stdout
--stdoutboolfalsestream the artifact bytes to stdout (the pipeline escape hatch) — every diagnostic stays on stderr

On this page