@openprd/cli 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/.openprd/benchmarks/index.md +15 -1
  2. package/.openprd/config.yaml +10 -0
  3. package/.openprd/design/README.md +47 -0
  4. package/.openprd/design/README_EN.md +25 -0
  5. package/.openprd/design/active/asset-spec.md +15 -0
  6. package/.openprd/design/active/direction-plan.md +7 -0
  7. package/.openprd/design/active/facts-sheet.md +13 -0
  8. package/.openprd/design/active/image-preflight.md +9 -0
  9. package/.openprd/design/active/selected-direction.md +11 -0
  10. package/.openprd/design/anti-slop.md +16 -0
  11. package/.openprd/design/assets/dark-mesh.svg +14 -0
  12. package/.openprd/design/assets/paper-grid.svg +14 -0
  13. package/.openprd/design/assets/surface-presets.md +21 -0
  14. package/.openprd/design/assets/workbench-grid.svg +16 -0
  15. package/.openprd/design/checklists/ui-quality-gate.md +22 -0
  16. package/.openprd/design/components/component-catalog.md +42 -0
  17. package/.openprd/design/layouts/layout-catalog.json +45 -0
  18. package/.openprd/design/lenses/frontend-lenses.md +31 -0
  19. package/.openprd/design/recipes/content-experience.md +26 -0
  20. package/.openprd/design/recipes/operational-tool.md +25 -0
  21. package/.openprd/design/recipes/product-launch.md +26 -0
  22. package/.openprd/design/templates/README.md +36 -0
  23. package/.openprd/design/templates/README_EN.md +31 -0
  24. package/.openprd/design/templates/content-home.html +415 -0
  25. package/.openprd/design/templates/ops-dashboard.html +340 -0
  26. package/.openprd/design/templates/product-launch.html +360 -0
  27. package/.openprd/design/themes/theme-catalog.json +77 -0
  28. package/.openprd/engagements/active/prd.md +111 -100
  29. package/.openprd/schema/prd.schema.yaml +10 -0
  30. package/.openprd/templates/base/intake.md +4 -0
  31. package/.openprd/templates/base/prd.md +16 -6
  32. package/AGENTS.md +10 -7
  33. package/README.md +28 -10
  34. package/README_EN.md +23 -3
  35. package/package.json +41 -2
  36. package/scripts/openprd-codex-isolated-worker.mjs +799 -0
  37. package/skills/openprd-benchmark-router/SKILL.md +4 -0
  38. package/skills/openprd-frontend-design/SKILL.md +161 -0
  39. package/skills/openprd-frontend-design/references/design-asset-contract.md +34 -0
  40. package/skills/openprd-frontend-design/references/direction-engine.md +46 -0
  41. package/skills/openprd-harness/SKILL.md +38 -21
  42. package/skills/openprd-learning-review/SKILL.md +2 -1
  43. package/skills/openprd-learning-review/references/style-packs/xianxia-cultivation.prompt.md +1 -1
  44. package/skills/openprd-quality/SKILL.md +6 -4
  45. package/skills/openprd-requirement-intake/SKILL.md +27 -5
  46. package/skills/openprd-requirement-intake/references/prd-template-lenses.md +6 -3
  47. package/skills/openprd-requirement-intake/references/routing-rubric.md +9 -5
  48. package/skills/openprd-requirement-intake/references/startup-validation-lens.md +23 -0
  49. package/skills/openprd-router/SKILL.md +13 -5
  50. package/skills/openprd-shared/SKILL.md +38 -25
  51. package/src/agent-integration.js +126 -75
  52. package/src/brainstorm-artifacts.js +1657 -0
  53. package/src/brainstorm-presentation.js +223 -0
  54. package/src/brainstorm.js +603 -0
  55. package/src/cli/args.js +51 -3
  56. package/src/cli/doctor-print.js +34 -8
  57. package/src/cli/print.js +6 -0
  58. package/src/cli/quality-print.js +70 -0
  59. package/src/cli/run-print.js +43 -1
  60. package/src/cli/shared-print.js +33 -2
  61. package/src/cli/workflow-print.js +21 -0
  62. package/src/codex-hook-runner-template.mjs +858 -65
  63. package/src/design-starter-support.js +462 -0
  64. package/src/design-starter.js +1207 -0
  65. package/src/knowledge.js +377 -21
  66. package/src/learning-review.js +3 -3
  67. package/src/loop.js +839 -101
  68. package/src/openprd.js +86 -1
  69. package/src/openspec/change-validate.js +1 -0
  70. package/src/prd-core.js +18 -0
  71. package/src/quality-learning.js +50 -6
  72. package/src/quality.js +2 -2
  73. package/src/run-harness.js +191 -29
  74. package/src/self-update.js +301 -4
  75. package/src/standards.js +46 -5
  76. package/src/visual-prepare.js +940 -0
  77. package/src/workspace-core.js +137 -0
  78. package/src/workspace-workflow.js +190 -7
  79. package/.openprd/benchmarks/evidence/milvus-io-ai-code-review-gets-better-when-models-debate-claude-vs-gemini-vs-code.md +0 -14
  80. package/.openprd/benchmarks/evidence/nolanlawson-com-using-ai-to-write-better-code-more-slowly.md +0 -14
  81. package/.openprd/discovery/config.json +0 -35
  82. package/.openprd/engagements/active/flows.md +0 -35
  83. package/.openprd/engagements/active/handoff.md +0 -16
  84. package/.openprd/engagements/active/review.html +0 -61
  85. package/.openprd/engagements/active/roles.md +0 -22
  86. package/.openprd/engagements/work-units/wu-20260524015648-6d33ded7.json +0 -23
  87. package/.openprd/engagements/work-units/wu-20260602113956-a99b5b88.json +0 -18
  88. package/.openprd/engagements/work-units/wu-20260602122244-78656aaf.json +0 -18
  89. package/.openprd/engagements/work-units/wu-20260602122442-e96489e2.json +0 -18
  90. package/.openprd/engagements/work-units/wu-20260602132835-695429e8.json +0 -18
  91. package/.openprd/exports/.gitkeep +0 -0
  92. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/candidate.json +0 -78
  93. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/diagnostic-report.json +0 -129
  94. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/root-cause-candidates.json +0 -41
  95. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/timeline.json +0 -14
  96. package/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md +0 -49
  97. package/.openprd/knowledge/index.json +0 -47
  98. package/.openprd/reviews/v0001.html +0 -1322
  99. package/.openprd/reviews/v0002.html +0 -1150
  100. package/.openprd/reviews/v0003.html +0 -1150
  101. package/.openprd/reviews/v0004.html +0 -1150
  102. package/.openprd/reviews/v0005.html +0 -1150
  103. package/.openprd/sessions/.gitkeep +0 -0
  104. package/.openprd/state/changes.json +0 -27
  105. package/.openprd/state/current.json +0 -505
  106. package/.openprd/state/release-ledger.json +0 -344
  107. package/.openprd/state/version-index.json +0 -67
  108. package/.openprd/state/versions/.gitkeep +0 -0
  109. package/.openprd/state/versions/v0001.json +0 -121
  110. package/.openprd/state/versions/v0001.md +0 -161
  111. package/.openprd/state/versions/v0002.json +0 -264
  112. package/.openprd/state/versions/v0002.md +0 -183
  113. package/.openprd/state/versions/v0003.json +0 -269
  114. package/.openprd/state/versions/v0003.md +0 -188
  115. package/.openprd/state/versions/v0004.json +0 -274
  116. package/.openprd/state/versions/v0004.md +0 -193
  117. package/.openprd/state/versions/v0005.json +0 -299
  118. package/.openprd/state/versions/v0005.md +0 -189
  119. package/docs/assets/openprd-capability-overview-en.png +0 -0
  120. package/docs/assets/openprd-capability-overview-zh.png +0 -0
  121. package/docs/assets/openprd-learning-html.png +0 -0
  122. package/docs/assets/openprd-quality-html.png +0 -0
  123. package/docs/assets/openprd-requirement-routing-en.png +0 -0
  124. package/docs/assets/openprd-requirement-routing-en.svg +0 -102
  125. package/docs/assets/openprd-requirement-routing-zh-refined.png +0 -0
  126. package/docs/assets/openprd-requirement-routing-zh.png +0 -0
  127. package/docs/assets/openprd-requirement-routing-zh.svg +0 -102
  128. package/docs/assets/openprd-review-html.png +0 -0
  129. package/docs/assets/openprd-scenario-overview.png +0 -0
  130. package/docs/assets/openprd-scenario-overview.svg +0 -114
  131. package/docs/assets/openprd-self-evolving-mechanisms-en.png +0 -0
  132. package/docs/assets/openprd-self-evolving-mechanisms-zh.png +0 -0
  133. package/docs/assets/openprd-visual-compare-case-study-en.png +0 -0
  134. package/docs/assets/openprd-visual-compare-case-study-zh.png +0 -0
