paulnsorensen/easy-cheeseMIT21 files

Mold

Turn a high-leverage design decision into an approved spec through grounded dialogue. Use it when a leverage trigger fires (auth, irreversible effects, concurrency, contracts, destructive ops, a new slice, a cross-slice dependency, an invariant gap) or when the user asks for a spec or design. Typical phrases include "let's design X", "shape this into a spec", "what should the API for Z look like", and "/mold". A feature ask with zero fired triggers is a `/cook` mini-spec, not a mold; route it through `/cheese`. Do NOT use it for free-form discussion without artifact intent (`/culture`), direct implementation (`/cook`), or research-only questions (`/briesearch`). Ceremony scales to the ask through `references/tiers.md`, so a small clear change gets a one-confirm mini-spec rather than the full dialogue.

Specification
Skill ID
paulnsorensen/easy-cheese/mold
Publisher
paulnsorensen
Repository
easy-cheese
Installs
0
Files
21
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

paulnsorensen/easy-cheese/moldInstalls these files
  • SKILL.md
  • phase-contract.yaml
  • references/adr.md
  • references/commands.md
  • references/context-budget.md
  • references/curd-count.md
  • references/curdle.md
  • references/evals.md
  • references/gate-graph.md
  • references/grounding.md
  • references/handoff-menus.md
  • references/handshake.md
  • references/mini-spec-mode.md
  • references/modes.md
  • references/prototype-cycle.md
  • references/review-canvas.md
  • references/shape-check.md
  • references/tiers.md
  • references/validate-cycle.md
  • scripts/mold.dot
  • scripts/mold.pyz

What this skill tells the agent

/mold

Ceremony scales to the job. The Bounds pass picks one of three tiers from references/tiers.md: Quick writes a one-confirm mini-spec, Light runs only the dialogue modes the open forks need, and Full runs the whole Flow below. /cheese's tier-1 escalation enters mini-spec mode with no confirm; see ## Agent-invoked mini-spec mode.

Flow

  1. 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 into G-n clauses (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: one fast confirm, then ## Agent-invoked mini-spec mode. Upgrade the tier whenever the evidence changes; never downgrade silently.
  2. Route — choose the secondary mode from references/modes.md, announce it, and correct false premises first.
  3. 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.
  4. 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.
  5. Plan for approval — run the fresh-context fork-coherence taste test with python3 skills/mold/scripts/mold.pyz taste-test and persist its digest-bound pass; a failure reopens only named forks, and the third failed verdict stops. Light with one expected curd stops here: no planner; finalize the bounded spec with python3 skills/mold/scripts/mold.pyz finalize and retain its canonical HandoffPointer. Otherwise dispatch a typed PlannerRequest, validate its PlannerResultWriterView (one retry, then stop before the handshake), normalize on the host, and persist only the typed PlannerResult and CurdPlan. Present the plan's semantic curds and waves at the handshake. See references/curdle.md § "Pre-approval typed planner dispatch".
  6. Two-key handshake — Before extraction, the user and agent must agree to the draft spec and displayed typed plan. The user provides an explicit verb. The agent performs a coherence self-check. Neither key changes nor disappears. See references/handshake.md.
  7. Curdle — Resolve the durable spec path with SPEC=$(python3 skills/mold/scripts/mold.pyz artifact-path specs <slug>). Phase one writes the local artifact and write-ahead prepared state before any external call. It writes the approved spec at "$SPEC". It also writes the host-validated PlannerResult and CurdPlan. It also writes local issue drafts and the session's non-obvious decisions as durable ADRs. Phase two publishes approved follow-ups. Retain the prepared recovery state when an external capability is unavailable or publication fails. Phase two reconciles their state and references into the durable spec before any handoff. The resolved spec path is internal; Cook receives only the finalizer's canonical HandoffPointer.
  8. Finalize and hand off — after reconciliation, run `python3 skills/mold/scripts/mold.pyz curd-count`, then finalize through ## Handoff. Full and Light both hand that pointer to Cook. Dispatch only the user's non-stop selection.

Portability: rules. Slash commands are host renderings, not the control model.

Follow-up candidates

Every non-goal and explicit dialogue deferral becomes a [FOLLOW-UP?] follow-up candidate. Dispose of the set before the two-key handshake; details: references/handshake.md § Follow-up disposition.

Modes

ModeUse whenGoal
ExploreThe idea is vagueIdentify the real problem and pain point
GroundA file, bug, or existing doc is namedVerify facts against evidence
ShapeThe goal is known but approach is openCompare viable options (Do Nothing always included)
SketchInterfaces or module boundaries matterLock responsibilities and seams
GrillA favoured approach needs stress-testingSteelman each item, then put every design-changing call to the user as a fork
DiagnoseA symptom, failure, or trace is suppliedBuild a Loop → reproduce → hypothesize → confirm root cause

Modes: references/modes.md. Evals: references/evals.md. Canvas: review-canvas.md.

Agent-invoked mini-spec mode

/cheese's tier-1 escalation calls /mold after the call site passes all cook fast-path checks, and the Quick tier enters the same mode after its one confirm. It produces a spec without design dialogue. This mode skips the rest of the Flow above. Derive a slug. Write the mini-spec. Parse its declared gate applicability. Finalize through ## Handoff and return its canonical HandoffPointer to Cook. Append --hard when the user passed it.

The two-key handshake does not run in this mode. The agent-introduced-scope check still runs implicitly. Every distinguishing noun must come from the user's input or tier-2 /culture//briesearch synthesis. Never add one silently.

Full procedure, the mini-spec schema, and the ## Provenance rules: references/mini-spec-mode.md.

Preferred tools and fallbacks

Call source-code search, read, and edit backends according to `code-intelligence-routing.md`. Shape checks use semantic caller search plus dependency context; procedure: references/shape-check.md.

Mold-specific tools beyond source-code routing:

NeedPreferFallback
External validation/briesearch with Context7/Tavilyuser docs, repo docs, or note as unverified
Wiki grounding (Ground entry + decision points; scope per references/grounding.md § When to probe)mcp__hallouminate__list_corpora + mcp__hallouminate__ground on repo:<repo>:wikirecord hallouminate: absent in the ledger, proceed on code evidence, and cap at speculating when design rationale is central

The grounding record precedes the first structured question: the ledger holds a probe result — citations or hallouminate: absent — first. Mark each unsupported claim [?] until settled.

Sub-agent context gate

/mold owns the dialogue, contradictions, and approval state. Do not delegate these items. Delegate evidence-heavy code work to a fresh-context explorer and external research to a researcher. Shape uses an explorer digest as input. Record parent-context exploration as a degraded path. See references/context-budget.md for budgets and checkpoints.

Gate graph

python3 skills/mold/scripts/mold.pyz gate-graph --render dot|svg|png|mermaid renders one gate model. Image targets use Mermaid when Graphviz is unavailable. Tests keep gate nodes aligned with the handshake checklist. See references/gate-graph.md.

Gate applicability and Test Contracts

Every Mold-produced spec carries a provenance marker in frontmatter:

source: mold-handshake | agent-mini-spec

Every spec declares gate_applicability:

gate_applicability:
  disposition: red-required | not-applicable
  work_class: behavior | docs-only | refactor-only | test-only | appearance-only
  ui_surface: browser | non-browser | not-applicable

ui_surface is required on the Mold production path: browser means every Test Contract names an existing browser/E2E interface and outer seam,

Use this skill in a project

Open any RiverX project, search the Skills panel for paulnsorensen/easy-cheese/mold, and install it in one click.

Use this skill