整体三阶段流程 + 文件清单见 README 的"加载指南 · 总览";字段定义 + 推断补全标记见 fields.md。本文只讲阶段一执行。
主 Agent 不切换的理由: 切片决策、抽取的逻辑补全、跨步引用闭合三件事认知耦合, 同一份"工序心智模型"贯穿三步; 换 Agent 要重读源材料 + 重建模型, 浪费 context, 且易在切片/补全决策上不一致。
| 子步 | 任务 | 关键产物 |
|---|---|---|
| 1.1 | 思考分析 + 多工序判断 — 通读原文 (含图片) 建立心智模型: (a) 判断本 case 含几个独立工序 (单/多), 多工序时列出每个 procedure 名字 + 终态产物 + 大致步骤数 + 工艺类型; (b) 识别终态产物、外部工具依赖、隐含的工艺规约/预准备需求 | understanding.md (按 procedure 分章节) |
| 1.2 | 步骤切片 + 单步骨架 — 一次 Write workflow.json 骨架. 顶层 {procedures: [...]}, 每个 procedure 含 {id (e.g. p1-simple/p1), name, purpose, category, platform, author, declarations, steps}. 每个 step 抽: id / kind / action (自然语言) / via / inputs[] / outputs[] (含 type/name/value, anchor 暂留空) / instruction / feature / control / intent / focus. 推断隐含 IO 标 inferred: True, inferred_reason: "...". effect/类型归一/substance/form 留到 Phase 2, 不要在 Phase 1.2 就填. |
workflow.json (Write 骨架版, 不含 anchor/effect/type/sub/form) |
| 1.3 | 跨步引用闭合 (quality gate) — 给每个 IO.anchor 字段加引用: input.anchor=← sN.var / ← 工序输入 / ← 容器[i]; output.anchor=→ sN.var / → 容器.追加. 命名归一, 失败回 1.2 改 step. 几十处 anchor 用 wf-patch.py --patch 一次过 (见下), 不要写 Python 脚本批量塞. |
workflow.json (wf-patch 加 anchor) |
1.1 多工序的判断标准
⚠️ 判断与原文段落角色无关:不论原文把它定位为"案例示范"、"方法论说明"、"案例欣赏"还是"进阶玩法",只要满足下列三条,即为一个独立工序。工序的识别单元是一条完整的输入→终态产出链,不是原文的章节结构。
扫描单元:以原文中每一张出现的成品图(或明确描述的终态产物)为起点,逐一检查它是否有对应的独立输入→做法链条。有则记为一个候选工序,再用下列三条标准过滤。不要以章节/段落为扫描单元。
判断边界:
1.2 的逻辑补全: 原文常省略隐含输入/输出, 抽取者要主动补:
补全的 IO item 标 inferred: True, inferred_reason: "原文方法 3 只说..., 但工艺需要...", 让 review 阶段确认; 不要默默插入. 标记方式详见 fields.md "推断补全标记"。
1.2 控制流建模: 源里有循环 / 并行 / 分支 / 抽样时, 切片要展开成 block + nested 结构 (不要拍平成单个标记步), 容器流走 anchor [i] / .追加。详见 control-flow.md。
1.3 闭合检查项:
[i] 在循环内, [-1] 指最近一项)1.3 怎么批量加 anchor (重要): workflow.json 由你直接演化, 绝不写 Python 脚本生成 / 批改它 (脚本拼 JSON 易踩转义坑把文件搞坏). 几十个 anchor 用 wf-patch.py 一次过:
_scratch/anchors.json —— [{"path":"p1.s1.inputs[0].anchor","value":"← s0.x"}, ...], 每条都是你的显式决策 (anchor 指向谁是语义判断, 不是机械映射);python spec/tools/wf-patch.py --workflow workflow.json --patch _scratch/anchors.json。工具负责安全写 JSON + 校验 anchor 格式 (非法整批不写), 你从不碰 JSON 序列化。零星单处改用 Edit 即可。完整路径语法见 tools.md §2。
1.3 透传 value 自动回填: anchor 闭合后, 跑 python spec/tools/wf-patch.py --workflow workflow.json --resolve-passthrough。原样透传的输入/directive (anchor ← sN.x) 你不用手抄上游 prompt 全文 —— 只在源头 step 的 output 填一次真值, 工具顺 anchor 把它逐字抄到所有透传位置 (value 留空或先写引用占位都行, 工具会替换)。禁止把「(同 sN 输出)」这类引用占位当最终 value 留着 (lint 会报, 见 fields.md value 行)。