SKILL.md
/mold
Ceremony scales to the job. The Bounds pass picks one of three tiers from references/tiers.md: Quick writes a validated mini-spec, Light runs only the dialogue modes the open forks need, and Full runs the whole Flow below. Saving a spec needs no extraction approval. Cook still needs an explicit user request. /cheese's tier-1 escalation enters mini-spec mode; see ## Agent-invoked mini-spec mode.
Flow
- Bounds pass — open the
Goal / Decided / Asking / [AGENT-DECIDED]ledger with the goal pinned as one sentence; only an explicit user fork changes it. Split it intoG-nclauses (references/handshake.md§ Goal coverage). Map every input's goals and non-goals as one[AGENT-DECIDED]line; ask the user only when the goal is genuinely unknown or a leverage trigger fires. Run the shape check, then announce the tier with its reason (references/tiers.md). Quick exits here to## Agent-invoked mini-spec modewithout a write-approval turn. Upgrade the tier whenever the evidence changes; never downgrade silently. - Route — choose the secondary mode from
references/modes.md, announce it, and correct false premises first. - Dialogue — consequential forks are the user's to pick. A fork is consequential per the leverage line in
../age/references/voice.md. Every other fork is[AGENT-DECIDED]. Supply options, trade-offs, and evidence before you ask. Ground each critical claim through code, the Validate Cycle, or a Prototype Cycle. Resolve every contradiction. Render the decision map after three consecutive fork questions, or on request. - Sketch — For work across modules or with a new public interface, run
references/shape-check.md. Bind identity and role nouns to code referents. Record the Placement block; no bodies. - Plan and validate — run the fresh-context fork-coherence taste test with
python3 skills/mold/scripts/mold.pyz taste-test; a failure reopens only named forks, and the third failed verdict stops. The taste review guides the spec but is not a Cook execution reference. For bound curd work, dispatch a typedPlannerRequest, validate itsPlannerResultWriterView(one retry, then save without runnable inputs), and normalize on the host. A clear single-curd task can instead use standalone Cook without a planner. Show semantic curds and waves before any Cook choice. Seereferences/curdle.md§ "Typed planner dispatch". - Readiness check — Before saving, run the coherence self-check and strict spec validation. Save a draft when unresolved parent work remains; record each hold in
execution_holds:. Finalization refuses ready while an entry remains. User approval is not a prerequisite for writing. Before Cook, require an explicit user selection of scope and route. Seereferences/handshake.mdandreferences/early-curds.md. - Curdle — Resolve the durable spec path with
python3 skills/mold/scripts/mold.pyz artifact-path specs <slug>and readpathfrom its JSON reply. Write the validated draft and read it back. Retain typed plan evidence and unresolved holds. Write local issue drafts and durable decisions; publish follow-ups only after their own approval. A concrete bounded curd may usereferences/early-curds.mdwhile Mold continues shaping its parent. The selected spec path can enter standalone Cook; bound curd execution also receives validated direct refs, never a pointer. - Offer Cook or keep shaping — after reconciliation, run
python3 skills/mold/scripts/mold.pyz curd-count. A saved draft is not an execution request. If the user selects bound curd execution, runscripts/mold.pyz finalizeand pass only ready direct inputs. A standalone clear task can enter Cook by spec path without machine finalization. Otherwise keep shaping or stop without a Cook command.
Portability: rules. Slash commands are host renderings, not the control model.