Playbook: add a stitch type
A stitch type touches several registries, but each touch is small. Follow the steps in order; the gates catch anything you miss.
- Design page first. Add or extend the section in
docs/src/design/algorithms/with: purpose, parameters (registry keys; Ink/Stitch names where they exist), the algorithm in your own words, properties, diagnostics, references. Never copy code (ADR-0012). - Requirements. Add
REQ-…entries toconformance/requirements.tomlwithstatus = "planned"and the milestone. - Cases. Add cases under
conformance/cases/<area>/: typical shapes, the degenerate corpus entries that matter, and one case per diagnostic. They fail for now — that is the point. - Module. Create
crates/stitchcraft-engine/src/generators/<name>/withmod.rs(theGeneratorimpl),params.rs(theparams!block, doc comments as help text) andtests.rs. Keep files under 800 lines; split by concern (sampling, routing, compensation). - Register the generator in the generator table and its params in the registry list (one line each).
- Make the cases pass. Run
cargo xtask conformance --filter <area>; switch the requirements toactive. - Docs.
cargo xtask docsregenerates the parameter pages; write the user-facing page indocs/src/user/(what it is for, when to use it, two or three declared shots); runcargo xtask shots. - Gate.
cargo xtask ci, then open the PR with the roadmap step id. - Sew-out. If the type is new to the machine, list it for the next machine checkpoint (TS-11).