05 · DATA/四类文档

四类文档

PRD / SDD / units.json / runs/result.json — 它们之间是派生关系,构成系统的唯一真源。本页给出完整 schema 与示例。

派生关系

prd.html 人类需求 sdd.html 含可机读 unit metadata units.json DAG 索引 integration/spec.json 端到端测试用例 runs/*/result.json 执行产物

四个文档逐一

<!-- PM Agent 维护,每次人类反馈追加 section -->
<article data-doc="prd" data-rev="3">
  <h1>Auto Auth System</h1>

  <section data-rev="1">
    <h3>登录</h3>
    <p>用户名密码登录,会话 7 天有效。</p>
  </section>

  <section data-rev="3" data-origin="yibo@2026-05-13">
    <h3>OAuth 登录</h3>
    <p>支持 GitHub OAuth。Token 刷新 ≤ 5s。</p>
  </section>

  <footer data-changelog>
    <p>rev 1 · init · 邮箱密码登录</p>
    <p>rev 2 · yibo · 加个人主页</p>
    <p>rev 3 · yibo · GitHub OAuth</p>
  </footer>
</article>

谁能写谁

文档写入者读取者
prd.htmlPM (通过 DocStore)Architect · Dashboard
sdd.htmlArchitect (通过 DocStore)Coder · Tester · Integrator · Triager · Dashboard
units.jsonArchitect (字段) + UnitRegistry (status)所有
integration/spec.jsonArchitectIntegrator
units/{id}/code/**CoderTester · Integrator · Triager (只读)
units/{id}/contract.jsonCoderTester · 其他 Unit Coder · Triager
units/{id}/tests/**TesterIntegrator
runs/{id}/result.jsonTester (L1) / Integrator (L2)LoopController · Triager · Dashboard
triage.jsonBugTriagerLoopController · Architect
history/**DocStore.archive()Dashboard diff 视图
agent-state/{agent}.jsonLoopController + Agent 工具Dashboard · recoverOnBoot
agent-state/{agent}-todo.jsonAgent (write_todolist · update_todo_item 工具)Dashboard · getProgress
agent-state/snapshots/*LoopControllerretry 时回放 · recover
timeline.ndjsonTimelineLogger (所有 source append)Dashboard 时间线 · audit
memory/devloop/{agent}/*.mdAgent (record_memory 工具)Agent 启动时注入 prompt

归档策略

每次 prd / sdd / units.json 被写时,旧版本自动移到 history/,命名规则:

  • history/prd-rev-{N}.html
  • history/sdd-rev-{N}.html
  • history/units-rev-{N}.json

Dashboard 的 PRD diff 视图直接读 history 做 section diff。无需 git。