# 填好的最小示例(虚构的 notes-web 项目)。可用 scripts/validate_tasks.py 校验通过。 version: 1 updatedAt: "2026-07-06T09:40:00+08:00" source: "Coordinator (PM) Agent" kitVersion: "0.3.0" project: name: "notes-web" repoPath: "/home/dev/notes-web" baseUrl: "http://localhost:5173" devWorktree: "/home/dev/notes-web-wt/fix-preview" summary: verified: ["BUG-002"] open: [] failedRetest: [] leftovers: ["BUG-003"] tasks: - id: "BUG-002" type: "bug" title: "预览变更点击后不显示 diff 行" priority: "P0" status: "verified" assignee: "developer" component: "web/app/fix/page.tsx" specRefs: - "docs/spec/fix-preview.md#preview" testRefs: - "tests/browser/cases/01-preview.md" description: > 用户在 /fix 页点击“预览变更”后,确认区不渲染 API 返回的 diff。 stepsToReproduce: - "打开 /fix?fileId=1" - "搜索并选择候选项" - "点击“预览变更”" expected: > 确认区出现 title、修改前值、修改后值、coverChanged 提示四行。 actual: > API 返回 code=0,但页面确认区为空。 evidence: browser: "确认区 DOM 为空,无 diff 行" api: "POST /api/fix/preview -> code=0, 含 diff 字段" logs: "无报错" verification: commands: - "npm run build" - "curl -s -X POST localhost:5173/api/fix/preview -d @fixtures/preview.json" browser: page: "/fix?fileId=1" checks: - "预览后出现 4 行 diff:title/before/after/coverChanged" dispatch: taskId: "orca-task-88" dispatchId: "orca-disp-91" worker: "dev-worker-1" rounds: - round: 1 result: failed evidence: "只渲染了 title,缺少 before/after/coverChanged" - round: 2 result: passed evidence: "复测 4 行 diff 全部出现,取消不触发写入" resolution: fixedBy: "dev-worker-1" verifiedBy: "test-worker-1" verifiedAt: "2026-07-06T09:38:00+08:00" leftoverReason: null - id: "BUG-003" type: "bug" title: "并发保存偶发覆盖他人修改" priority: "P1" status: "leftover" assignee: "developer" component: "server/store/notes.go" specRefs: - "docs/spec/concurrency.md" testRefs: [] description: > 两个会话同时保存同一条 note 时,后写覆盖先写,无冲突提示。 stepsToReproduce: - "会话 A、B 同时打开 note 42" - "A 保存,B 保存" expected: > B 保存时应检测到版本变化并提示冲突,而非静默覆盖。 actual: > B 直接覆盖 A 的修改,无提示。 evidence: api: "两次 PUT /api/notes/42 均返回 200,无版本校验" verification: commands: - "go test ./server/store/..." browser: page: "/notes/42" checks: - "并发保存时后写方收到冲突提示" dispatch: taskId: "orca-task-90" dispatchId: "orca-disp-95" worker: "dev-worker-1" rounds: - round: 1 result: failed evidence: "加了版本号但未在写入路径校验" - round: 2 result: failed evidence: "校验只覆盖 API,未覆盖批量导入路径" - round: 3 result: failed evidence: "乐观锁与前端重试逻辑冲突,需重新设计" resolution: fixedBy: null verifiedBy: null verifiedAt: null leftoverReason: "failed after 3 supervised developer rounds; 需重新设计并发模型"