@openprd/cli 0.1.9 → 0.1.11

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 (138) hide show
  1. package/.openprd/benchmarks/index.md +16 -0
  2. package/.openprd/benchmarks/sources.yaml +53 -1
  3. package/.openprd/config.yaml +10 -0
  4. package/.openprd/design/README.md +47 -0
  5. package/.openprd/design/README_EN.md +25 -0
  6. package/.openprd/design/active/asset-spec.md +15 -0
  7. package/.openprd/design/active/direction-plan.md +7 -0
  8. package/.openprd/design/active/facts-sheet.md +13 -0
  9. package/.openprd/design/active/image-preflight.md +9 -0
  10. package/.openprd/design/active/selected-direction.md +11 -0
  11. package/.openprd/design/anti-slop.md +16 -0
  12. package/.openprd/design/assets/dark-mesh.svg +14 -0
  13. package/.openprd/design/assets/paper-grid.svg +14 -0
  14. package/.openprd/design/assets/surface-presets.md +21 -0
  15. package/.openprd/design/assets/workbench-grid.svg +16 -0
  16. package/.openprd/design/checklists/ui-quality-gate.md +22 -0
  17. package/.openprd/design/components/component-catalog.md +42 -0
  18. package/.openprd/design/layouts/layout-catalog.json +45 -0
  19. package/.openprd/design/lenses/frontend-lenses.md +31 -0
  20. package/.openprd/design/recipes/content-experience.md +26 -0
  21. package/.openprd/design/recipes/operational-tool.md +25 -0
  22. package/.openprd/design/recipes/product-launch.md +26 -0
  23. package/.openprd/design/templates/README.md +36 -0
  24. package/.openprd/design/templates/README_EN.md +31 -0
  25. package/.openprd/design/templates/content-home.html +415 -0
  26. package/.openprd/design/templates/ops-dashboard.html +340 -0
  27. package/.openprd/design/templates/product-launch.html +360 -0
  28. package/.openprd/design/themes/theme-catalog.json +77 -0
  29. package/.openprd/engagements/active/prd.md +111 -100
  30. package/.openprd/schema/prd.schema.yaml +25 -0
  31. package/.openprd/templates/base/intake.md +17 -0
  32. package/.openprd/templates/base/prd.md +31 -6
  33. package/AGENTS.md +10 -7
  34. package/README.md +26 -28
  35. package/README_EN.md +3 -3
  36. package/package.json +41 -2
  37. package/scripts/openprd-codex-isolated-worker.mjs +799 -0
  38. package/skills/openprd-benchmark-router/SKILL.md +5 -0
  39. package/skills/openprd-frontend-design/SKILL.md +161 -0
  40. package/skills/openprd-frontend-design/references/design-asset-contract.md +34 -0
  41. package/skills/openprd-frontend-design/references/direction-engine.md +46 -0
  42. package/skills/openprd-harness/SKILL.md +37 -20
  43. package/skills/openprd-learning-review/SKILL.md +2 -1
  44. package/skills/openprd-learning-review/references/style-packs/xianxia-cultivation.prompt.md +1 -1
  45. package/skills/openprd-quality/SKILL.md +5 -3
  46. package/skills/openprd-requirement-intake/SKILL.md +27 -5
  47. package/skills/openprd-requirement-intake/references/prd-template-lenses.md +6 -3
  48. package/skills/openprd-requirement-intake/references/routing-rubric.md +9 -5
  49. package/skills/openprd-requirement-intake/references/startup-validation-lens.md +108 -0
  50. package/skills/openprd-router/SKILL.md +13 -5
  51. package/skills/openprd-shared/SKILL.md +38 -25
  52. package/src/agent-integration.js +120 -69
  53. package/src/brainstorm-artifacts.js +1805 -0
  54. package/src/brainstorm-presentation.js +233 -0
  55. package/src/brainstorm.js +766 -0
  56. package/src/cli/args.js +51 -3
  57. package/src/cli/doctor-print.js +34 -8
  58. package/src/cli/print.js +6 -0
  59. package/src/cli/quality-print.js +79 -3
  60. package/src/cli/run-print.js +43 -1
  61. package/src/cli/shared-print.js +33 -2
  62. package/src/cli/workflow-print.js +21 -0
  63. package/src/codex-hook-runner-template.mjs +838 -58
  64. package/src/design-starter-support.js +462 -0
  65. package/src/design-starter.js +1207 -0
  66. package/src/diagram-core.js +384 -151
  67. package/src/html-artifacts.js +403 -50
  68. package/src/knowledge.js +291 -32
  69. package/src/learning-review.js +3 -3
  70. package/src/loop.js +839 -101
  71. package/src/openprd.js +86 -1
  72. package/src/openspec/change-validate.js +1 -0
  73. package/src/prd-core.js +119 -2
  74. package/src/quality-html-artifact.js +30 -5
  75. package/src/quality-learning.js +50 -6
  76. package/src/quality.js +22 -12
  77. package/src/run-harness.js +191 -29
  78. package/src/self-update.js +301 -4
  79. package/src/standards.js +46 -5
  80. package/src/visual-prepare.js +940 -0
  81. package/src/workspace-core.js +175 -0
  82. package/src/workspace-workflow.js +307 -7
  83. package/.openprd/benchmarks/evidence/milvus-io-ai-code-review-gets-better-when-models-debate-claude-vs-gemini-vs-code.md +0 -14
  84. package/.openprd/benchmarks/evidence/nolanlawson-com-using-ai-to-write-better-code-more-slowly.md +0 -14
  85. package/.openprd/discovery/config.json +0 -35
  86. package/.openprd/engagements/active/flows.md +0 -35
  87. package/.openprd/engagements/active/handoff.md +0 -16
  88. package/.openprd/engagements/active/review.html +0 -61
  89. package/.openprd/engagements/active/roles.md +0 -22
  90. package/.openprd/engagements/work-units/wu-20260524015648-6d33ded7.json +0 -23
  91. package/.openprd/engagements/work-units/wu-20260602113956-a99b5b88.json +0 -18
  92. package/.openprd/engagements/work-units/wu-20260602122244-78656aaf.json +0 -18
  93. package/.openprd/engagements/work-units/wu-20260602122442-e96489e2.json +0 -18
  94. package/.openprd/engagements/work-units/wu-20260602132835-695429e8.json +0 -18
  95. package/.openprd/exports/.gitkeep +0 -0
  96. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/candidate.json +0 -78
  97. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/diagnostic-report.json +0 -129
  98. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/root-cause-candidates.json +0 -41
  99. package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/timeline.json +0 -14
  100. package/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md +0 -49
  101. package/.openprd/knowledge/index.json +0 -47
  102. package/.openprd/reviews/v0001.html +0 -1322
  103. package/.openprd/reviews/v0002.html +0 -1150
  104. package/.openprd/reviews/v0003.html +0 -1150
  105. package/.openprd/reviews/v0004.html +0 -1150
  106. package/.openprd/reviews/v0005.html +0 -1150
  107. package/.openprd/sessions/.gitkeep +0 -0
  108. package/.openprd/state/changes.json +0 -27
  109. package/.openprd/state/current.json +0 -505
  110. package/.openprd/state/release-ledger.json +0 -387
  111. package/.openprd/state/version-index.json +0 -67
  112. package/.openprd/state/versions/.gitkeep +0 -0
  113. package/.openprd/state/versions/v0001.json +0 -121
  114. package/.openprd/state/versions/v0001.md +0 -161
  115. package/.openprd/state/versions/v0002.json +0 -264
  116. package/.openprd/state/versions/v0002.md +0 -183
  117. package/.openprd/state/versions/v0003.json +0 -269
  118. package/.openprd/state/versions/v0003.md +0 -188
  119. package/.openprd/state/versions/v0004.json +0 -274
  120. package/.openprd/state/versions/v0004.md +0 -193
  121. package/.openprd/state/versions/v0005.json +0 -299
  122. package/.openprd/state/versions/v0005.md +0 -189
  123. package/docs/assets/openprd-capability-overview-en.png +0 -0
  124. package/docs/assets/openprd-capability-overview-zh.png +0 -0
  125. package/docs/assets/openprd-learning-html.png +0 -0
  126. package/docs/assets/openprd-quality-html.png +0 -0
  127. package/docs/assets/openprd-requirement-routing-en.png +0 -0
  128. package/docs/assets/openprd-requirement-routing-en.svg +0 -102
  129. package/docs/assets/openprd-requirement-routing-zh-refined.png +0 -0
  130. package/docs/assets/openprd-requirement-routing-zh.png +0 -0
  131. package/docs/assets/openprd-requirement-routing-zh.svg +0 -102
  132. package/docs/assets/openprd-review-html.png +0 -0
  133. package/docs/assets/openprd-scenario-overview.png +0 -0
  134. package/docs/assets/openprd-scenario-overview.svg +0 -114
  135. package/docs/assets/openprd-self-evolving-mechanisms-en.png +0 -0
  136. package/docs/assets/openprd-self-evolving-mechanisms-zh.png +0 -0
  137. package/docs/assets/openprd-visual-compare-case-study-en.png +0 -0
  138. package/docs/assets/openprd-visual-compare-case-study-zh.png +0 -0
