整体流程见 README;每个字段怎么填见 格式说明。本文只讲第一阶段怎么做。
这一阶段主流程自己全程做,不派给子助手。因为"怎么切步骤、补哪些没写的环节、怎么把数据流连起来"这三件事是连在一起的——靠的是同一份"我读懂了这篇案例"的理解,换个助手就得重读原文、重新理解,既费劲又容易前后不一致。
分三小步:
| 小步 | 做什么 | 产出 |
|---|---|---|
| 1.1 | 读懂 + 判断有几个工序 —— 通读原文(含配图)想清楚:(a) 这篇案例里有几条独立的做法(一条还是多条);多条时,把每条的名字、最终产物、大概几步、属于什么工艺各列出来。(b) 认出最终产物、用到的外部工具、以及那些"没明说但少不了"的前置准备。 | understanding.md(按工序分章节写) |
| 1.2 | 切步骤 + 填单步骨架 —— 一次性写出 workflow.json 骨架:顶层是 procedures 数组,每个工序含 id / name / purpose / category / platform / author / declarations / steps。每一步先填:编号 / 类型(普通步还是控制块) / 动作(先用大白话写)/ 工具 / 指令 / 输入 / 输出(含类型、值,每个输出起个编号如 s2o1;"来源/去处"先空着)/ 目的 / focus。原文没写、你补出来的输入输出,标上 inferred: true 和原因。"作用、类型归类、实质、形式"这些留到第二阶段填,这一步别填。 |
workflow.json(骨架版) |
| 1.3 | 把数据流连起来 —— 给每个输入输出补上"来源/去处":输入写 ← 上游某输出的编号(如 ← s2o1)、← 工序输入、← 某编号[i](循环里逐个取);输出写 → sN、→ 某列表.追加。连完自查:每个输入引用的编号都能在前面找到对应输出。连错就回 1.2 改。几十处要连时用 wf-patch.py 一次过(见下),别写脚本硬塞。 |
workflow.json(补好"来源/去处") |
⚠ 跟原文的章节标题无关:不管原文把某段叫"案例示范"还是"进阶玩法",只要满足下面三条,就算一条独立工序。判断的单位是"一条完整的 输入→最终产物 链",不是原文的段落结构。
怎么扫:以原文里每一张出现的成品图(或明确写出的最终产物)为起点,逐个看它有没有对应的"输入→做法"链条。有就记为一个候选工序,再用下面三条筛。别按段落扫。
边界判断:
原文常省略一些理所当然的输入输出,你要补上:
补出来的输入输出标上 inferred: true 和原因(让后面复核),别悄悄塞进去。具体标法见格式说明第三节。
原文里如果有"对每个 X 重复""同时做几个版本""分情况",切步骤时要展开成控制块 + 子步,别硬压成一个步骤;循环里取数据/攒结果走"来源/去处"的 [i]、.追加。详见格式说明第四节。
← 某编号)都能找到已存在的输出编号,或是 ← 工序输入、字面量。[i] 在循环里,[-1] 指最近一项)。workflow.json 由你直接演化,绝不写 Python 脚本去生成/批改它(脚本拼 JSON 容易踩转义坑、把文件弄坏)。几十处"来源/去处"用 wf-patch.py 一次搞定:
_scratch/anchors.json —— [{"path":"p1.s1.inputs[0].anchor","value":"← s0o1"}, ...],每条都是你的判断(连到哪个编号是语义决定,不是机械套用);python spec/tools/wf-patch.py --workflow workflow.json --patch _scratch/anchors.json。工具负责安全写 JSON + 检查格式(有一条不合法就整批不写),你从不直接碰 JSON 文本。零星单处改,用 Edit 就行。路径写法见 tools.md。
"来源"连好后,跑一次 python spec/tools/wf-patch.py --workflow workflow.json --resolve-passthrough。对那些"原样接收上游输出"的输入(来源是 ← 某编号),你不用手抄上游内容——只在源头那个输出里填一次真内容,工具会顺着编号把它逐字抄到所有引用处("值"先留空即可)。别把"(同上)"这种引用当最终内容留着(检查会报,见格式说明第二节"值")。