mold
Installation
SKILL.md
/mold
Two modes, by analogy to /culture:
- User-invoked full ceremony (default). The user typed
/mold(or/cheeserouted an explicit fuzzy-design ask straight here). Runs the full Explore/Ground/Shape/Sketch/Grill/Diagnose dialogue and the two-key handshake before any spec is written; the Flow below describes it. - Agent-invoked mini-spec mode.
/cheesecalls into/moldat tier 1 of its escalation (skills/cheese/SKILL.md§ Escalation) when the cook fast-path checks all pass and a spec must materialise before/cook --autoruns. No dialogue, no handshake. See## Agent-invoked mini-spec modebelow.
Flow
- Bounds pass — before routing, run one Explore-style bounds round for every input shape: map the problem's edges to candidate goals and non-goals, asking the user rather than assuming. Open the per-round decision ledger (
Decided / Asking / [AGENT-DECIDED]; see## Rules). Tier it — a clear input gets a single fast confirm, not a full A/B/C/D menu — but never skip it. When the dialogue reveals full-spec-sized work, warn to upgrade tier (harness-detected: claude/model opus+/effort; codex/OMP equivalent; generic fallback) before continuing. - Route — pick the secondary mode from the input shape (see
references/modes.md) and announce it in one line. If the user's framing rests on a false premise or a loaded assumption, name it before routing. - Dialogue — build shared understanding: every consequential fork is the user's to pick, surfaced as a choice, never settled for them. Contribute full depth (options, edge cases, evidence) to inform each question, never to replace asking it. Ground every critical claim via the selected source-code search/read backend, a Validate Cycle (
references/validate-cycle.md), or — for an ungrillable design unknown — a Prototype Cycle (references/prototype-cycle.md); both are sub-agent-spawnable mid-dialogue, in parallel, context-bounded (soft backstop of 10). Track and resolve contradictions across turns before continuing. After 3 consecutive fork questions, or on "what forks are left?", render the decision map (## Rules§ Decision map). - Sketch — for any feature touching >1 module or a new public interface, run the shape check (
references/shape-check.md) on the touched symbols, then lock seams in pseudocode signatures before talking spec content. While the code is open, bind every identity/ownership-role noun to a code referent perreferences/handshake.md§ Entity-referent binding — a search hit of a different referent is an alias, not a pass. - Decompose for approval — once the draft spec and any pre-Curdle follow-up disposition are complete, dispatch the fresh-context curd-block decomposer on the draft text and validate its result before requesting approval. Retry an invalid result once; if it is still invalid, stop before the handshake rather than approving a block that cannot be persisted. Present the validated curd block as
N curds / M wavesat the handshake. Seereferences/curdle.md§ "Pre-approval decomposer dispatch". - Two-key handshake — both the user (explicit verb) and the agent (coherence self-check) must agree to the draft spec and displayed curd plan before extraction. Neither key changes or disappears. See
references/handshake.md. - Curdle — resolve the durable spec path with
SPEC=$(python3 shared/scripts/artifact_path.py specs <slug>)(bundle-only host fallback:python3 skills/mold/scripts/mold.pyz artifact-path specs <slug>). The resolver anchors specs at the per-project durable corpus (../cheese/references/formatting.md§ Corpus location); never hardcode a repo-local spec path. Phase one writes every local artifact and write-ahead prepared state before any external call: the approved spec at"$SPEC", the same approved curd block as## Curds, any local issue drafts, and the session's non-obvious decisions as durable ADRs. Phase two then publishes approved follow-ups, retains prepared recovery state when an external capability is unavailable or publication fails, and reconciles their state and references into the durable spec. Never re-dispatch or mutate the approved curd block during Curdle. Format, slug, publication, reconciliation, corpus-resolution, and curd-block persistence rules:references/curdle.mdandreferences/adr.md. - Count and hand off — only after phase-two publication attempts and reconciliation finish, run
python3 skills/mold/scripts/mold.pyz curd-count "$SPEC" --blast-radius <low|medium|high>for the recommended downstream skill (procedure inreferences/curd-count.md), then prompt via## Handoff. Never dispatch before the user selects; after a non-stop selection, run the selected skill immediately.