mold — скилл для Claude Code: что делает и как установить
mold превращает сложное проектное решение в проверенную спецификацию через диалог. Скилл нужен перед изменениями с риском для архитектуры или данных.
npx skills add paulnsorensen/easy-cheese --skill mold -a claude-codeЧто делает mold
Скилл помогает разобрать цель, отделить решённое от открытых вопросов и выбрать подходящий режим: Explore, Ground, Shape, Sketch, Grill или Diagnose. Он проверяет факты по коду и связанным материалам, фиксирует границы модулей и готовит карту решений.
Внутри есть уровни Quick, Light и Full, ссылки на процедуры в references/, проверки связности и строгая валидация спецификации. Готовый документ сохраняется по пути, который возвращает python3 skills/mold/scripts/mold.pyz artifact-path specs <slug>, после чего mold может предложить передачу задачи в Cook.
Без python3 проверка taste-test через python3 skills/mold/scripts/mold.pyz taste-test не запустится. Для свободного обсуждения, прямой реализации и исследовательских вопросов предусмотрены /culture, /cook и /briesearch.
Какие задачи решает
- разобрать архитектурное решение перед реализацией
- проверить последствия авторизации или необратимых операций
- согласовать новый публичный интерфейс
- зафиксировать зависимости между модулями
- сохранить проверенную спецификацию для Cook
Примеры запросов агенту
- Запусти
/moldи помоги спроектировать авторизацию для этого проекта. - Сформируй спецификацию API для нового публичного интерфейса и проверь открытые решения.
- Проведи через
/moldизменение с необратимыми операциями и сохрани готовую спецификацию.
Как установить mold
1Через Skills CLI (Vercel)
npx skills add paulnsorensen/easy-cheese --skill mold -a claude-code2Вручную: положить файлы
~/.claude/skills/mold/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/mold/
1Через Skills CLI (Vercel)
npx skills add paulnsorensen/easy-cheese --skill mold -a codex2Вручную: положить файлы
.agents/skills/mold/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add paulnsorensen/easy-cheese --skill mold -a cursor2Вручную: положить файлы
.cursor/skills/mold/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install paulnsorensen/easy-cheese mold2Вручную: положить файлы
.github/skills/mold/SKILL.md1Через Skills CLI (Vercel)
npx skills add paulnsorensen/easy-cheese --skill mold -a gemini-cli2Командой платформы
gemini skills install https://github.com/paulnsorensen/easy-cheese --path skills/moldВручную: положить файлы
.devin/skills/mold/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add paulnsorensen/easy-cheese --skill mold -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о mold
Как установить mold в Claude Code?
Выполните npx skills add paulnsorensen/easy-cheese --skill mold -a claude-code, затем проверьте файл ~/.claude/skills/mold/SKILL.md.
Что делает mold?
Он ведёт диалог по сложному проектному решению, проверяет основания для выбора и сохраняет валидированную спецификацию. После этого задачу можно передать в Cook.
Чем mold отличается от /cook и /culture?
mold работает с проектированием и спецификацией. /cook предназначен для прямой реализации, а /culture — для свободного обсуждения без намерения создать артефакт.
Исходный текст
SKILL.md · MIT
---
name: mold
description: Turn a high-leverage design decision into a validated 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 validated mini-spec without a write-approval turn.
license: MIT
metadata: {dispatches-agents: true}
---
# /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
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 to `## Agent-invoked mini-spec mode` without a write-approval turn. 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](references/validate-cycle.md), or a [Prototype Cycle](references/prototype-cycle.md). 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 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 typed `PlannerRequest`, validate its `PlannerResultWriterView` (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. See `references/curdle.md` § "Typed planner dispatch".
6. **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. See `references/handshake.md` and `references/early-curds.md`.
7. **Curdle** — Resolve the durable spec path with `python3 skills/mold/scripts/mold.pyz artifact-path specs <slug>` and read `path` from 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 use `references/early-curds.md` while Mold continues shaping its parent. The selected spec path can enter standalone Cook; bound curd execution also receives validated direct refs, never a pointer.
8. **Offer Cook or keep shaping** — after reconciliation, run [`python3 skills/mold/scripts/mold.pyz curd-count`](references/curd-count.md). A saved draft is not an execution request. If the user selects bound curd execution, run `scripts/mold.pyz finalize` and 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](../cheese/references/harness-portability.md). 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 a runnable Cook handoff; details: `references/handshake.md` § Follow-up disposition.
## Modes
| Mode | Use when | Goal |
| --- | --- | --- |
| Explore | The idea is vague | Identify the real problem and pain point |
| Ground | A file, bug, or existing doc is named | Verify facts against evidence |
| Shape | The goal is known but approach is open | Compare viable options (Do Nothing always included) |
| Sketch | Interfaces or module boundaries matter | Lock responsibilities and seams |
| Grill | A favoured approach needs stress-testing | Steelman each item, then put every design-changing call to the user as a fork |
| Diagnose | A symptom, failure, or trace is supplied | Build a Loop → reproduce → hypothesize → confirm root cause |
Modes: references/modes.md. Evals: references/evals.md. Canvas: [review-canvas.md](references/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. The Quick tier enters the same mode without a write-approval turn. It produces a validated draft without design dialogue. Return the spec path. After the spec validates, show it and ask one direct Cook question. On explicit selection, dispatch `/cook --spec <path>` for clear standalone work; do not invent a pointer or require a planner. Append `--hard` when the user passed it.
The full coherence checklist 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`](../cheese/references/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:
| Need | Prefer | Fallback |
| --- | --- | --- |
| External validation | `/briesearch` with Context7/Tavily | user 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>:wiki` | record `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 save-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`.
### Spec provenance and Test Contracts
Every Mold-produced spec carries a provenance marker in frontmatter:
```yaml
source: mold-handshake | agent-mini-spec | mold-curd-mini-spec
```
A spec has no `disposition` field. `## Test Contracts` is optional: a spec may
include it, and no gate requires it. Row-level rules: `references/curdle.md`
§ Test Contracts.
### Fork taste gate
`python3 skills/mold/scripts/mold.pyz taste-test` binds the verdict to draft SHA256 and each settled fork. Stale, partial, or blocked verdicts fail; a failure reopens only named forks, with two rounds. Approved specs pass unchanged metadata to `/cook --spec <spec-path>` (add `--auto` only when the user chose it) for standalone work; bound curd work uses `/cook --auto --result <result-path>`.
Each fork appears in Approach, Interface sketches, and Acceptance, plus Test Contracts when the draft has them. Do not rename sections. Tag reflecting lines with fork id and run `taste-test --precheck` before dispatch. `goal` must survive verbatim in Problem statement (`goal-drift`); each `G-n` clause carries an Acceptance or disposition tag (`goal-coverage`). See `references/curdle.md` § Spec template and `references/gate-graph.md`.
## Execution gate
Mold may save a validated parent spec or early curd mini-spec without an approval turn. The agent coherence check still controls what the artifact claims as settled. Print the narrowing delta (`taste-test --coverage`) and the scope audit table before presenting any Cook option. Unresolved decisions remain visible holds, not implicit approvals. See `references/handshake.md`.
Never start Cook from a saved spec, silence, `--auto`, or a general design approval. The user must select the exact curd or parent scope and a Cook route. A changed scope or plan needs a new selection. A failed bound finalization leaves a saved draft without executable refs. See `references/early-curds.md`.
## --hard
Mold never runs the metacognitive check. Plate alone runs it at the
verified-artifacts boundary. Mold appends `--hard` to every Cook command that
it emits when the user passed the flag. Cure forwards the same flag to Plate.
See `../hard-cheese/references/composition.md`.
## Handoff
**Pipeline:** culture → **[mold]** → cook (⇄ press) → age → cure → plate
After Curdle's phase two finishes, run [`python3 skills/mold/scripts/mold.pyz curd-count`](references/curd-count.md) for the blast-radius digest. A draft offers no Cook command. On explicit Cook selection, retain the selected spec path for standalone work. Bound curd work dispatches the printed finalize command, `/cook --auto --result <result-path>`; the result carries `request_id`, `spec_ref`, `planner_result_ref`, `plan_ref`, and exact `coverage`. Prompt through the shared handoff gate ([policy](../cheese/references/handoff-gate.md)); never pre-select. Keep applicability, contract, and taste review metadata unchanged. Append `--hard` when the user passed it.
The digest's `mode` is orientation, not a skill or Cook gate. Render the fixed blast-radius menu from `decomposable`, `candidate_curds`, `verdict`, and `mode`; see `references/handoff-menus.md`.
## Rules
- Dialogue first; artifacts are the by-product.
- **Tiered lettered options.** Consequential forks use `A/B/C/D` choices via the question transport at `../cheese/references/ask-user-question.md`. Never decide them silently. Everything below the leverage line is `[AGENT-DECIDED]` by default: make the call, log a one-line vetoable alternative in the ledger, and do not ask. A fork is valid only after its depth was contributed in-dialogue first. Precede every structured question with visible prose that weighs the fork and the evidence. Keep one open picker.
- **Fork cards.** Before each consequential question, show a fork card: what it decides, what it moves, and each branch as a symbol table or plain-text graph. Offer `Explain more` as a choice; an unclear reply re-renders the same fork with more context ([fork-questions](references/fork-questions.md)).
- **Altitude tag.** Every `Asking` fork names the acceptance criterion, public seam, or non-goal it moves. A fork that moves none, or that sits below the leverage line, is `[AGENT-DECIDED]` or a follow-up candidate, never a user question.
- **Decision ledger.** Each round prints `Goal / Decided / Asking / [AGENT-DECIDED]`, the goal verbatim. Curdle persists consequential decisions to [ADRs](references/adr.md) and minor ones to the spec. The taste verdict names every settled consequential entry exactly once.
- **Decision map and fork-round cap.** Stop after three consecutive fork rounds that add no new evidence, or three consecutive forks that fail the altitude tag, or when the user requests a decision map. Show completed forks, remaining forks, and a ready or blocked verdict. A fourth round requires new grounding, a delegated digest, or a `/wheypoint` checkpoint. The map shows ledger state. It does not create an artifact.
- Do not implement code.
- Do not write production files in Mold. Saving a spec does not authorize Cook.
- Do not silently settle uncertain claims.
- Apply the shared voice kernel at `../age/references/voice.md`. Correct false premises. Mark each critical claim's confidence as `certain | speculating | don't know`. Steelman before you dismiss. Put consequential forks to the user; depth informs the question, never replaces it.
The generated [`../cheese/references/schema-intertwine.md`](../cheese/references/schema-intertwine.md) lists every published schema and its contract model.
## Agent resolution
Resolve delegates through [`../cheese/references/agent-resolution.md`](../cheese/references/agent-resolution.md).
| Work | Preferred types | Permissions/isolation | Minimum power | Effort | Fallback |
| --- | --- | --- | --- | --- | --- |
| Explore the codebase | explorer | read-only, fresh-context | default | medium | compatible explorer, then general |
| Research external constraints | researcher | read-only, fresh-context | default | medium | compatible researcher, then general |
| Plan for approval | planner, general | read-only, fresh-context | powerful | high | compatible planner, then general |
The canonical mold spec or mini-spec carries the shared `agent_resolution` block.
Commands: [`references/commands.md`](references/commands.md).
© paulnsorensen · MIT · paulnsorensen/easy-cheese