ds
ds — a data project, run through craft with a computed data-quality gate
The lifecycle is craft. Read it and follow it.
This file is a delta: it supplies the domain — the CLARIFY axes, the plan grammar, the lenses,
the mechanical checks, the refs, the authority text. It ships no workflow.js and restates none of
craft's mechanics.
What makes a run ds rather than plain craft is one thing: every declared data output is verified
by a computed runner, not by the agent that produced it. scripts/ds-dq.py reads the approved
plan's ## Data Outputs table and opens each artifact itself; craft's JS reads its exit code.
Write surface
Main chat clarifies, plans and dispatches. It does not do the analysis, and it never writes a .py,
.ipynb, .R, .sas, .sql or .qmd file — not by Write/Edit, and not by Bash (python3 -c,
pixi run python, inline pandas/numpy). Analysis runs in a dispatched agent. Craft's dispatch is
already structural and its judges are pinned to Explore, so this line is a rule on you, not a hook;
reach for the workflow first rather than after a refusal.