@openprd/cli 0.1.11 → 0.1.19

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 (147) hide show
  1. package/.openprd/changes/adaptive-project-framing/.openprd.yaml +2 -0
  2. package/.openprd/changes/adaptive-project-framing/design.md +47 -0
  3. package/.openprd/changes/adaptive-project-framing/proposal.md +35 -0
  4. package/.openprd/changes/adaptive-project-framing/specs/agent-requirements/spec.md +16 -0
  5. package/.openprd/changes/adaptive-project-framing/task-events.jsonl +20 -0
  6. package/.openprd/changes/adaptive-project-framing/tasks.md +340 -0
  7. package/.openprd/changes/docs-anti-pollution-and-design-direction-review/.openprd.yaml +2 -0
  8. package/.openprd/changes/docs-anti-pollution-and-design-direction-review/design.md +34 -0
  9. package/.openprd/changes/docs-anti-pollution-and-design-direction-review/proposal.md +23 -0
  10. package/.openprd/changes/docs-anti-pollution-and-design-direction-review/specs/agent-requirements/spec.md +16 -0
  11. package/.openprd/changes/docs-anti-pollution-and-design-direction-review/task-events.jsonl +14 -0
  12. package/.openprd/changes/docs-anti-pollution-and-design-direction-review/tasks.md +238 -0
  13. package/.openprd/changes/loop-isolated-worktree-commit/.openprd.yaml +2 -0
  14. package/.openprd/changes/loop-isolated-worktree-commit/design.md +53 -0
  15. package/.openprd/changes/loop-isolated-worktree-commit/proposal.md +38 -0
  16. package/.openprd/changes/loop-isolated-worktree-commit/specs/agent-requirements/spec.md +16 -0
  17. package/.openprd/changes/loop-isolated-worktree-commit/task-events.jsonl +22 -0
  18. package/.openprd/changes/loop-isolated-worktree-commit/tasks.md +357 -0
  19. package/.openprd/changes/openprd/.openprd.yaml +2 -0
  20. package/.openprd/changes/openprd/design.md +46 -0
  21. package/.openprd/changes/openprd/proposal.md +36 -0
  22. package/.openprd/changes/openprd/specs/agent-requirements/spec.md +16 -0
  23. package/.openprd/changes/openprd/task-events.jsonl +23 -0
  24. package/.openprd/changes/openprd/tasks.md +242 -0
  25. package/.openprd/changes/openprd-generated-change/.openprd.yaml +2 -0
  26. package/.openprd/changes/openprd-generated-change/design.md +50 -0
  27. package/.openprd/changes/openprd-generated-change/proposal.md +37 -0
  28. package/.openprd/changes/openprd-generated-change/specs/agent-requirements/spec.md +16 -0
  29. package/.openprd/changes/openprd-generated-change/task-events.jsonl +21 -0
  30. package/.openprd/changes/openprd-generated-change/tasks.md +357 -0
  31. package/.openprd/changes/pm-human-in-the-loop/.openprd.yaml +2 -0
  32. package/.openprd/changes/pm-human-in-the-loop/design.md +38 -0
  33. package/.openprd/changes/pm-human-in-the-loop/proposal.md +29 -0
  34. package/.openprd/changes/pm-human-in-the-loop/specs/agent-requirements/spec.md +16 -0
  35. package/.openprd/changes/pm-human-in-the-loop/task-events.jsonl +18 -0
  36. package/.openprd/changes/pm-human-in-the-loop/tasks.md +306 -0
  37. package/.openprd/changes/test-strategy-router/.openprd.yaml +2 -0
  38. package/.openprd/changes/test-strategy-router/design.md +65 -0
  39. package/.openprd/changes/test-strategy-router/proposal.md +45 -0
  40. package/.openprd/changes/test-strategy-router/specs/agent-requirements/spec.md +16 -0
  41. package/.openprd/changes/test-strategy-router/task-events.jsonl +1 -0
  42. package/.openprd/changes/test-strategy-router/tasks.md +132 -0
  43. package/.openprd/changes/verify-boundaries-and-historical-refresh/.openprd.yaml +2 -0
  44. package/.openprd/changes/verify-boundaries-and-historical-refresh/design.md +28 -0
  45. package/.openprd/changes/verify-boundaries-and-historical-refresh/proposal.md +23 -0
  46. package/.openprd/changes/verify-boundaries-and-historical-refresh/specs/agent-requirements/spec.md +16 -0
  47. package/.openprd/changes/verify-boundaries-and-historical-refresh/task-events.jsonl +11 -0
  48. package/.openprd/changes/verify-boundaries-and-historical-refresh/tasks.md +66 -0
  49. package/.openprd/changes/vibe-coding-dev-check/.openprd.yaml +2 -0
  50. package/.openprd/changes/vibe-coding-dev-check/design.md +37 -0
  51. package/.openprd/changes/vibe-coding-dev-check/proposal.md +28 -0
  52. package/.openprd/changes/vibe-coding-dev-check/specs/agent-requirements/spec.md +16 -0
  53. package/.openprd/changes/vibe-coding-dev-check/task-events.jsonl +18 -0
  54. package/.openprd/changes/vibe-coding-dev-check/tasks.md +306 -0
  55. package/.openprd/design/README.md +11 -6
  56. package/.openprd/design/README_EN.md +4 -1
  57. package/.openprd/design/active/asset-spec.md +6 -0
  58. package/.openprd/design/active/direction-plan.md +5 -5
  59. package/.openprd/design/active/selected-direction.md +2 -0
  60. package/.openprd/design/anti-slop.md +26 -1
  61. package/.openprd/design/assets/surface-presets.md +6 -0
  62. package/.openprd/design/checklists/ui-quality-gate.md +7 -0
  63. package/.openprd/design/lenses/frontend-lenses.md +28 -0
  64. package/.openprd/design/recipes/content-experience.md +8 -1
  65. package/.openprd/design/recipes/operational-tool.md +7 -0
  66. package/.openprd/design/recipes/product-launch.md +8 -1
  67. package/.openprd/design/templates/README.md +6 -3
  68. package/.openprd/design/templates/README_EN.md +6 -3
  69. package/.openprd/design/templates/ops-dashboard.html +8 -1
  70. package/.openprd/design/templates/product-launch.html +2 -1
  71. package/.openprd/design/themes/theme-catalog.json +23 -5
  72. package/.openprd/engagements/active/prd.md +137 -112
  73. package/.openprd/standards/config.json +7 -1
  74. package/AGENTS.md +13 -3
  75. package/README.md +127 -14
  76. package/README_EN.md +156 -13
  77. package/package.json +1 -1
  78. package/scripts/dev-check-wrapup-copy.mjs +46 -21
  79. package/skills/openprd-diagram-review/SKILL.md +27 -2
  80. package/skills/openprd-diagram-review/references/explanation-svg-patterns.md +131 -0
  81. package/skills/openprd-discovery-loop/SKILL.md +2 -2
  82. package/skills/openprd-frontend-design/SKILL.md +44 -20
  83. package/skills/openprd-frontend-design/references/design-asset-contract.md +6 -0
  84. package/skills/openprd-frontend-design/references/direction-engine.md +29 -4
  85. package/skills/openprd-harness/SKILL.md +22 -16
  86. package/skills/openprd-quality/SKILL.md +10 -8
  87. package/skills/openprd-requirement-intake/SKILL.md +2 -0
  88. package/skills/openprd-router/SKILL.md +2 -1
  89. package/skills/openprd-shared/SKILL.md +26 -16
  90. package/skills/openprd-standards/SKILL.md +4 -2
  91. package/src/agent-canonical-content.js +810 -0
  92. package/src/agent-integration.js +258 -777
  93. package/src/canvas-app-client-app.js +838 -0
  94. package/src/canvas-app-client-helpers.js +1138 -0
  95. package/src/canvas-app-styles.js +898 -0
  96. package/src/canvas-app.html.js +135 -0
  97. package/src/canvas-binding.js +414 -0
  98. package/src/canvas-codex-relay.js +430 -0
  99. package/src/canvas-i18n.js +282 -0
  100. package/src/canvas-scene.js +377 -0
  101. package/src/canvas-session-store.js +148 -0
  102. package/src/canvas-workspace.js +1264 -0
  103. package/src/cli/args.js +72 -4
  104. package/src/cli/basic-print.js +3 -0
  105. package/src/cli/canvas-print.js +106 -0
  106. package/src/cli/doctor-print.js +20 -0
  107. package/src/cli/print.js +2 -0
  108. package/src/cli/quality-commands.js +222 -0
  109. package/src/cli/quality-print.js +28 -2
  110. package/src/cli/run-print.js +5 -0
  111. package/src/cli/workflow-print.js +3 -0
  112. package/src/codex-app-server-relay.js +251 -0
  113. package/src/codex-hook-runner-template.mjs +978 -58
  114. package/src/design-starter-support.js +2 -2
  115. package/src/design-starter.js +39 -3
  116. package/src/dev-standards.js +125 -10
  117. package/src/diagram-core.js +6 -20
  118. package/src/discovery.js +2 -8
  119. package/src/docs-compact.js +125 -0
  120. package/src/execution-strategy.js +1 -1
  121. package/src/fleet.js +9 -3
  122. package/src/guide.js +227 -0
  123. package/src/html-artifacts.js +428 -7
  124. package/src/knowledge.js +45 -11
  125. package/src/language-policy.js +63 -3
  126. package/src/learning-review.js +1 -1
  127. package/src/loop.js +1 -1
  128. package/src/openprd.js +68 -131
  129. package/src/openspec/change-validate.js +2 -2
  130. package/src/openspec/constants.js +6 -7
  131. package/src/openspec/execute.js +2 -2
  132. package/src/openspec/generate.js +318 -102
  133. package/src/openspec/migration.js +168 -0
  134. package/src/openspec/paths.js +1 -22
  135. package/src/prd-core.js +1 -1
  136. package/src/quality-visual-review.js +257 -14
  137. package/src/quality.js +46 -8
  138. package/src/review-presentation.js +60 -0
  139. package/src/run-harness.js +41 -3
  140. package/src/session-evidence.js +363 -0
  141. package/src/standards.js +64 -0
  142. package/src/test-strategy.js +7 -4
  143. package/src/visual-compare-centering.js +622 -0
  144. package/src/visual-compare-core.js +1123 -0
  145. package/src/visual-compare.js +620 -698
  146. package/src/workspace-core.js +94 -4
  147. package/src/workspace-workflow.js +46 -1