@@ -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 能直接复用已有排查路径。
@@ -1,47 +0,0 @@
1
- {
2
- "version": 1,
3
- "updatedAt": "2026-06-05 09:05:29",
4
- "incidents": [
5
- {
6
- "incidentId": "incident-candidate-turn-1780116203372-5f266a79e968c758",
7
- "path": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/knowledge/incidents/incident-candidate-turn-1780116203372-5f266a79e968c758.json",
8
- "sourceKind": "diagnostic-bundle",
9
- "sourceRef": "candidate-turn-1780116203372-5f266a79e968c758"
10
- }
11
- ],
12
- "patterns": [
13
- {
14
- "patternId": "diagnostic-candidate-turn-1780116203372-5f266a79e968c758",
15
- "path": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/knowledge/patterns/diagnostic-candidate-turn-1780116203372-5f266a79e968c758.json",
16
- "sourceKind": "diagnostic-bundle",
17
- "sourceRef": "candidate-turn-1780116203372-5f266a79e968c758"
18
- }
19
- ],
20
- "skills": [
21
- {
22
- "skillName": "openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758",
23
- "path": "/Users/chaojifeng/Projects/harness-engineer/openprd/.openprd/knowledge/skills/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md",
24
- "sourceKind": "diagnostic-bundle",
25
- "sourceRef": "candidate-turn-1780116203372-5f266a79e968c758"
26
- }
27
- ],
28
- "candidates": [
29
- {
30
- "candidateId": "candidate-turn-1780116203372-5f266a79e968c758",
31
- "status": "promoted",
32
- "path": "/Users/chaojifeng/Projects/harness-engineer/.worktrees/openprd-release-0.1.5-publish/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/candidate.json",
33
- "sourceKind": "diagnostic-report",
34
- "sourceRef": "candidate-turn-1780116203372-5f266a79e968c758",
35
- "title": "本轮项目回顾",
36
- "draftSkillPath": "/Users/chaojifeng/Projects/harness-engineer/.worktrees/openprd-release-0.1.5-publish/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md"
37
- }
38
- ],
39
- "drafts": [
40
- {
41
- "skillName": "openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758",
42
- "path": "/Users/chaojifeng/Projects/harness-engineer/.worktrees/openprd-release-0.1.5-publish/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md",
43
- "candidateId": "candidate-turn-1780116203372-5f266a79e968c758",
44
- "status": "promoted"
45
- }
46
- ]
47
- }