关于 mold
mold 是用于澄清目标、处理设计选择并生成已验证规格的开发技能。流程可从快速迷你规格扩展到完整规划,并要求在执行 Cook 前明确选择范围。
主要功能
- 01快速、轻量与完整规划层级
- 02目标与非目标梳理
- 03基于证据的设计讨论
- 04接口与模块形状检查
- 05已验证的规格草案
- 06有界工作的类型化规划
适用场景
- 01将模糊想法整理为规格
- 02调查已报告的缺陷或故障
- 03在实施前比较方案
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ paulnsorensen/ easy-cheese --skill mold安装后在 Claude Code 中输入/mold确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
wedge.tomlreferences/adr.mdcommands.mdcontext-budget.mdcurd-count.mdcurdle.mdearly-curds.mdevals.mdfork-questions.mdgate-graph.mdgrounding.mdhandoff-menus.mdhandshake.mdmini-spec-mode.mdmodes.mdprototype-cycle.mdreview-canvas.mdshape-check.mdtiers.mdvalidate-cycle.mdscripts/mold.dot详细介绍
/mold
仪式的规模与任务相匹配。Bounds 阶段会从 references/tiers.md 中选择三个级别之一:Quick 编写经过验证的迷你规格,Light 仅运行未决分支所需的对话模式,Full 则运行下方的完整流程。保存规格无需提取审批。Cook 仍需用户明确请求。/cheese 的 tier-1 升级会进入迷你规格模式;参见 ## Agent-invoked mini-spec mode。
流程
- 范围界定 — 打开
Goal / Decided / Asking / [AGENT-DECIDED]台账,将目标固定为一句话;只有用户明确提出分支选择时才能更改目标。将目标拆分为G-n条款(references/handshake.md§ 目标覆盖)。用一行[AGENT-DECIDED]映射每项输入的目标和非目标;只有目标确实未知或触发杠杆条件时才询问用户。运行形态检查,然后说明等级及其原因(references/tiers.md)。此处可快速退出至## Agent-invoked mini-spec mode,无需经过写入审批环节。证据发生变化时,升级等级;绝不默默降级。 - 路由 — 从
references/modes.md选择次级模式,说明选择,并先纠正错误前提。 - 对话 — 由用户选择会产生重大影响的分支。根据
../age/references/voice.md中的杠杆条目判断分支是否会产生重大影响。其他所有分支均标记为[AGENT-DECIDED]。提问前提供选项、权衡和证据。通过代码、验证周期 或原型周期为每项关键主张提供依据。解决所有矛盾。连续提出三个分支问题后,或应用户要求时,呈现决策图。 - 草拟 — 对跨模块工作或涉及新公共接口的工作,运行
references/shape-check.md。将身份和角色名词关联到代码中的指代对象。记录 Placement 区块;不写正文。 - 规划与验证 — 使用
python3 skills/mold/scripts/mold.pyz taste-test运行新上下文分支一致性检验;若失败,只重新审视指定的分支,第三次未通过则停止。品味审查为规格提供指导,但不是 Cook 执行依据。对于已绑定的 curd 工作,分派类型化的PlannerRequest,验证其PlannerResultWriterView(重试一次,然后在不提供可运行输入的情况下保存),并在宿主端规范化。明确的单 curd 任务也可以不使用规划器,直接使用独立 Cook。作出任何 Cook 选择前,展示语义 curd 和执行波次。参见references/curdle.md§“类型化规划器分派”。 - 就绪检查 — 保存前,运行一致性自检和严格规格验证。若仍有未解决的上级工作,则保存草稿;在
execution_holds:中记录每项暂停原因。只要仍有条目,最终定稿就会拒绝标记为就绪。写入无需事先获得用户批准。运行 Cook 前,必须要求用户明确选择范围和路由。参见references/handshake.md和references/early-curds.md。 - Curdle — 使用
python3 skills/mold/scripts/mold.pyz artifact-path specs <slug>解析持久规格路径,并从 JSON 回复中读取path。写入经过验证的草稿并读回。保留类型化计划证据和未解决的暂停原因。编写本地 issue 草稿和持久决策;只有各自获得批准后,才发布后续事项。Mold 继续塑造上级任务期间,具体且范围明确的 curd 可使用references/early-curds.md。选定的规格路径可传入独立 Cook;已绑定的 curd 执行还会接收经过验证的直接引用,而非指针。 - 提供 Cook 选项或继续塑造 — 协调完成后,运行
python3 skills/mold/scripts/mold.pyz curd-count。已保存的草稿不等于执行请求。若用户选择执行已绑定的 curd,则运行scripts/mold.pyz finalize,并且只传入已就绪的直接输入。明确的独立任务无需机器定稿,可通过规格路径进入 Cook。否则继续塑造,或停止,不发出 Cook 命令。
可移植性:规则。斜杠命令是宿主环境的呈现形式,不是控制模型。
后续候选事项
每个非目标和明确延期的对话事项都会成为一个 [FOLLOW-UP?] 后续候选事项。在移交给可运行的 Cook 之前,必须处理完所有候选事项;详情见:references/handshake.md § 后续事项处理。
模式
| 模式 | 适用场景 | 目标 |
|---|---|---|
| Explore | 想法比较模糊 | 找出真正的问题和痛点 |
| Ground | 已指出文件、Bug 或现有文档 | 根据证据核实事实 |
| Shape | 目标明确,但实现方式尚未确定 | 比较可行选项(始终包含不采取行动) |
| Sketch | 接口或模块边界很重要 | 明确职责和衔接点 |
| Grill | 需要对倾向采用的方案进行压力测试 | 先为每个选项构建最有力的论据,再将每个会改变设计的决定作为分支问题交给用户 |
| Diagnose | 已提供症状、故障或跟踪记录 | 构建循环:复现 → 假设 → 确认根因 |
模式:references/modes.md。评估:references/evals.md。画布:review-canvas.md。
Agent 调用的迷你规格模式
/cheese 的第 1 级升级流程会在调用点通过所有 Cook 快速通道检查后调用 /mold。Quick 级别无需经过写入审批环节即可进入同一模式。此模式会生成经过验证的草稿,不进行设计对话。返回规格文件路径。规格通过验证后,展示规格并直接提出一个 Cook 问题。用户明确选择后,对于清晰、独立的工作,调用 /cook --spec <path>;不要凭空编造指针,也不要要求规划器。若用户传入了 --hard,则附加该参数。
此模式不会运行完整的一致性检查清单。仍会隐式进行 Agent 引入范围检查。每个具有区分性的名词都必须来自用户输入,或来自第 2 级 /culture//briesearch 综合结果。绝不可静默添加名词。
完整流程、迷你规格架构和 ## Provenance 规则:references/mini-spec-mode.md。
首选工具及后备方案
根据 code-intelligence-routing.md 调用源代码搜索、读取和编辑后端。Shape 检查使用语义调用方搜索以及依赖关系上下文;流程见:references/shape-check.md。
Mold 专用工具(源代码路由之外):
| 需求 | 首选 | 后备方案 |
|---|---|---|
| 外部验证 | 使用 Context7/Tavily 的 /briesearch | 用户文档、仓库文档,或注明未经验证 |
Wiki 信息核实(Ground 入口和决策点;范围见 references/grounding.md § 何时探查) | 对 repo:<repo>:wiki 使用 mcp__hallouminate__list_corpora + mcp__hallouminate__ground | 在记录表中记录 hallouminate: absent,根据代码证据继续,并在设计理由是核心内容时将结论限制在 speculating |
**核实记录必须先于第一个结构化问题:**记录表首先保存探查结果——引用资料或 hallouminate: absent。在问题得到解决前,将每条未经支持的声明标记为 [?]。
子 Agent 上下文门槛
/mold 负责对话、矛盾处理和保存审批状态。不要委派这些事项。将需要大量证据的代码工作委派给全新上下文的 explorer,将外部研究委派给 researcher。**Shape 使用 explorer 摘要作为输入。**将父上下文中的探索记录为降级路径。预算和检查点见 references/context-budget.md。
门控图
python3 skills/mold/scripts/mold.pyz gate-graph --render dot|svg|png|mermaid 可渲染一个门控模型。若 Graphviz 不可用,图像目标会使用 Mermaid。测试会使门控节点与握手检查清单保持一致。参见 references/gate-graph.md。
规格来源信息与测试契约
每份 Mold 生成的规格都在 frontmatter 中带有来源标记:
source: mold-handshake | agent-mini-spec | mold-curd-mini-spec
规格没有 disposition 字段。## Test Contracts 为可选项:规格可以包含该部分,但任何门控都不要求必须包含。行级规则见:references/curdle.md
§ 测试契约。
叉路品味门
python3 skills/mold/scripts/mold.pyz taste-test 会将评审结果绑定到草稿 SHA256 和每个已确定的叉路。过时、不完整或受阻的评审结果均不通过;失败时只重新开启指定的叉路,共两轮。已批准的规格会将元数据原样传递给 /cook --spec <spec-path>(仅当用户选择了 --auto 时才添加该参数),用于独立工作;绑定的凝乳工作使用 /cook --auto --result <result-path>。
每个叉路都应出现在 Approach、Interface sketches 和 Acceptance 中;如果草稿包含 Test Contracts,也应出现在其中。不要重命名这些章节。给相关行加上叉路 ID 标签,并在分发前运行 taste-test --precheck。goal 必须在 Problem statement 中原文保留(goal-drift);每个 G-n 条款都必须带有 Acceptance 或处置标签(goal-coverage)。参见 references/curdle.md § Spec template 和 references/gate-graph.md。
执行门
Mold 可以在无需审批轮次的情况下保存已验证的父规格或早期凝乳迷你规格。Agent 一致性检查仍决定产物声称哪些内容已确定。在提供任何 Cook 选项之前,打印范围缩减差异(taste-test --coverage)和范围审计表。未解决的决策仍应明确列为待处理事项,而不能视为默认批准。参见 references/handshake.md。
绝不能仅凭已保存的规格、沉默、--auto 或一般性设计批准来启动 Cook。用户必须选择确切的凝乳或父级范围,以及 Cook 路径。范围或计划发生变化时,必须重新选择。绑定的最终确认失败时,会留下没有可执行引用的已保存草稿。参见 references/early-curds.md。
--hard
Mold 从不运行元认知检查。只有 Plate 会在已验证产物边界运行该检查。如果用户传入了该标志,Mold 会在其生成的每条 Cook 命令后附加 --hard。Cure 会将同一标志传递给 Plate。参见 ../hard-cheese/references/composition.md。
移交
流水线: culture → [mold] → cook (⇄ press) → age → cure → plate
Curdle 的第二阶段完成后,运行 python3 skills/mold/scripts/mold.pyz curd-count 生成影响范围摘要。草稿不会提供 Cook 命令。用户明确选择 Cook 后,独立工作应保留所选规格路径。绑定的凝乳工作会分发打印出的最终确认命令 /cook --auto --result <result-path>;该结果包含 request_id、spec_ref、planner_result_ref、plan_ref 和精确的 coverage。通过共享移交门(策略)征求用户选择;绝不要预先选择。适用性、契约和品味评审元数据保持不变。如果用户传入了 --hard,则附加该参数。
摘要中的 mode 仅用于指引,不是技能或 Cook 门。根据 decomposable、candidate_curds、verdict 和 mode 呈现固定的影响范围菜单;参见 references/handoff-menus.md。
规则
- 对话优先;产物是副产品。
- 分层字母选项。 影响重大的分岔必须通过
../cheese/references/ask-user-question.md中的提问传输方式提供A/B/C/D选项。绝不能默默替用户决定。影响杠杆线以下的事项默认标记为[AGENT-DECIDED]:自行做出决定,在决策记录中记下一条可否决的替代方案,并且不要提问。只有先在对话中讨论过其深度,分岔才有效。每个结构化问题前都要先用可见文字权衡该分岔及相关证据。只保留一个待选问题。 - 分岔卡片。 每个重大问题之前都要展示分岔卡片:说明它决定什么、会影响什么,以及用符号表或纯文本图表展示各个分支。提供
Explain more作为选项;如果回复不明确,就用更多上下文重新呈现同一个分岔(fork-questions)。 - 杠杆级别标签。 每个
Asking分岔都要指出它会影响的验收标准、公共接口或非目标。若分岔不影响其中任何一项,或位于杠杆线以下,则标记为[AGENT-DECIDED]或后续候选事项,绝不能向用户提问。 - 决策记录。 每轮都要打印
Goal / Decided / Asking / [AGENT-DECIDED],并逐字写出目标。Curdle 将重大决定持久化到 ADR,次要决定写入规格说明。品味评判必须恰好一次点名每项已确定的重大条目。 - 决策图与分岔轮次上限。 连续三轮分岔均未增加新证据时,或连续三个分岔未通过杠杆级别标签检查时,或用户要求决策图时,停止。展示已完成的分岔、剩余分岔,以及就绪或受阻的判定。第四轮需要新的依据、委派生成的摘要,或
/wheypoint检查点。决策图展示决策记录的状态,不会创建产物。 - 不要实现代码。
- 不要在 Mold 中编写生产文件。保存规格说明不代表获得 Cook 的授权。
- 不要默默确定尚不明确的说法。
- 使用
../age/references/voice.md中的共享语气内核。纠正错误前提。将每项关键主张的置信度标记为certain | speculating | don't know。在驳斥之前先提出最有力的论据。将重大分岔交由用户决定;深度用于完善问题,不能替代提问。
生成的 ../cheese/references/schema-intertwine.md 列出了所有已发布的架构及其契约模型。
Agent 解析
通过 ../cheese/references/agent-resolution.md 解析委派任务。
| 工作 | 首选类型 | 权限/隔离 | 最低能力 | 工作量 | 后备方案 |
|---|---|---|---|---|---|
| 探索代码库 | explorer | 只读、新上下文 | 默认 | 中等 | 兼容的 explorer,然后是 general |
| 研究外部约束 | researcher | 只读、新上下文 | 默认 | 中等 | 兼容的 researcher,然后是 general |
| 制定计划以供审批 | planner、general | 只读、新上下文 | 强 | 高 | 兼容的 planner,然后是 general |
规范 Mold 规格说明或迷你规格说明包含共享的 agent_resolution 块。
命令:references/commands.md。