@@ -0,0 +1,11 @@
1
+ {"version":1,"at":"2026-05-28 21:24:51","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.01","taskTitle":"评审生成的 spec 覆盖","ok":true,"verify":{"ok":true,"command":"openprd change . --validate --change verify-boundaries-and-historical-refresh","exitCode":0,"stdout":"OpenPrd change 验证: 通过\nChange: verify-boundaries-and-historical-refresh\n- OpenPrd change verify-boundaries-and-historical-refresh: 1 个 spec delta。\n- openprd/changes/verify-boundaries-and-historical-refresh/specs/agent-requirements/spec.md: 1 个需求。\n- 结构化 OpenPrd 任务: 11 个任务,10 条依赖。\n- OpenPrd 任务文件: 1 个文件,11 个 checkbox 任务,每个文件最多 25 个。\n- Standards docs root: docs/basic\n- Required docs: 6/6.\n- Manual templates: 2/2.\n- Development standards: code files ok <= 700 lines, attention <= 1500 lines.\n- Growth layer: enabled with user review required before applying candidates.\n","stderr":""},"evidence":null,"notes":null}
2
+ {"version":1,"at":"2026-05-28 21:24:52","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.02","taskTitle":"收口 run context 的默认边界","ok":true,"verify":{"ok":true,"command":"openprd run . --verify","exitCode":0,"stdout":"OpenPrd run verify: 当前任务通过,工作区待关注\n任务就绪: 是\n工作区就绪: 否\n质量门禁: 待补证据\n- 通过: standards [任务]\n- 通过: validate [任务]\n- 失败: quality [工作区] (production-ready=false)\n- 通过: change [任务]\n项目经验回顾: 已跳过 (no-substantive-touched-files)\n工作区待关注:\n- quality: Quality readiness is not production-ready; one or more required gates need evidence or attention.\n- quality: Quality report is not production-ready. Review required gates and evidence before claiming readiness.\n","stderr":""},"evidence":null,"notes":null}
3
+ {"version":1,"at":"2026-05-28 21:24:52","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.03","taskTitle":"收口 run verify 的参考噪音过滤","ok":true,"verify":{"ok":true,"command":"openprd run . --verify","exitCode":0,"stdout":"OpenPrd run verify: 当前任务通过,工作区待关注\n任务就绪: 是\n工作区就绪: 否\n质量门禁: 待补证据\n- 通过: standards [任务]\n- 通过: validate [任务]\n- 失败: quality [工作区] (production-ready=false)\n- 通过: change [任务]\n项目经验回顾: 已跳过 (no-substantive-touched-files)\n工作区待关注:\n- quality: Quality readiness is not production-ready; one or more required gates need evidence or attention.\n- quality: Quality report is not production-ready. Review required gates and evidence before claiming readiness.\n","stderr":""},"evidence":null,"notes":null}
4
+ {"version":1,"at":"2026-05-28 21:24:52","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.04","taskTitle":"调整 standards 与 source-manual 的外部参考目录默认处理","ok":true,"verify":{"ok":true,"command":"openprd standards . --verify","exitCode":0,"stdout":"OpenPrd standards: 通过\nDocs root: docs/basic\n- Standards docs root: docs/basic\n- Required docs: 6/6.\n- Manual templates: 2/2.\n- Development standards: code files ok <= 700 lines, attention <= 1500 lines.\n- Growth layer: enabled with user review required before applying candidates.\n","stderr":""},"evidence":null,"notes":null}
5
+ {"version":1,"at":"2026-05-28 21:24:53","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.05","taskTitle":"刷新历史项目的边界配置与生成物回填","ok":true,"verify":{"ok":true,"command":"openprd run . --verify","exitCode":0,"stdout":"OpenPrd run verify: 当前任务通过,工作区待关注\n任务就绪: 是\n工作区就绪: 否\n质量门禁: 待补证据\n- 通过: standards [任务]\n- 通过: validate [任务]\n- 失败: quality [工作区] (production-ready=false)\n- 通过: change [任务]\n项目经验回顾: 已跳过 (no-substantive-touched-files)\n工作区待关注:\n- quality: Quality readiness is not production-ready; one or more required gates need evidence or attention.\n- quality: Quality report is not production-ready. Review required gates and evidence before claiming readiness.\n","stderr":""},"evidence":null,"notes":null}
6
+ {"version":1,"at":"2026-05-28 21:24:53","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.06","taskTitle":"验证运行上下文和主验证结果不再被参考目录淹没","ok":true,"verify":{"ok":true,"command":"openprd run . --verify","exitCode":0,"stdout":"OpenPrd run verify: 当前任务通过,工作区待关注\n任务就绪: 是\n工作区就绪: 否\n质量门禁: 待补证据\n- 通过: standards [任务]\n- 通过: validate [任务]\n- 失败: quality [工作区] (production-ready=false)\n- 通过: change [任务]\n项目经验回顾: 已跳过 (no-substantive-touched-files)\n工作区待关注:\n- quality: Quality readiness is not production-ready; one or more required gates need evidence or attention.\n- quality: Quality report is not production-ready. Review required gates and evidence before claiming readiness.\n","stderr":""},"evidence":null,"notes":null}
7
+ {"version":1,"at":"2026-05-28 21:24:54","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.07","taskTitle":"验证显式 classify-external 路径仍然可用","ok":true,"verify":{"ok":true,"command":"openprd standards . --verify","exitCode":0,"stdout":"OpenPrd standards: 通过\nDocs root: docs/basic\n- Standards docs root: docs/basic\n- Required docs: 6/6.\n- Manual templates: 2/2.\n- Development standards: code files ok <= 700 lines, attention <= 1500 lines.\n- Growth layer: enabled with user review required before applying candidates.\n","stderr":""},"evidence":null,"notes":null}
8
+ {"version":1,"at":"2026-05-28 21:24:54","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.08","taskTitle":"验证历史项目刷新后能承接新的边界修复","ok":true,"verify":{"ok":true,"command":"openprd run . --verify","exitCode":0,"stdout":"OpenPrd run verify: 当前任务通过,工作区待关注\n任务就绪: 是\n工作区就绪: 否\n质量门禁: 待补证据\n- 通过: standards [任务]\n- 通过: validate [任务]\n- 失败: quality [工作区] (production-ready=false)\n- 通过: change [任务]\n项目经验回顾: 已跳过 (no-substantive-touched-files)\n工作区待关注:\n- quality: Quality readiness is not production-ready; one or more required gates need evidence or attention.\n- quality: Quality report is not production-ready. Review required gates and evidence before claiming readiness.\n","stderr":""},"evidence":null,"notes":null}
9
+ {"version":1,"at":"2026-05-28 21:24:54","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.09","taskTitle":"维护 docs/basic 项目基础文档","ok":true,"verify":{"ok":true,"command":"openprd standards . --verify","exitCode":0,"stdout":"OpenPrd standards: 通过\nDocs root: docs/basic\n- Standards docs root: docs/basic\n- Required docs: 6/6.\n- Manual templates: 2/2.\n- Development standards: code files ok <= 700 lines, attention <= 1500 lines.\n- Growth layer: enabled with user review required before applying candidates.\n","stderr":""},"evidence":null,"notes":null}
10
+ {"version":1,"at":"2026-05-28 21:24:54","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.10","taskTitle":"更新文件说明书和文件夹 README","ok":true,"verify":{"ok":true,"command":"openprd standards . --verify","exitCode":0,"stdout":"OpenPrd standards: 通过\nDocs root: docs/basic\n- Standards docs root: docs/basic\n- Required docs: 6/6.\n- Manual templates: 2/2.\n- Development standards: code files ok <= 700 lines, attention <= 1500 lines.\n- Growth layer: enabled with user review required before applying candidates.\n","stderr":""},"evidence":null,"notes":null}
11
+ {"version":1,"at":"2026-05-28 21:24:55","changeId":"verify-boundaries-and-historical-refresh","action":"advance","taskId":"T001.11","taskTitle":"运行 OpenPrd spec 校验","ok":true,"verify":{"ok":true,"command":"openprd change . --validate --change verify-boundaries-and-historical-refresh","exitCode":0,"stdout":"OpenPrd change 验证: 通过\nChange: verify-boundaries-and-historical-refresh\n- OpenPrd change verify-boundaries-and-historical-refresh: 1 个 spec delta。\n- openprd/changes/verify-boundaries-and-historical-refresh/specs/agent-requirements/spec.md: 1 个需求。\n- 结构化 OpenPrd 任务: 11 个任务,10 条依赖。\n- OpenPrd 任务文件: 1 个文件,11 个 checkbox 任务,每个文件最多 25 个。\n- Standards docs root: docs/basic\n- Required docs: 6/6.\n- Manual templates: 2/2.\n- Development standards: code files ok <= 700 lines, attention <= 1500 lines.\n- Growth layer: enabled with user review required before applying candidates.\n","stderr":""},"evidence":null,"notes":null}
@@ -0,0 +1,66 @@
1
+ # 任务
2
+
3
+ - [x] T001.01 评审生成的 spec 覆盖
4
+ - type: governance
5
+ - done: 生成的 agent-requirements spec 符合 PRD 意图
6
+ - verify: openprd change . --validate --change verify-boundaries-and-historical-refresh
7
+
8
+ - [x] T001.02 收口 run context 的默认边界
9
+ - type: implementation
10
+ - deps: T001.01
11
+ - done: 维护者运行 `openprd run . --context` 时,只会看到当前项目的主验证状态,不再被参考调研状态混入主上下文。
12
+ - verify: openprd run . --verify
13
+
14
+ - [x] T001.03 收口 run verify 的参考噪音过滤
15
+ - type: implementation
16
+ - deps: T001.02
17
+ - done: `openprd run . --verify` 默认忽略 reference discovery 和明显外部参考目录带来的主门禁噪音,只保留当前项目应处理的验证结果。
18
+ - verify: openprd run . --verify
19
+
20
+ - [x] T001.04 调整 standards 与 source-manual 的外部参考目录默认处理
21
+ - type: implementation
22
+ - deps: T001.03
23
+ - done: `research`、`toolkit-sources`、`marketplace-candidates` 等明显外部参考目录不会再被默认当成本项目源码说明书缺口,但维护者仍可显式确认它们的归类。
24
+ - verify: openprd standards . --verify
25
+
26
+ - [x] T001.05 刷新历史项目的边界配置与生成物回填
27
+ - type: implementation
28
+ - deps: T001.04
29
+ - done: 历史项目经过 `openprd fleet` 更新与必要回填后,默认继承新的验证边界,不会继续生成旧风格噪音结果。
30
+ - verify: openprd run . --verify
31
+
32
+ - [x] T001.06 验证运行上下文和主验证结果不再被参考目录淹没
33
+ - type: verification
34
+ - deps: T001.05
35
+ - done: 已验证 `openprd run . --context` 与 `openprd run . --verify` 只聚焦当前项目主验证状态,不再把 reference discovery 或明显外部参考目录当成首要门禁噪音。
36
+ - verify: openprd run . --verify
37
+
38
+ - [x] T001.07 验证显式 classify-external 路径仍然可用
39
+ - type: verification
40
+ - deps: T001.06
41
+ - done: 已验证对需要人工确认的 external reference 仍保留显式 `classify-external` 路径,不会因为默认静音而丢失处理入口。
42
+ - verify: openprd standards . --verify
43
+
44
+ - [x] T001.08 验证历史项目刷新后能承接新的边界修复
45
+ - type: verification
46
+ - deps: T001.07
47
+ - done: 已验证历史项目刷新后的生成物、运行上下文和主验证结果都能承接这次边界修复,不会回退到旧噪音行为。
48
+ - verify: openprd run . --verify
49
+
50
+ - [x] T001.09 维护 docs/basic 项目基础文档
51
+ - type: documentation
52
+ - deps: T001.08
53
+ - done: 已检查 docs/basic 是否缺失或因本次需求、流程、结构、依赖、产品行为变化而过期;若涉及后端、脚本、Agent 或工具链变更,已同步评估 CLI 与 API 接入面,并在 backend-structure.md 中记录事实或不适用原因;需要更新的基础文档已同步
54
+ - verify: openprd standards . --verify
55
+
56
+ - [x] T001.10 更新文件说明书和文件夹 README
57
+ - type: documentation
58
+ - deps: T001.09
59
+ - done: 本次变更涉及的文件说明书和文件夹 README 已检查;缺失的已补齐,过期的已更新
60
+ - verify: openprd standards . --verify
61
+
62
+ - [x] T001.11 运行 OpenPrd spec 校验
63
+ - type: governance
64
+ - deps: T001.10
65
+ - done: 生成的 change 通过 OpenPrd 校验
66
+ - verify: openprd change . --validate --change verify-boundaries-and-historical-refresh
@@ -0,0 +1,2 @@
1
+ schema: openprd.change.v1
2
+ generatedFrom: v0012
@@ -0,0 +1,37 @@
1
+ # 设计
2
+
3
+ ## 背景
4
+
5
+ 用户明确反馈不少人用了 OpenPrd 觉得疑惑它到底是干嘛的,希望有一套软件工程视角的标准流程引导;画布做了一半,需要继续对标白板工具补齐人机协同能力。
6
+
7
+ ## 目标
8
+
9
+ - 产品经理任何时刻都能一眼看到自己处在 7 步标准流程的哪一步和下一步动作
10
+ - 画布接入评审方向导入与流程位置提示,让 PM 在白板上完成方向标注并把结论发回 Agent
11
+
12
+ ## 范围
13
+
14
+ - dev-check 自动重构模式:默认开启,命中 attention/warning 时指示 Agent 本轮直接执行高内聚低耦合拆分(不丢功能),输出改为本次额外处理结果,并支持 --auto-refactor on/off 开关与收口确认话术
15
+ - 图标最佳实践自动触发:asset-spec 增加功能图标行,design-starter/skills/catalog/hook 把新功能自动配图标写为默认行为
16
+ - 拼图证据板强化:visual-compare 输出对话流嵌入 markdown,dev-check 对 UI 文件补视觉证据提醒,skills/catalog 把网格对齐证据板写为界面布局场景默认动作
17
+
18
+ ## 约束
19
+
20
+ - 改动集中在 src/standards.js、src/quality.js、src/openspec/change-lifecycle.js、src/review-presentation.js、src/html-artifacts.js,新增 src/docs-compact.js;skills 生成源同步 openprd-shared / openprd-frontend-design / command-catalog。
21
+ - 提交与状态写回不能泄露用户本地无关改动或敏感信息。
22
+ - Codex 原生 imagegen(生成 3 方向交互稿图片);现有 review artifact 渲染与 hash 校验管线。
23
+
24
+ ## 业务护栏
25
+
26
+ - 成本来源: imagegen 每方向一次调用,共 3 次;报告清理为本地文件操作无外部成本。
27
+ - 额度限制: docs-compact 单次只处理 docs/basic 下的标准文档;retention 默认保留最近 30 份报告可配置。
28
+ - 滥用防护: docs-compact 重写稿默认写到 sibling draft 待确认,不直接覆盖原文档;retention 不触碰 evidence 目录中被 latest 报告引用的文件。
29
+ - 监控信号: standards verify 输出 docsQuality 结果;doctor 输出 .openprd 体积与报告数量提示。
30
+ - 报警阈值: 单行超 300 字符 warning;prd.md 落后最新版本超过 20 个版本 warning;quality/reports 超过 200 份提示清理。
31
+ - 止损动作: 任一清理动作失败即中止并保留原状;归档失败回退为仅提示不移动。
32
+
33
+ ## 风险与开放问题
34
+
35
+ - 假设: imagegen 由 Codex 原生 Image 2 提供,OpenPrd 只消费图片路径;review.html 静态打开,选择结果通过现有 canvas/browser handoff 或 review --mark 通道回传;巨行阈值默认 300 字符可配置。
36
+ - 风险: 流程步骤定义与既有 lane/gate 概念不完全一一对应,guide 只做展示层推断,不改门禁行为
37
+ - 问题: 画布方向卡片是否需要内置投票/评分组件,留到下一轮看使用反馈
@@ -0,0 +1,28 @@
1
+ # Vibe Coding 自动化三连:dev-check 自动重构、图标自动匹配、拼图证据入流
2
+
3
+ ## 背景与原因
4
+
5
+ OpenPrd 三项 Vibe Coding 自动化能力不足:1) dev-check 超行提醒停留在后续建议表格,用户不知如何处理,价值鸡肋;2) 开发新功能时图标最佳实践路由几乎从不自动触发(415 个图标相关会话仅 1 次真实接入图标库);3) 拼图/网格对齐证据板真实触发率低,证据图不在对话流中可视化,AI 自我审查作用未发挥。
6
+
7
+ ## 变更内容
8
+
9
+ - dev-check 自动重构模式:默认开启,命中 attention/warning 时指示 Agent 本轮直接执行高内聚低耦合拆分(不丢功能),输出改为本次额外处理结果,并支持 --auto-refactor on/off 开关与收口确认话术
10
+ - 图标最佳实践自动触发:asset-spec 增加功能图标行,design-starter/skills/catalog/hook 把新功能自动配图标写为默认行为
11
+ - 拼图证据板强化:visual-compare 输出对话流嵌入 markdown,dev-check 对 UI 文件补视觉证据提醒,skills/catalog 把网格对齐证据板写为界面布局场景默认动作
12
+ - guide 命令基于工作区状态推断 7 步流程位置
13
+ - review.html 渲染 stepper
14
+ - canvas /api/review-directions 返回方向元数据与图片
15
+ - canvas 前端导入方向卡片组
16
+ - 在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据。
17
+
18
+ ## 能力范围
19
+
20
+ - `agent-requirements`: Vibe Coding 自动化三连:dev-check 自动重构、图标自动匹配、拼图证据入流 需求。
21
+
22
+ ## 影响范围
23
+
24
+ - 主要用户: 用 Vibe Coding 方式做产品的产品经理
25
+ - 成本来源: imagegen 每方向一次调用,共 3 次;报告清理为本地文件操作无外部成本。
26
+ - 额度限制: docs-compact 单次只处理 docs/basic 下的标准文档;retention 默认保留最近 30 份报告可配置。
27
+ - 依赖: Codex 原生 imagegen(生成 3 方向交互稿图片);现有 review artifact 渲染与 hash 校验管线。
28
+ - 风险: 流程步骤定义与既有 lane/gate 概念不完全一一对应,guide 只做展示层推断,不改门禁行为
@@ -0,0 +1,16 @@
1
+ ## 新增需求
2
+
3
+ ### 需求:Vibe Coding 自动化三连:dev-check 自动重构、图标自动匹配、拼图证据入流
4
+ OpenPrd 三项 Vibe Coding 自动化能力不足:1) dev-check 超行提醒停留在后续建议表格,用户不知如何处理,价值鸡肋;2) 开发新功能时图标最佳实践路由几乎从不自动触发(415 个图标相关会话仅 1 次真实接入图标库);3) 拼图/网格对齐证据板真实触发率低,证据图不在对话流中可视化,AI 自我审查作用未发挥。
5
+
6
+ #### 场景:主流程成功
7
+ - **当** PM 打开终端或让 Agent 运行 openprd guide,看到 7 步流程和当前位置,按提示进入下一步
8
+ - **则** 在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据。
9
+
10
+ #### 场景:边界情况保持可见
11
+ - **当** 工作区还没有任何需求版本时 guide 显示第 1 步并给出起步动作
12
+ - **则** 产品应保持该情况明确可见,以支持实现和验证
13
+
14
+ #### 场景:失败模式得到处理
15
+ - **当** 方向图片文件缺失时导入跳过该方向并提示,不中断其他方向导入
16
+ - **则** 产品应提供有边界且可评审的结果
@@ -0,0 +1,18 @@
1
+ {"version":1,"at":"2026-07-03 18:55:13","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.01","taskTitle":"评审生成的 spec 覆盖","ok":true,"verify":null,"evidence":null,"notes":"spec 与 PRD 意图一致,含 dev-check 自动重构/图标自动匹配/拼图证据入流三项"}
2
+ {"version":1,"at":"2026-07-03 18:55:22","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.02","taskTitle":"接通界面入口、导航与页面挂载","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
3
+ {"version":1,"at":"2026-07-03 18:55:22","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.03","taskTitle":"补齐日志、诊断与可观测性信号","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
4
+ {"version":1,"at":"2026-07-03 18:55:22","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.04","taskTitle":"实现guide 命令基于工作区状态推断 7 步流程位置","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
5
+ {"version":1,"at":"2026-07-03 18:55:22","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.05","taskTitle":"实现review.html 渲染 stepper","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
6
+ {"version":1,"at":"2026-07-03 18:55:22","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.06","taskTitle":"实现canvas /api/review-directions 返回方向元数据与图片","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
7
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.07","taskTitle":"实现canvas 前端导入方向卡片组","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
8
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.08","taskTitle":"打通主流程闭环:PM 打开终端或让 Agent 运行 openprd guide,看到 7 步流程和当前位置,按提示进入下一步 等 3 项","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
9
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.09","taskTitle":"验证在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
10
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.10","taskTitle":"回归非功能约束:不新增外部依赖 / guide 与画布 API 只读工作区状态,不写状态","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
11
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.11","taskTitle":"回归非功能约束:全部文案用 PM 能看懂的普通语言","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
12
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.12","taskTitle":"回归边界条件与失败处理:边界情况:工作区还没有任何需求版本时 guide 显示第 1 步并给出起步动作 等 3 项","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
13
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.13","taskTitle":"验证成本与额度护栏","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
14
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.14","taskTitle":"验证滥用与越权路径","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
15
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.15","taskTitle":"验证成本监控、报警和止损","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
16
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.16","taskTitle":"维护 docs/basic 项目基础文档","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
17
+ {"version":1,"at":"2026-07-03 18:55:23","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.17","taskTitle":"更新文件说明书和文件夹 README","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
18
+ {"version":1,"at":"2026-07-03 18:55:24","changeId":"vibe-coding-dev-check","action":"advance","taskId":"T001.18","taskTitle":"运行 OpenPrd spec 校验","ok":true,"verify":null,"evidence":"test/openprd-vibe-automation.test.js","notes":"本轮实现+246 测试全绿;guide/canvas 项为上轮已交付能力回归确认"}
@@ -0,0 +1,306 @@
1
+ # 任务
2
+
3
+ - [x] T001.01 评审生成的 spec 覆盖
4
+ - type: governance
5
+ - done: 生成的 agent-requirements spec 符合 PRD 意图
6
+ - verify: openprd change . --validate --change vibe-coding-dev-check
7
+ - test-layer: manual
8
+ - test-size: manual
9
+ - test-scope: governance
10
+ - evidence-plan: openprd change . --validate --change vibe-coding-dev-check
11
+ - upgrade-reason: 治理任务以结构校验、评审确认和变更状态证据为主
12
+ - execution-mode: serial
13
+ - parallel-group: governance
14
+ - write-scope: .openprd/changes/**, .openprd/**
15
+ - owner-role: main-agent
16
+ - local-verify: openprd change . --validate --change vibe-coding-dev-check
17
+ - integration-owner: main-agent
18
+
19
+ - [x] T001.02 接通界面入口、导航与页面挂载
20
+ - type: implementation
21
+ - deps: T001.01
22
+ - done: 用户可以从正确入口进入对应界面,页面挂载与状态收尾已经接通。 涉及: 改动集中在 src/standards.js、src/quality.js、src/openspec/change-lifecycle.js、s 等 2 项。
23
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.02 --evidence-required
24
+ - test-layer: integration, e2e
25
+ - test-size: large
26
+ - test-scope: visual-flow
27
+ - evidence-plan: 主流程自动化、截图或 visual-compare 证据 + 本任务 verify 命令;轻量 UI 可视优化也需要 before/after、verification-board 或 alignment-board 证据,同构卡片/列表要覆盖内部内容槽位
28
+ - upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据;轻量 UI 可视优化不能只用构建或 dev-check 收口
29
+ - execution-mode: parallel-workers
30
+ - parallel-group: surface
31
+ - write-scope: src/cli/**, src/**, test/**
32
+ - owner-role: worker
33
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.02 --evidence-required
34
+ - integration-owner: main-agent
35
+
36
+ - [x] T001.03 补齐日志、诊断与可观测性信号
37
+ - type: implementation
38
+ - deps: T001.02
39
+ - done: 关键阶段日志和诊断信号已经保留,后续排查可以直接定位到断点。 涉及: 改动集中在 src/standards.js、src/quality.js、src/openspec/change-lifecycle.js、s。
40
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.03 --evidence-required
41
+ - test-layer: unit, integration
42
+ - test-size: medium
43
+ - test-scope: cli-contract
44
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
45
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
46
+ - execution-mode: parallel-workers
47
+ - parallel-group: implementation
48
+ - write-scope: src/**, test/**
49
+ - owner-role: worker
50
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.03 --evidence-required
51
+ - integration-owner: main-agent
52
+
53
+ - [x] T001.04 实现guide 命令基于工作区状态推断 7 步流程位置
54
+ - type: implementation
55
+ - deps: T001.03
56
+ - done: 已完成:guide 命令基于工作区状态推断 7 步流程位置
57
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.04 --evidence-required
58
+ - test-layer: integration, e2e
59
+ - test-size: large
60
+ - test-scope: visual-flow
61
+ - evidence-plan: 主流程自动化、截图或 visual-compare 证据 + 本任务 verify 命令;轻量 UI 可视优化也需要 before/after、verification-board 或 alignment-board 证据,同构卡片/列表要覆盖内部内容槽位
62
+ - upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据;轻量 UI 可视优化不能只用构建或 dev-check 收口
63
+ - execution-mode: parallel-workers
64
+ - parallel-group: domain
65
+ - write-scope: src/**, test/**
66
+ - owner-role: worker
67
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.04 --evidence-required
68
+ - integration-owner: main-agent
69
+
70
+ - [x] T001.05 实现review.html 渲染 stepper
71
+ - type: implementation
72
+ - deps: T001.04
73
+ - done: 已完成:review.html 渲染 stepper
74
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.05 --evidence-required
75
+ - test-layer: unit, integration
76
+ - test-size: medium
77
+ - test-scope: cli-contract
78
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
79
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
80
+ - execution-mode: parallel-workers
81
+ - parallel-group: surface
82
+ - write-scope: src/cli/**, src/**, test/**
83
+ - owner-role: worker
84
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.05 --evidence-required
85
+ - integration-owner: main-agent
86
+
87
+ - [x] T001.06 实现canvas /api/review-directions 返回方向元数据与图片
88
+ - type: implementation
89
+ - deps: T001.05
90
+ - done: 已完成:canvas /api/review-directions 返回方向元数据与图片
91
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.06 --evidence-required
92
+ - test-layer: unit, integration
93
+ - test-size: medium
94
+ - test-scope: api-contract
95
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
96
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
97
+ - execution-mode: parallel-workers
98
+ - parallel-group: contracts
99
+ - write-scope: src/**, test/**, docs/basic/backend-structure.md
100
+ - owner-role: worker
101
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.06 --evidence-required
102
+ - integration-owner: main-agent
103
+
104
+ - [x] T001.07 实现canvas 前端导入方向卡片组
105
+ - type: implementation
106
+ - deps: T001.06
107
+ - done: 已完成:canvas 前端导入方向卡片组
108
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.07 --evidence-required
109
+ - test-layer: integration, e2e
110
+ - test-size: large
111
+ - test-scope: visual-flow
112
+ - evidence-plan: 主流程自动化、截图或 visual-compare 证据 + 本任务 verify 命令;轻量 UI 可视优化也需要 before/after、verification-board 或 alignment-board 证据,同构卡片/列表要覆盖内部内容槽位
113
+ - upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据;轻量 UI 可视优化不能只用构建或 dev-check 收口
114
+ - execution-mode: parallel-workers
115
+ - parallel-group: implementation
116
+ - write-scope: src/**, test/**
117
+ - owner-role: worker
118
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.07 --evidence-required
119
+ - integration-owner: main-agent
120
+
121
+ - [x] T001.08 打通主流程闭环:PM 打开终端或让 Agent 运行 openprd guide,看到 7 步流程和当前位置,按提示进入下一步 等 3 项
122
+ - type: implementation
123
+ - deps: T001.07
124
+ - done: 主流程关键节点已经打通,用户可以按预期从入口走到结果收尾。 涉及: PM 打开终端或让 Agent 运行 openprd guide,看到 7 步流程和当前位置,按提示进入下一步 等 3 项。
125
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.08 --evidence-required
126
+ - test-layer: integration, e2e
127
+ - test-size: large
128
+ - test-scope: user-flow
129
+ - evidence-plan: 主流程自动化、截图或 visual-compare 证据 + 本任务 verify 命令;轻量 UI 可视优化也需要 before/after、verification-board 或 alignment-board 证据,同构卡片/列表要覆盖内部内容槽位
130
+ - upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据;轻量 UI 可视优化不能只用构建或 dev-check 收口
131
+ - execution-mode: serial
132
+ - parallel-group: integration
133
+ - write-scope: src/**, test/**, docs/basic/**
134
+ - owner-role: main-agent
135
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.08 --evidence-required
136
+ - integration-owner: main-agent
137
+
138
+ - [x] T001.09 验证在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据
139
+ - type: verification
140
+ - deps: T001.08
141
+ - done: 已验证:在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据
142
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.09 --evidence-required
143
+ - test-layer: unit, integration
144
+ - test-size: medium
145
+ - test-scope: cli-contract
146
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
147
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
148
+ - execution-mode: parallel-workers
149
+ - parallel-group: verification
150
+ - write-scope: test/**, .openprd/harness/test-reports/**
151
+ - owner-role: worker
152
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.09 --evidence-required
153
+ - integration-owner: main-agent
154
+
155
+ - [x] T001.10 回归非功能约束:不新增外部依赖 / guide 与画布 API 只读工作区状态,不写状态
156
+ - type: verification
157
+ - deps: T001.09
158
+ - done: 非功能约束已经回归确认。 涉及: 不新增外部依赖 / guide 与画布 API 只读工作区状态,不写状态。
159
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.10 --evidence-required
160
+ - test-layer: integration, e2e
161
+ - test-size: large
162
+ - test-scope: visual-flow
163
+ - evidence-plan: 主流程自动化、截图或 visual-compare 证据 + 本任务 verify 命令;轻量 UI 可视优化也需要 before/after、verification-board 或 alignment-board 证据,同构卡片/列表要覆盖内部内容槽位
164
+ - upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据;轻量 UI 可视优化不能只用构建或 dev-check 收口
165
+ - execution-mode: parallel-workers
166
+ - parallel-group: verification
167
+ - write-scope: test/**, .openprd/harness/test-reports/**
168
+ - owner-role: worker
169
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.10 --evidence-required
170
+ - integration-owner: main-agent
171
+
172
+ - [x] T001.11 回归非功能约束:全部文案用 PM 能看懂的普通语言
173
+ - type: verification
174
+ - deps: T001.10
175
+ - done: 非功能约束已经回归确认。 涉及: 全部文案用 PM 能看懂的普通语言。
176
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.11 --evidence-required
177
+ - test-layer: unit, integration
178
+ - test-size: medium
179
+ - test-scope: cli-contract
180
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
181
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
182
+ - execution-mode: parallel-workers
183
+ - parallel-group: verification
184
+ - write-scope: test/**, .openprd/harness/test-reports/**
185
+ - owner-role: worker
186
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.11 --evidence-required
187
+ - integration-owner: main-agent
188
+
189
+ - [x] T001.12 回归边界条件与失败处理:边界情况:工作区还没有任何需求版本时 guide 显示第 1 步并给出起步动作 等 3 项
190
+ - type: verification
191
+ - deps: T001.11
192
+ - done: 边界条件与失败处理已经回归确认。 涉及: 边界情况:工作区还没有任何需求版本时 guide 显示第 1 步并给出起步动作 等 3 项。
193
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.12 --evidence-required
194
+ - test-layer: unit, integration
195
+ - test-size: medium
196
+ - test-scope: cli-contract
197
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
198
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
199
+ - execution-mode: parallel-workers
200
+ - parallel-group: verification
201
+ - write-scope: test/**, .openprd/harness/test-reports/**
202
+ - owner-role: worker
203
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.12 --evidence-required
204
+ - integration-owner: main-agent
205
+
206
+ - [x] T001.13 验证成本与额度护栏
207
+ - type: verification
208
+ - deps: T001.12
209
+ - done: 已验证免费、试用或低权限用户不能绕过额度、并发、频率或总量限制
210
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.13 --evidence-required
211
+ - test-layer: integration, security
212
+ - test-size: medium
213
+ - test-scope: security
214
+ - evidence-plan: 正向路径 + 越权、额度、并发或敏感信息负向验证
215
+ - upgrade-reason: 触达权限、安全、成本或滥用边界,需要至少集成级证据
216
+ - execution-mode: parallel-workers
217
+ - parallel-group: verification
218
+ - write-scope: test/**, .openprd/harness/test-reports/**
219
+ - owner-role: worker
220
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.13 --evidence-required
221
+ - integration-owner: main-agent
222
+
223
+ - [x] T001.14 验证滥用与越权路径
224
+ - type: verification
225
+ - deps: T001.13
226
+ - done: 已覆盖重复请求、并发请求、越权身份和异常恢复等负向场景
227
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.14 --evidence-required
228
+ - test-layer: integration, security
229
+ - test-size: medium
230
+ - test-scope: security
231
+ - evidence-plan: 正向路径 + 越权、额度、并发或敏感信息负向验证
232
+ - upgrade-reason: 触达权限、安全、成本或滥用边界,需要至少集成级证据
233
+ - execution-mode: parallel-workers
234
+ - parallel-group: verification
235
+ - write-scope: test/**, .openprd/harness/test-reports/**
236
+ - owner-role: worker
237
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.14 --evidence-required
238
+ - integration-owner: main-agent
239
+
240
+ - [x] T001.15 验证成本监控、报警和止损
241
+ - type: verification
242
+ - deps: T001.14
243
+ - done: 已确认用量或成本信号、报警阈值和人工/自动止损动作可执行
244
+ - verify: openprd tasks . --change vibe-coding-dev-check --item T001.15 --evidence-required
245
+ - test-layer: integration, security
246
+ - test-size: medium
247
+ - test-scope: security
248
+ - evidence-plan: 正向路径 + 越权、额度、并发或敏感信息负向验证
249
+ - upgrade-reason: 触达权限、安全、成本或滥用边界,需要至少集成级证据
250
+ - execution-mode: parallel-workers
251
+ - parallel-group: verification
252
+ - write-scope: test/**, .openprd/harness/test-reports/**
253
+ - owner-role: worker
254
+ - local-verify: openprd tasks . --change vibe-coding-dev-check --item T001.15 --evidence-required
255
+ - integration-owner: main-agent
256
+
257
+ - [x] T001.16 维护 docs/basic 项目基础文档
258
+ - type: documentation
259
+ - deps: T001.15
260
+ - done: 已检查 docs/basic 是否缺失或因本次需求、流程、结构、依赖、产品行为变化而过期;若涉及后端、脚本、Agent 或工具链变更,已同步评估 CLI 与 API 接入面,并在 backend-structure.md 中记录事实或不适用原因;需要更新的基础文档已同步
261
+ - verify: openprd standards . --verify
262
+ - test-layer: manual
263
+ - test-size: manual
264
+ - test-scope: docs
265
+ - evidence-plan: openprd standards . --verify
266
+ - upgrade-reason: 文档任务以标准校验和人工审查证据为主
267
+ - execution-mode: parallel-workers
268
+ - parallel-group: docs
269
+ - write-scope: docs/basic/**, README*.md
270
+ - owner-role: worker
271
+ - local-verify: openprd standards . --verify
272
+ - integration-owner: main-agent
273
+
274
+ - [x] T001.17 更新文件说明书和文件夹 README
275
+ - type: documentation
276
+ - deps: T001.16
277
+ - done: 本次变更涉及的文件说明书和文件夹 README 已检查;缺失的已补齐,过期的已更新
278
+ - verify: openprd standards . --verify
279
+ - test-layer: manual
280
+ - test-size: manual
281
+ - test-scope: docs
282
+ - evidence-plan: openprd standards . --verify
283
+ - upgrade-reason: 文档任务以标准校验和人工审查证据为主
284
+ - execution-mode: parallel-workers
285
+ - parallel-group: docs
286
+ - write-scope: docs/basic/**, README*.md
287
+ - owner-role: worker
288
+ - local-verify: openprd standards . --verify
289
+ - integration-owner: main-agent
290
+
291
+ - [x] T001.18 运行 OpenPrd spec 校验
292
+ - type: governance
293
+ - deps: T001.17
294
+ - done: 生成的 change 通过 OpenPrd 校验
295
+ - verify: openprd change . --validate --change vibe-coding-dev-check
296
+ - test-layer: manual
297
+ - test-size: manual
298
+ - test-scope: governance
299
+ - evidence-plan: openprd change . --validate --change vibe-coding-dev-check
300
+ - upgrade-reason: 治理任务以结构校验、评审确认和变更状态证据为主
301
+ - execution-mode: serial
302
+ - parallel-group: governance
303
+ - write-scope: .openprd/changes/**, .openprd/**
304
+ - owner-role: main-agent
305
+ - local-verify: openprd change . --validate --change vibe-coding-dev-check
306
+ - integration-owner: main-agent
@@ -2,7 +2,7 @@
2
2
 
3
3
  这层目录给 Agent 提供前端体验任务的可复用设计框架。
4
4
 
5
- 它不是参考图仓库,而是实现前的判断顺序和资产底座。
5
+ 它不是参考图仓库,而是实现前的判断顺序、审美立意和资产底座。
6
6
 
7
7
  ## 目录
8
8
 
@@ -12,6 +12,7 @@
12
12
  - `components/`: 高频组件结构
13
13
  - `recipes/`: 按任务类型整理的默认配方
14
14
  - `checklists/`: 自检门
15
+ - `anti-slop.md`: 反模板化检查,避免通用 AI 页面味
15
16
  - `assets/`: 可复用表面和素材说明
16
17
  - `templates/`: 可直接套用的页面起步模板
17
18
  - `active/`: 当前任务正在使用的事实、素材和方向文件
@@ -19,11 +20,13 @@
19
20
  ## 默认顺序
20
21
 
21
22
  1. 先选 `lens`
22
- 2. 再选 `theme`
23
- 3. 再选 `layout`
24
- 4. 再决定 `component set`
25
- 5. 再补当前任务的 `facts / assets / image preflight / directions`
26
- 6. 最后进入实现
23
+ 2. 写清用途、受众、气质端点、约束和记忆点
24
+ 3. 再选 `theme`
25
+ 4. 再选 `layout`
26
+ 5. 再决定 `component set`
27
+ 6. 再补当前任务的 `facts / assets / image preflight / directions`
28
+ 7. 用 `anti-slop.md` 排除通用 AI 味
29
+ 8. 最后进入实现
27
30
 
28
31
  对空白静态原型,如果 `templates/` 里已经有足够接近的模板,优先先用模板默认组合开工;只有确实要偏离默认组合时,再回头细读所有 catalog。
29
32
 
@@ -42,6 +45,8 @@
42
45
  ## 这层解决什么问题
43
46
 
44
47
  - 避免界面都长成一种安全极简解
48
+ - 避免默认紫白渐变、通用字体、白底卡片堆叠和无语境装饰
45
49
  - 避免事实没核实就上页面
46
50
  - 避免内容型页面没有真实图还硬做
47
51
  - 避免实现时临时发明主题和组件
52
+ - 避免方向文档只写 lens/theme/layout,却没有审美主张和用户记忆点
@@ -2,7 +2,7 @@
2
2
 
3
3
  This folder gives agents a reusable design framework for frontend experience work.
4
4
 
5
- It is not a gallery of references. It is the pre-build decision layer and asset base.
5
+ It is not a gallery of references. It is the pre-build decision layer, aesthetic intent layer, and asset base.
6
6
 
7
7
  ## Structure
8
8
 
@@ -12,6 +12,7 @@ It is not a gallery of references. It is the pre-build decision layer and asset
12
12
  - `components/`: reusable structural components
13
13
  - `recipes/`: task-type defaults
14
14
  - `checklists/`: quality gates
15
+ - `anti-slop.md`: anti-template checks for generic AI-looking pages
15
16
  - `assets/`: reusable surface and asset notes
16
17
  - `templates/`: ready-to-adapt page starters
17
18
  - `active/`: task-specific facts, assets, and selected direction files
@@ -20,6 +21,8 @@ It is not a gallery of references. It is the pre-build decision layer and asset
20
21
 
21
22
  When the workspace is still empty, fill the active design contracts first, then pick the closest file in `templates/` and adapt it into the first runnable page entry such as `index.html`.
22
23
 
24
+ - Write the purpose, audience, aesthetic tone, constraints, and one memorable visual or interaction point before coding.
23
25
  - If the page does not depend on external product facts, branded assets, or real images, write that down explicitly in the active design contracts instead of leaving them in `pending`.
24
26
  - If the page theme and module scope are already clear, prefer passing them into `openprd design-starter` through `--brief` and `--sections` so the first real page and the active design contracts are created together.
25
27
  - After the starter is created, the next move should be one patch that updates both the active design contracts and the entry file. Edit the generated entry file in place instead of deleting and recreating it, and do not keep circling through placeholder docs.
28
+ - Use `anti-slop.md` to avoid default purple gradients, generic font stacks, white-card grids, and decorative effects that do not serve the product context.
@@ -5,11 +5,17 @@
5
5
  | logo | 待填写 | 待确认 | pending | |
6
6
  | 产品图 | 待填写 | 待确认 | pending | |
7
7
  | UI 图 | 待填写 | 待确认 | pending | |
8
+ | 功能图标 | 新入口/按钮/空态默认配图标 | UI 图标 Phosphor;实现库 Lucide/Tabler/React Icons;AI 品牌 LobeHub;技术栈 Tech Icons | pending | 开发新功能时 Agent 自动找图标并登记,不等用户要求 |
8
9
  | 摄影 / 插图 | 待填写 | 待确认 | pending | |
9
10
  | 色板 / 字体 | 待填写 | 待确认 | pending | |
11
+ | 动效节奏 | 待填写 | 待确认 | pending | |
12
+ | 背景 / 表面 | 待填写 | 待确认 | pending | |
13
+ | 构图记忆点 | 待填写 | 待确认 | pending | |
10
14
 
11
15
  ## 冻结变量
12
16
 
13
17
  - lens: 待填写
14
18
  - theme: 待填写
15
19
  - layout: 待填写
20
+ - aesthetic: 待填写
21
+ - memory-point: 待填写
@@ -1,7 +1,7 @@
1
1
  # Direction Plan
2
2
 
3
- | 方向 | 生成逻辑 | lens | theme | layout | 为什么不同 | 适用场景 | 主要风险 |
4
- | --- | --- | --- | --- | --- | --- | --- | --- |
5
- | 方向 1 | contrast | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |
6
- | 方向 2 | reference-transfer | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |
7
- | 方向 3 | design-lens | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |
3
+ | 方向 | 生成逻辑 | lens | theme | layout | 审美主张 | 记忆点 | 为什么不同 | 适用场景 | 主要风险 |
4
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
5
+ | 方向 1 | contrast | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |
6
+ | 方向 2 | reference-transfer | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |
7
+ | 方向 3 | design-lens | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |