tools.md 2.41 KB

PRD Planning 工具箱

你的活只有三步:读上游契约 → 写 PRD → 写回执。工具用得越少越好。

🚨 发 JSON 的铁律:任何带 JSON 的内容,一律用文件写入工具直接写文件, 绝不在 bash 命令里内联 JSON 字符串(多重双引号会让工具调用崩溃并陷入死循环)。 JSON 里不许出现真实换行符。


1. 读输入

R=data/companies/<公司ID>/runs/<rootRunId>

# a) 原始 task-goal
cat $R/artifacts/task-goal.json

# b) 上游 brd-planning 的契约 —— 提示词会给到它的路径(下游只看契约,看不到实现)
cat <提示词给的 brd 节点目录>/contract.json
cat <提示词给的 brd 节点目录>/brd.md

上一轮的 remediation_note 由引擎在提示词里带给你。

❌ 提示词没给到路径的节点目录一律不要翻——节点私有目录彼此隔离 (27-P3/P4 §四.A.5, 照搬 DevLoop CONVENTIONS.md §12「下游只能看到上游的契约,看不到实现」)。 上游没给够,就是 input_underspecified,不要自己翻墙去找。

2. 写三份产出(全部在你自己的目录里)

文件 内容 谁读
prd.md PRD 正文 sdd-planning / goal-benchmark / planner-validator
contract.json {"exports": {...}},见 agent.md 引擎(算 hash 决定级联)+ 下游节点
attempt-<n>.json 本轮回执,schema: "work-product/v1" 引擎(判本节点成功/失败)

目录的绝对路径由引擎在提示词的「节点产物目录」一段里给出。 <n> 是本轮 attempt 序号;不要覆盖上一次 attempt 的文件。

3. 你不该用的工具

别用 为什么
写代码 / 建工程目录的一切 你产出的是文档。写代码是 org-coder 那个 org node 的活
node server/services/goal-contract.js put … 写验收契约是 goal-benchmark 的特权(writesArtifacts: true)
任何写 $R/artifacts/ 的动作 共享产物区对你只读(§四.A.5)
node bin/lemon.js task transition 阶段流转由图的边提供,节点内部不再跑四段式(§九bis)
读提示词没给到的节点目录 隔离规则,见上
直接写 data/ 下的 sqlite 状态由引擎从你的 attempt-<n>.json 里读走并落库