@@ -1,14 +0,0 @@
1
- # nolanlawson.com/using-ai-to-write-better-code-more-slowly
2
-
3
- - ID: nolanlawson-com-using-ai-to-write-better-code-more-slowly
4
- - 状态: approved
5
- - 场景: agent-harness, pr-review-harness
6
- - 触发: 设计 Agent harness、长程任务、状态持久化、验证门禁或人工接管;设计 merge 前高风险复核、独立 reviewer 交叉验证、误报过滤、reviewer agreement 或 merge recommendation
7
- - 不适用: 普通 PRD / 产品流程设计;与 CLI 无关的一次性 UI 视觉问题;默认给每个低风险 PR 拉起多 reviewer 并行审查
8
- - 研究方式: official_page_first
9
- - 来源: https://nolanlawson.com/2026/05/25/using-ai-to-write-better-code-more-slowly/
10
-
11
- ## 备注
12
-
13
- AI code review / PR review harness;独立审查、主代理先不站队、汇总后再验证、critical/high/medium/low 分级、merge recommendation
14
-
@@ -1,35 +0,0 @@
1
- {
2
- "activeChange": "adaptive-project-framing",
3
- "taskSharding": {
4
- "maxItemsPerFile": 25,
5
- "handoffRequired": true,
6
- "firstFile": "tasks.md",
7
- "nextFilePattern": "tasks-###.md"
8
- },
9
- "taskMetadata": {
10
- "stableIdPattern": "T###.##",
11
- "required": [
12
- "done",
13
- "verify"
14
- ],
15
- "optional": [
16
- "deps",
17
- "type",
18
- "test-layer",
19
- "test-size",
20
- "test-scope",
21
- "evidence",
22
- "evidence-plan",
23
- "upgrade-reason",
24
- "waiver",
25
- "waiver-reason",
26
- "execution-mode",
27
- "parallel-group",
28
- "write-scope",
29
- "owner-role",
30
- "local-verify",
31
- "integration-owner"
32
- ],
33
- "dependencyOrder": "dependencies must appear before dependents"
34
- }
35
- }
@@ -1,35 +0,0 @@
1
- # 流程
2
-
3
- ## 主流程
4
-
5
- - 用户第一次提需求时,OpenPrd 先输出一页项目画像:用户群体、产品形态、第一版先做、先不做、不能破坏、技术落点和风险探针
6
- - 如果用户表达已经足够清楚,Agent 直接用系统归纳的画像摘要请用户确认
7
- - 如果用户表达模糊,Agent 先追问少量高价值问题,必要时给 2 到 3 个方向或行业原型供用户选择
8
- - 画像确认后再进入后续 PRD、review、change 和 tasks 流程
9
-
10
- ## Mermaid 流程图
11
-
12
- ```mermaid
13
- flowchart LR
14
- entry["入口触发<br/>用户第一次提需求时,OpenPrd 先输出一页项目画像:用户群体、产品形态、第一版先做、先不做、不能破坏、技术落点和风险探针"]
15
- experience["产品内步骤<br/>如果用户表达已经足够清楚,Agent 直接用系统归纳的画像摘要请用户确认"]
16
- decision{"决策点<br/>用户一开始只有一句模糊想法,需要先给候选方向而不是硬追问技术细节"}
17
- success(["成功结果<br/>首轮 clarify 能输出结构化的项目画像摘要,并包含用户群体、产品形态、第一版先做、先不做和不能破坏项"])
18
- failure[["失败与恢复<br/>入口过重,导致 Vibe Coding 用户在第一次提需时无法回答"]]
19
- entry -->|"用户第一次提需求时,OpenPrd 先输出一页项目画像:用户群体、产品形态、第一版…"| experience
20
- experience -->|"如果用户表达已经足够清楚,Agent 直接用系统归纳的画像摘要请用户确认"| decision
21
- decision -->|"在第一次提需时先形成一页轻量项目画像,而不是直接跳进局部需求修改"| success
22
- decision -.->|"入口过重,导致 Vibe Coding 用户在第一次提需时无法回答"| failure
23
- ```
24
-
25
- ## 边界情况
26
-
27
- - 用户一开始只有一句模糊想法,需要先给候选方向而不是硬追问技术细节
28
- - 已有项目上下文时应优先沿用已知事实,而不是把所有画像问题重问一遍
29
- - 局部 copy、样式或小交互修正不应被错误升级成重画像流程
30
-
31
- ## 失败模式
32
-
33
- - 入口过重,导致 Vibe Coding 用户在第一次提需时无法回答
34
- - 入口过轻,导致 Agent 没有先确认项目边界就直接落地
35
- - 错误复用旧 active change 或旧 PRD 上下文,导致实现偏题
@@ -1,16 +0,0 @@
1
- # 交接
2
-
3
- - 版本: v0005
4
- - 产品类型: agent
5
- - 模板包: agent
6
- - Digest: 7f0e2d2730982a2ae96647d2377f6204e54f8adadf1b18b05f4bc7167046c575
7
- - 负责人: Codex
8
- - 下一步: 生成新的 change 和 tasks,并按首轮项目画像流程修改 workflow、模板、文档和测试。
9
- - 目标系统: OpenPrd
10
-
11
- ## 变化摘要
12
-
13
- - 新增:clarify 生成的 intake-reflection 应包含首轮项目画像和风险探针
14
- - 新增:inline clarification 应显式展示适用对象、产品形态、第一版先做、先不做、不能破坏和技术落点
15
- - 新增:冷启动 kickoff 问题改成画像导向问题,而不是抽象的通用提问
16
- - 新增:类型专项 intake 模板改成更贴近产品与业务语言的提问方式
@@ -1,61 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-CN">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <meta http-equiv="refresh" content="0; url=../../reviews/v0005.html" />
7
- <title>OpenPrd 首轮项目画像与自适应需求初始化 / 评审入口</title>
8
- <style>
9
- :root {
10
- color-scheme: light;
11
- --bg: #f8fafc;
12
- --panel: #ffffff;
13
- --text: #111827;
14
- --muted: #6b7280;
15
- --line: rgba(17,24,39,0.12);
16
- --accent: #2563eb;
17
- }
18
- * { box-sizing: border-box; }
19
- body {
20
- margin: 0;
21
- min-height: 100vh;
22
- display: grid;
23
- place-items: center;
24
- background: linear-gradient(180deg, #f8fafc 0%, #eef2ff 100%);
25
- color: var(--text);
26
- font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
27
- }
28
- .panel {
29
- width: min(560px, calc(100vw - 32px));
30
- padding: 28px 24px;
31
- border: 1px solid var(--line);
32
- border-radius: 16px;
33
- background: var(--panel);
34
- box-shadow: 0 18px 40px rgba(15,23,42,0.08);
35
- }
36
- h1 {
37
- margin: 0 0 10px;
38
- font-size: 24px;
39
- line-height: 1.25;
40
- }
41
- p {
42
- margin: 0 0 12px;
43
- color: var(--muted);
44
- line-height: 1.6;
45
- }
46
- a {
47
- color: var(--accent);
48
- font-weight: 700;
49
- text-decoration: none;
50
- }
51
- a:hover { text-decoration: underline; }
52
- </style>
53
- </head>
54
- <body>
55
- <main class="panel">
56
- <h1>OpenPrd 首轮项目画像与自适应需求初始化 / 评审入口</h1>
57
- <p>这个入口只保留当前评审稿的固定路径,页面会自动跳转到最新的版本化评审文件。</p>
58
- <p><a href="../../reviews/v0005.html">如果没有自动跳转,点这里打开评审面板</a></p>
59
- </main>
60
- </body>
61
- </html>
@@ -1,22 +0,0 @@
1
- # 角色
2
-
3
- ## 用户
4
-
5
- - 主要用户:
6
- - 第一次用 OpenPrd 梳理产品想法的产品经理、独立开发者与 Vibe Coding 用户
7
- - 需要在模糊需求下帮助用户收敛方向并继续落地的 Agent 协作者
8
-
9
- - 次要用户:
10
- - 待补充
11
-
12
- - 相关方:
13
- - 维护 OpenPrd requirement-intake、workflow 和模板的开发者
14
- - 后续需要基于已确认上下文继续实现的多轮 Agent 会话
15
-
16
- ## 类型专项
17
-
18
- - humanAgentContract: Agent 先归纳用户群体、产品形态、第一版切片、边界与风险,再请求用户确认;如果信息不足,只能提出候选方向,不能把猜测当成定论。
19
- - autonomyBoundary: Agent 可以根据当前需求和已有工作区状态推断首轮项目画像,但在用户确认前不得把推断直接写成最终需求事实或越过需求入口去改实现。
20
- - toolBoundary: 仅使用本地 OpenPrd workflow、模板、测试和文档完成这次改动,不依赖新的外部运行时。
21
- - stateModel: 新需求进入时先形成 project framing,再进入 requirement clarification、review/change/tasks 与实现。
22
- - evalPlan: 通过 workspace flow、requirement gate、CLI 输出和模板相关测试验证新流程,同时运行 dev-check、standards、quality 与 run verify。
@@ -1,23 +0,0 @@
1
- {
2
- "version": 1,
3
- "workUnitId": "wu-20260524015648-6d33ded7",
4
- "title": "Verify 边界与历史项目刷新",
5
- "status": "pending-confirmation",
6
- "projectRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
7
- "workspaceRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd",
8
- "targetRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
9
- "latestVersionId": "v0001",
10
- "latestVersionDigest": "dc988d7a94c07d2a8070968a71ddacffb374eaeee12aa85eb93231e06dd7b077",
11
- "reviewArtifact": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0001.html",
12
- "activeReviewArtifact": null,
13
- "artifactBundle": {
14
- "dir": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/artifacts/active/v0001-review",
15
- "html": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/artifacts/active/v0001-review/artifact.html",
16
- "markdown": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/artifacts/active/v0001-review/data.md",
17
- "patch": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/artifacts/active/v0001-review/capture-patch.json"
18
- },
19
- "createdAt": "2026-05-24 01:56:48",
20
- "updatedAt": "2026-06-05 08:44:22",
21
- "reviewPath": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0001.html",
22
- "activeReviewPath": null
23
- }
@@ -1,18 +0,0 @@
1
- {
2
- "version": 1,
3
- "workUnitId": "wu-20260602113956-a99b5b88",
4
- "title": "OpenPrd 用户视角变化摘要",
5
- "status": "pending-confirmation",
6
- "projectRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
7
- "workspaceRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd",
8
- "targetRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
9
- "latestVersionId": "v0002",
10
- "latestVersionDigest": "e44eccd0d6fe1a7fd962ece31187f920e1a71de76122d15b826fb0a66d934d35",
11
- "reviewPath": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0002.html",
12
- "activeReviewPath": null,
13
- "reviewArtifact": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0002.html",
14
- "activeReviewArtifact": null,
15
- "artifactBundle": null,
16
- "createdAt": "2026-06-02 11:39:56",
17
- "updatedAt": "2026-06-05 08:44:22"
18
- }
@@ -1,18 +0,0 @@
1
- {
2
- "version": 1,
3
- "workUnitId": "wu-20260602122244-78656aaf",
4
- "title": "OpenPrd 用户视角变化摘要",
5
- "status": "pending-confirmation",
6
- "projectRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
7
- "workspaceRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd",
8
- "targetRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
9
- "latestVersionId": "v0003",
10
- "latestVersionDigest": "f1b18bc47cbd76f784b7682483eafa24eb02230e23189dad29a2202b61544918",
11
- "reviewPath": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0003.html",
12
- "activeReviewPath": null,
13
- "reviewArtifact": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0003.html",
14
- "activeReviewArtifact": null,
15
- "artifactBundle": null,
16
- "createdAt": "2026-06-02 12:22:44",
17
- "updatedAt": "2026-06-05 08:44:22"
18
- }
@@ -1,18 +0,0 @@
1
- {
2
- "version": 1,
3
- "workUnitId": "wu-20260602122442-e96489e2",
4
- "title": "OpenPrd 项目级版本轨道与变化摘要",
5
- "status": "pending-confirmation",
6
- "projectRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
7
- "workspaceRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd",
8
- "targetRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
9
- "latestVersionId": "v0004",
10
- "latestVersionDigest": "0dbead578a9472100fb0c7cf185cd5500acd2d59830794cfa120f4f6976ee3f7",
11
- "reviewPath": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0004.html",
12
- "activeReviewPath": null,
13
- "reviewArtifact": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0004.html",
14
- "activeReviewArtifact": null,
15
- "artifactBundle": null,
16
- "createdAt": "2026-06-02 12:24:42",
17
- "updatedAt": "2026-06-05 08:44:22"
18
- }
@@ -1,18 +0,0 @@
1
- {
2
- "version": 1,
3
- "workUnitId": "wu-20260602132835-695429e8",
4
- "title": "OpenPrd 首轮项目画像与自适应需求初始化",
5
- "status": "confirmed",
6
- "projectRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
7
- "workspaceRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd",
8
- "targetRoot": "/Users/chaojifeng/Projects/harness-engineer/openprd",
9
- "latestVersionId": "v0005",
10
- "latestVersionDigest": "7f0e2d2730982a2ae96647d2377f6204e54f8adadf1b18b05f4bc7167046c575",
11
- "reviewPath": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0005.html",
12
- "activeReviewPath": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/engagements/active/review.html",
13
- "reviewArtifact": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/reviews/v0005.html",
14
- "activeReviewArtifact": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/engagements/active/review.html",
15
- "artifactBundle": null,
16
- "createdAt": "2026-06-02 13:28:35",
17
- "updatedAt": "2026-06-05 08:44:22"
18
- }
File without changes
@@ -1,78 +0,0 @@
1
- {
2
- "version": 1,
3
- "candidateId": "candidate-turn-1780116203372-5f266a79e968c758",
4
- "status": "promoted",
5
- "createdAt": "2026-05-30 13:39:11",
6
- "updatedAt": "2026-06-05 09:05:29",
7
- "sourceKind": "diagnostic-report",
8
- "sourceRef": "candidate-turn-1780116203372-5f266a79e968c758",
9
- "title": "本轮项目回顾",
10
- "summary": "本轮围绕 13 个可沉淀文件生成回顾。 本轮结果里已经出现可复用的症状、排查线索或根因模式,不应该只留在当前对话里。 已记录 2 条回顾信号。",
11
- "categories": [
12
- "hidden-debug-knowledge",
13
- "agent-misjudgment",
14
- "high-impact-fix"
15
- ],
16
- "reasons": [
17
- "本轮结果里已经出现可复用的症状、排查线索或根因模式,不应该只留在当前对话里。",
18
- "这次改动直接影响 Agent / harness / hook / skill 行为,后续很容易再次踩到同类判断问题。",
19
- "这次修复已经带有验证或收尾证据,适合尽快抽象成项目级研发经验。"
20
- ],
21
- "touchedFiles": [
22
- "src/workspace-core.js",
23
- "src/openprd.js",
24
- "src/fleet.js",
25
- "src/standards.js",
26
- "test/helpers/openprd-test-helpers.js",
27
- "test/openprd-run-fleet.test.js",
28
- "test/openprd-quality-standards.test.js",
29
- "test/openprd-agent-integration.test.js",
30
- "test/openprd-benchmark-knowledge.test.js",
31
- "test/openprd.test.js",
32
- "test/openprd-workspace-flow.test.js",
33
- "test/openprd-discovery-changes.test.js",
34
- "test/openprd-github-release.test.js"
35
- ],
36
- "reviewSignals": [
37
- {
38
- "id": "run-verify",
39
- "kind": "run-verify",
40
- "at": "2026-06-05 09:05:29",
41
- "ok": true,
42
- "productionReady": true,
43
- "attentionGates": [],
44
- "summary": "run verify passed",
45
- "touchedFiles": []
46
- },
47
- {
48
- "id": "dev-check",
49
- "kind": "dev-check",
50
- "at": "2026-06-05 09:04:20",
51
- "ok": true,
52
- "productionReady": null,
53
- "attentionGates": [],
54
- "summary": "dev-check attention=9, warning=1",
55
- "touchedFiles": [
56
- "src/workspace-core.js",
57
- "src/openprd.js",
58
- "src/fleet.js",
59
- "src/standards.js",
60
- "test/helpers/openprd-test-helpers.js",
61
- "test/openprd-run-fleet.test.js",
62
- "test/openprd-quality-standards.test.js",
63
- "test/openprd-agent-integration.test.js",
64
- "test/openprd-benchmark-knowledge.test.js",
65
- "test/openprd.test.js",
66
- "test/openprd-workspace-flow.test.js",
67
- "test/openprd-discovery-changes.test.js",
68
- "test/openprd-github-release.test.js"
69
- ]
70
- }
71
- ],
72
- "files": {
73
- "candidate": "/Users/chaojifeng/Projects/harness-engineer/.worktrees/openprd-release-0.1.5-publish/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/candidate.json",
74
- "candidateDir": "/Users/chaojifeng/Projects/harness-engineer/.worktrees/openprd-release-0.1.5-publish/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758",
75
- "draftSkill": "/Users/chaojifeng/Projects/harness-engineer/.worktrees/openprd-release-0.1.5-publish/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md"
76
- },
77
- "suggestedLearnCommand": "openprd quality . --learn --from .openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758"
78
- }
@@ -1,129 +0,0 @@
1
- {
2
- "id": "candidate-turn-1780116203372-5f266a79e968c758",
3
- "knowledgeCandidateId": "candidate-turn-1780116203372-5f266a79e968c758",
4
- "title": "本轮项目回顾",
5
- "status": "pass",
6
- "summary": {
7
- "title": "本轮项目回顾",
8
- "status": "pass",
9
- "message": "本轮围绕 13 个可沉淀文件生成回顾。 本轮结果里已经出现可复用的症状、排查线索或根因模式,不应该只留在当前对话里。 已记录 2 条回顾信号。"
10
- },
11
- "problem": "本轮围绕 13 个可沉淀文件生成回顾。 本轮结果里已经出现可复用的症状、排查线索或根因模式,不应该只留在当前对话里。 已记录 2 条回顾信号。",
12
- "message": "本轮围绕 13 个可沉淀文件生成回顾。 本轮结果里已经出现可复用的症状、排查线索或根因模式,不应该只留在当前对话里。 已记录 2 条回顾信号。",
13
- "touchedFiles": [
14
- "src/workspace-core.js",
15
- "src/openprd.js",
16
- "src/fleet.js",
17
- "src/standards.js",
18
- "test/helpers/openprd-test-helpers.js",
19
- "test/openprd-run-fleet.test.js",
20
- "test/openprd-quality-standards.test.js",
21
- "test/openprd-agent-integration.test.js",
22
- "test/openprd-benchmark-knowledge.test.js",
23
- "test/openprd.test.js",
24
- "test/openprd-workspace-flow.test.js",
25
- "test/openprd-discovery-changes.test.js",
26
- "test/openprd-github-release.test.js"
27
- ],
28
- "reviewSignals": [
29
- {
30
- "id": "run-verify",
31
- "kind": "run-verify",
32
- "at": "2026-06-05 09:05:29",
33
- "ok": true,
34
- "productionReady": true,
35
- "attentionGates": [],
36
- "summary": "run verify passed",
37
- "touchedFiles": []
38
- },
39
- {
40
- "id": "dev-check",
41
- "kind": "dev-check",
42
- "at": "2026-06-05 09:04:20",
43
- "ok": true,
44
- "productionReady": null,
45
- "attentionGates": [],
46
- "summary": "dev-check attention=9, warning=1",
47
- "touchedFiles": [
48
- "src/workspace-core.js",
49
- "src/openprd.js",
50
- "src/fleet.js",
51
- "src/standards.js",
52
- "test/helpers/openprd-test-helpers.js",
53
- "test/openprd-run-fleet.test.js",
54
- "test/openprd-quality-standards.test.js",
55
- "test/openprd-agent-integration.test.js",
56
- "test/openprd-benchmark-knowledge.test.js",
57
- "test/openprd.test.js",
58
- "test/openprd-workspace-flow.test.js",
59
- "test/openprd-discovery-changes.test.js",
60
- "test/openprd-github-release.test.js"
61
- ]
62
- }
63
- ],
64
- "runtimeEvents": [
65
- {
66
- "eventName": "run-verify",
67
- "status": "pass",
68
- "message": "run verify passed",
69
- "touchedFiles": [],
70
- "at": "2026-06-05 09:05:29"
71
- },
72
- {
73
- "eventName": "dev-check",
74
- "status": "pass",
75
- "message": "dev-check attention=9, warning=1",
76
- "touchedFiles": [
77
- "src/workspace-core.js",
78
- "src/openprd.js",
79
- "src/fleet.js",
80
- "src/standards.js",
81
- "test/helpers/openprd-test-helpers.js",
82
- "test/openprd-run-fleet.test.js",
83
- "test/openprd-quality-standards.test.js",
84
- "test/openprd-agent-integration.test.js",
85
- "test/openprd-benchmark-knowledge.test.js",
86
- "test/openprd.test.js",
87
- "test/openprd-workspace-flow.test.js",
88
- "test/openprd-discovery-changes.test.js",
89
- "test/openprd-github-release.test.js"
90
- ],
91
- "at": "2026-06-05 09:04:20"
92
- }
93
- ],
94
- "timeline": [
95
- {
96
- "event": "run-verify",
97
- "message": "run verify passed",
98
- "status": "pass",
99
- "line": null,
100
- "at": "2026-06-05 09:05:29"
101
- },
102
- {
103
- "event": "dev-check",
104
- "message": "dev-check attention=9, warning=1",
105
- "status": "pass",
106
- "line": null,
107
- "at": "2026-06-05 09:04:20"
108
- }
109
- ],
110
- "rootCauseCandidates": [
111
- {
112
- "title": "本轮项目回顾"
113
- }
114
- ],
115
- "verificationSteps": [
116
- "run verify passed",
117
- "dev-check attention=9, warning=1",
118
- "复现一次同类路径,确认新的诊断包仍能导出 runtime-events、timeline、root-cause-candidates 和 diagnostic-report。",
119
- "重点核对 run-verify -> quality-verify -> dev-check 的顺序是否符合预期。",
120
- "修复后再次执行同一路径,确认时间线不再在历史失败断点中断。",
121
- "把最终诊断包与质量报告一起归档,确保后续 Agent 能直接复用已有排查路径。"
122
- ],
123
- "prevention": [
124
- "把本轮修复抽象成项目级 skill,而不是只保留一次性聊天上下文。",
125
- "关键路径默认保留 runtime-events、timeline、root-cause-candidates、diagnostic-report 四类证据,而不是等故障出现后再补日志。",
126
- "失败事件和补偿事件使用稳定事件名,避免把根因埋在自由文本里。",
127
- "修复完成后保留一份成功与失败对照诊断包,并运行 openprd quality . --learn --from <diagnostics-dir> 更新项目经验。"
128
- ]
129
- }
@@ -1,41 +0,0 @@
1
- [
2
- {
3
- "title": "Inspect src/workspace-core.js"
4
- },
5
- {
6
- "title": "Inspect src/openprd.js"
7
- },
8
- {
9
- "title": "Inspect src/fleet.js"
10
- },
11
- {
12
- "title": "Inspect src/standards.js"
13
- },
14
- {
15
- "title": "Inspect test/helpers/openprd-test-helpers.js"
16
- },
17
- {
18
- "title": "Inspect test/openprd-run-fleet.test.js"
19
- },
20
- {
21
- "title": "Inspect test/openprd-quality-standards.test.js"
22
- },
23
- {
24
- "title": "Inspect test/openprd-agent-integration.test.js"
25
- },
26
- {
27
- "title": "Inspect test/openprd-benchmark-knowledge.test.js"
28
- },
29
- {
30
- "title": "Inspect test/openprd.test.js"
31
- },
32
- {
33
- "title": "Inspect test/openprd-workspace-flow.test.js"
34
- },
35
- {
36
- "title": "Inspect test/openprd-discovery-changes.test.js"
37
- },
38
- {
39
- "title": "Inspect test/openprd-github-release.test.js"
40
- }
41
- ]
@@ -1,14 +0,0 @@
1
- [
2
- {
3
- "event": "run-verify",
4
- "message": "run verify passed",
5
- "status": "pass",
6
- "at": "2026-06-05 09:05:29"
7
- },
8
- {
9
- "event": "dev-check",
10
- "message": "dev-check attention=9, warning=1",
11
- "status": "pass",
12
- "at": "2026-06-05 09:04:20"
13
- }
14
- ]
@@ -1,49 +0,0 @@
1
- ---
2
- name: openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758
3
- description: OpenPrd 在本轮回顾时自动生成的待确认项目经验草案。
4
- ---
5
-
6
- # openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758
7
-
8
- > 状态:draft
9
- > 候选目录:`.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758`
10
- > Promote:`openprd quality . --learn --from .openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758`
11
-
12
- ## 为什么值得沉淀
13
-
14
- - 本轮结果里已经出现可复用的症状、排查线索或根因模式,不应该只留在当前对话里。
15
- - 这次改动直接影响 Agent / harness / hook / skill 行为,后续很容易再次踩到同类判断问题。
16
- - 这次修复已经带有验证或收尾证据,适合尽快抽象成项目级研发经验。
17
- - 症状: 本轮项目回顾
18
- - run-verify: run verify passed
19
- - dev-check: dev-check attention=9, warning=1 | touched: src/workspace-core.js, src/openprd.js, src/fleet.js, src/standards.js, test/helpers/openprd-test-helpers.js, test/openprd-run-fleet.test.js
20
-
21
- ## 下次触发时先看什么
22
-
23
- - `src/workspace-core.js`
24
- - `src/openprd.js`
25
- - `src/fleet.js`
26
- - `src/standards.js`
27
- - `test/helpers/openprd-test-helpers.js`
28
- - `test/openprd-run-fleet.test.js`
29
- - `test/openprd-quality-standards.test.js`
30
- - `test/openprd-agent-integration.test.js`
31
- - `test/openprd-benchmark-knowledge.test.js`
32
- - `test/openprd.test.js`
33
- - `test/openprd-workspace-flow.test.js`
34
- - `test/openprd-discovery-changes.test.js`
35
- - `test/openprd-github-release.test.js`
36
- - `.openprd/harness/turn-state.json`
37
-
38
- ## 可复用模式
39
-
40
- - 先按本轮诊断线索复走一次,再补最小必要证据。
41
-
42
- ## 验证方式
43
-
44
- - run verify passed
45
- - dev-check attention=9, warning=1
46
- - 复现一次同类路径,确认新的诊断包仍能导出 runtime-events、timeline、root-cause-candidates 和 diagnostic-report。
47
- - 重点核对 run-verify -> quality-verify -> dev-check 的顺序是否符合预期。
48
- - 修复后再次执行同一路径,确认时间线不再在历史失败断点中断。
49
- - 把最终诊断包与质量报告一起归档,确保后续 Agent 能直接复用已有排查路径。