@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.
- package/.openprd/benchmarks/index.md +15 -1
- package/.openprd/config.yaml +10 -0
- package/.openprd/design/README.md +47 -0
- package/.openprd/design/README_EN.md +25 -0
- package/.openprd/design/active/asset-spec.md +15 -0
- package/.openprd/design/active/direction-plan.md +7 -0
- package/.openprd/design/active/facts-sheet.md +13 -0
- package/.openprd/design/active/image-preflight.md +9 -0
- package/.openprd/design/active/selected-direction.md +11 -0
- package/.openprd/design/anti-slop.md +16 -0
- package/.openprd/design/assets/dark-mesh.svg +14 -0
- package/.openprd/design/assets/paper-grid.svg +14 -0
- package/.openprd/design/assets/surface-presets.md +21 -0
- package/.openprd/design/assets/workbench-grid.svg +16 -0
- package/.openprd/design/checklists/ui-quality-gate.md +22 -0
- package/.openprd/design/components/component-catalog.md +42 -0
- package/.openprd/design/layouts/layout-catalog.json +45 -0
- package/.openprd/design/lenses/frontend-lenses.md +31 -0
- package/.openprd/design/recipes/content-experience.md +26 -0
- package/.openprd/design/recipes/operational-tool.md +25 -0
- package/.openprd/design/recipes/product-launch.md +26 -0
- package/.openprd/design/templates/README.md +36 -0
- package/.openprd/design/templates/README_EN.md +31 -0
- package/.openprd/design/templates/content-home.html +415 -0
- package/.openprd/design/templates/ops-dashboard.html +340 -0
- package/.openprd/design/templates/product-launch.html +360 -0
- package/.openprd/design/themes/theme-catalog.json +77 -0
- package/.openprd/engagements/active/prd.md +111 -100
- package/.openprd/schema/prd.schema.yaml +10 -0
- package/.openprd/templates/base/intake.md +4 -0
- package/.openprd/templates/base/prd.md +16 -6
- package/AGENTS.md +10 -7
- package/README.md +28 -10
- package/README_EN.md +23 -3
- package/package.json +41 -2
- package/scripts/openprd-codex-isolated-worker.mjs +799 -0
- package/skills/openprd-benchmark-router/SKILL.md +4 -0
- package/skills/openprd-frontend-design/SKILL.md +161 -0
- package/skills/openprd-frontend-design/references/design-asset-contract.md +34 -0
- package/skills/openprd-frontend-design/references/direction-engine.md +46 -0
- package/skills/openprd-harness/SKILL.md +38 -21
- package/skills/openprd-learning-review/SKILL.md +2 -1
- package/skills/openprd-learning-review/references/style-packs/xianxia-cultivation.prompt.md +1 -1
- package/skills/openprd-quality/SKILL.md +6 -4
- package/skills/openprd-requirement-intake/SKILL.md +27 -5
- package/skills/openprd-requirement-intake/references/prd-template-lenses.md +6 -3
- package/skills/openprd-requirement-intake/references/routing-rubric.md +9 -5
- package/skills/openprd-requirement-intake/references/startup-validation-lens.md +23 -0
- package/skills/openprd-router/SKILL.md +13 -5
- package/skills/openprd-shared/SKILL.md +38 -25
- package/src/agent-integration.js +126 -75
- package/src/brainstorm-artifacts.js +1657 -0
- package/src/brainstorm-presentation.js +223 -0
- package/src/brainstorm.js +603 -0
- package/src/cli/args.js +51 -3
- package/src/cli/doctor-print.js +34 -8
- package/src/cli/print.js +6 -0
- package/src/cli/quality-print.js +70 -0
- package/src/cli/run-print.js +43 -1
- package/src/cli/shared-print.js +33 -2
- package/src/cli/workflow-print.js +21 -0
- package/src/codex-hook-runner-template.mjs +858 -65
- package/src/design-starter-support.js +462 -0
- package/src/design-starter.js +1207 -0
- package/src/knowledge.js +377 -21
- package/src/learning-review.js +3 -3
- package/src/loop.js +839 -101
- package/src/openprd.js +86 -1
- package/src/openspec/change-validate.js +1 -0
- package/src/prd-core.js +18 -0
- package/src/quality-learning.js +50 -6
- package/src/quality.js +2 -2
- package/src/run-harness.js +191 -29
- package/src/self-update.js +301 -4
- package/src/standards.js +46 -5
- package/src/visual-prepare.js +940 -0
- package/src/workspace-core.js +137 -0
- package/src/workspace-workflow.js +190 -7
- package/.openprd/benchmarks/evidence/milvus-io-ai-code-review-gets-better-when-models-debate-claude-vs-gemini-vs-code.md +0 -14
- package/.openprd/benchmarks/evidence/nolanlawson-com-using-ai-to-write-better-code-more-slowly.md +0 -14
- package/.openprd/discovery/config.json +0 -35
- package/.openprd/engagements/active/flows.md +0 -35
- package/.openprd/engagements/active/handoff.md +0 -16
- package/.openprd/engagements/active/review.html +0 -61
- package/.openprd/engagements/active/roles.md +0 -22
- package/.openprd/engagements/work-units/wu-20260524015648-6d33ded7.json +0 -23
- package/.openprd/engagements/work-units/wu-20260602113956-a99b5b88.json +0 -18
- package/.openprd/engagements/work-units/wu-20260602122244-78656aaf.json +0 -18
- package/.openprd/engagements/work-units/wu-20260602122442-e96489e2.json +0 -18
- package/.openprd/engagements/work-units/wu-20260602132835-695429e8.json +0 -18
- package/.openprd/exports/.gitkeep +0 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/candidate.json +0 -78
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/diagnostic-report.json +0 -129
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/root-cause-candidates.json +0 -41
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/timeline.json +0 -14
- package/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md +0 -49
- package/.openprd/knowledge/index.json +0 -47
- package/.openprd/reviews/v0001.html +0 -1322
- package/.openprd/reviews/v0002.html +0 -1150
- package/.openprd/reviews/v0003.html +0 -1150
- package/.openprd/reviews/v0004.html +0 -1150
- package/.openprd/reviews/v0005.html +0 -1150
- package/.openprd/sessions/.gitkeep +0 -0
- package/.openprd/state/changes.json +0 -27
- package/.openprd/state/current.json +0 -505
- package/.openprd/state/release-ledger.json +0 -344
- package/.openprd/state/version-index.json +0 -67
- package/.openprd/state/versions/.gitkeep +0 -0
- package/.openprd/state/versions/v0001.json +0 -121
- package/.openprd/state/versions/v0001.md +0 -161
- package/.openprd/state/versions/v0002.json +0 -264
- package/.openprd/state/versions/v0002.md +0 -183
- package/.openprd/state/versions/v0003.json +0 -269
- package/.openprd/state/versions/v0003.md +0 -188
- package/.openprd/state/versions/v0004.json +0 -274
- package/.openprd/state/versions/v0004.md +0 -193
- package/.openprd/state/versions/v0005.json +0 -299
- package/.openprd/state/versions/v0005.md +0 -189
- package/docs/assets/openprd-capability-overview-en.png +0 -0
- package/docs/assets/openprd-capability-overview-zh.png +0 -0
- package/docs/assets/openprd-learning-html.png +0 -0
- package/docs/assets/openprd-quality-html.png +0 -0
- package/docs/assets/openprd-requirement-routing-en.png +0 -0
- package/docs/assets/openprd-requirement-routing-en.svg +0 -102
- package/docs/assets/openprd-requirement-routing-zh-refined.png +0 -0
- package/docs/assets/openprd-requirement-routing-zh.png +0 -0
- package/docs/assets/openprd-requirement-routing-zh.svg +0 -102
- package/docs/assets/openprd-review-html.png +0 -0
- package/docs/assets/openprd-scenario-overview.png +0 -0
- package/docs/assets/openprd-scenario-overview.svg +0 -114
- package/docs/assets/openprd-self-evolving-mechanisms-en.png +0 -0
- package/docs/assets/openprd-self-evolving-mechanisms-zh.png +0 -0
- package/docs/assets/openprd-visual-compare-case-study-en.png +0 -0
- package/docs/assets/openprd-visual-compare-case-study-zh.png +0 -0
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
3. 做到什么程度:目标、成功指标、验收标准
|
|
10
10
|
4. 做什么和不做什么:范围、非目标、边界情况
|
|
11
11
|
5. 用户怎么走:主流程、失败路径、恢复路径
|
|
12
|
-
6.
|
|
13
|
-
7.
|
|
14
|
-
8.
|
|
12
|
+
6. 值不值得继续做:第一批可触达社区、种子用户、当前替代方案、手工交付路径、承诺信号、最低成本验证、default alive 约束
|
|
13
|
+
7. 需求怎么验收:需求矩阵、优先级、验收标准、测试/验证
|
|
14
|
+
8. 有什么风险:依赖、约束、成本、滥用、开放问题
|
|
15
|
+
9. 如何交接:review、change、tasks、负责人、下一步
|
|
15
16
|
|
|
16
17
|
`base/prd.md` 提供这个骨架。其他模板不是附录,而是场景视角:它们会改变正文组织、需求矩阵和验收重点。
|
|
17
18
|
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
- 背景与问题
|
|
26
27
|
- 用户与相关方
|
|
27
28
|
- 目标与成功标准
|
|
29
|
+
- 验证与创业闭环
|
|
28
30
|
- 范围与非目标
|
|
29
31
|
- 场景与流程
|
|
30
32
|
- 需求矩阵
|
|
@@ -101,5 +103,6 @@
|
|
|
101
103
|
|
|
102
104
|
- 不输出大段空字段或 TBD 墙;缺事实时进入开放问题。
|
|
103
105
|
- 不把类型专项字段堆在末尾;把它们融进用户、流程、需求矩阵、验收和风险。
|
|
106
|
+
- 如果当前需求仍然像 0 到 1 验证,不要只写“做什么功能”;还要写清第一批先找谁、现在怎么替代、如何先手工交付、什么承诺才算真需求,以及验证阶段怎样先活下来。
|
|
104
107
|
- PRD 写产品判断,`design.md` 写技术方案,`tasks.md` 写执行步骤。
|
|
105
108
|
- 每条 requirement 都应能追踪到验收标准和后续 task。
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## 判断维度
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
按下面四个维度判断,不按固定关键词判断。用户审查时优先展示“需求类型:直接处理(L0)”这类合并标签;只有内部调度和排障真的受益时,才额外附上“内部路由码”。
|
|
6
6
|
|
|
7
7
|
| 用户可见需求类型 | 内部路由码 | 默认路径 |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
|
|
|
9
|
+
| 直接处理 | L0 | 直接处理,完成后说明验证 |
|
|
10
10
|
| 现有功能优化 | L1 | 先给 mini-plan,再实现和验证 |
|
|
11
11
|
| 新功能/新流程方案 | L2 | 先澄清并进入 PRD/review/change/tasks |
|
|
12
12
|
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
|
|
24
24
|
- 小 UI 调整:按钮文案、颜色、间距、字号、单点样式、局部 bug,通常仍按 L0 或 L1。
|
|
25
25
|
- 大界面改动:信息架构、核心布局、主视觉、关键路径、组件层级/密度明显变化,或用户需要先选设计方向。
|
|
26
|
-
- 大界面改动不直接实现;在 mini-plan、PRD
|
|
26
|
+
- 大界面改动不直接实现;在 mini-plan、PRD 定稿或实现开工前,已有界面时先用 Computer Use 截当前产品内功能图,冷启动没有现有界面时基于已确认 PRD、用户群体、第一版切片和视觉目标生成设计 brief;再用 Image 2 生成至少 3 个方向,横向拼接带 1/2/3 序号的大图给用户确认。
|
|
27
27
|
|
|
28
|
-
## L0
|
|
28
|
+
## L0:直接处理
|
|
29
29
|
|
|
30
30
|
适合直接处理:
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
- 简单样式调整,不改变信息架构或用户流程
|
|
35
35
|
- 单个配置值或展示值修正
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
输出:需求类型为“直接处理”,直接做,完成后说明验证。不要生成 PRD。
|
|
38
38
|
|
|
39
39
|
## L1:现有功能优化
|
|
40
40
|
|
|
@@ -60,6 +60,10 @@
|
|
|
60
60
|
|
|
61
61
|
输出:需求类型为“新功能/新流程方案”,先澄清并进入 PRD/review/change/tasks。
|
|
62
62
|
|
|
63
|
+
补充判断:
|
|
64
|
+
|
|
65
|
+
- 如果这句话本质上还在问“值不值得做、先找谁验证、现在怎么替代、能不能先手工交付、什么承诺才算真需求”,即使功能点看起来不多,也优先按 L2 进入脑暴或 clarify,不要直接下实现判断。
|
|
66
|
+
|
|
63
67
|
## 续接规则
|
|
64
68
|
|
|
65
69
|
当用户提供会话 ID、work unit、task handle 或说“继续这个任务”:
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 创业验证透镜
|
|
2
|
+
|
|
3
|
+
当 L2 需求、脑暴模式或 0 到 1 方向讨论还停留在“做什么功能”时,用这组问题把它收回到更真实的验证闭环。
|
|
4
|
+
|
|
5
|
+
## 六个关键问题
|
|
6
|
+
|
|
7
|
+
1. 第一批最容易触达的社区、渠道或人群是谁?
|
|
8
|
+
2. 他们现在主要靠什么替代方案、流程或人工方式在解决?
|
|
9
|
+
3. 如果先不做完整产品,怎么靠手工服务、半自动流程或轻量交付先把价值跑出来?
|
|
10
|
+
4. 什么真实承诺最能证明这不是口头兴趣?
|
|
11
|
+
5. 最低成本先验证哪一步最关键?
|
|
12
|
+
6. 在验证阶段,怎样控制成本、时间和交付方式,确保这件事先活下来?
|
|
13
|
+
|
|
14
|
+
## 使用方式
|
|
15
|
+
|
|
16
|
+
- 不要机械逐条盘问;优先把它融进 requirement 摘要、脑暴卡片和追问顺序里。
|
|
17
|
+
- 如果用户已经明确提供其中几项,就直接吸收,不要重复确认。
|
|
18
|
+
- 对内部工具、团队流程或 Agent 项目,也照样适用。
|
|
19
|
+
这里的“社区 / 种子用户”可以是维护者、运营、交付、内部试点团队或最先受影响的一线角色。
|
|
20
|
+
- “承诺信号”不等于一定要收费。
|
|
21
|
+
也可以是愿意预约、提交真实素材、导入数据、拉同事参与、接受试点、给出明确上线窗口等更强承诺。
|
|
22
|
+
- “default alive”不是财务口号,而是提醒 Agent 先问清楚:
|
|
23
|
+
这件事在验证阶段怎样不把成本、复杂度和维护负担一下子做爆。
|
|
@@ -15,15 +15,22 @@ description: OpenPrd 入口路由 skill。先判断当前任务该读哪个 repo
|
|
|
15
15
|
|
|
16
16
|
## 入口顺序
|
|
17
17
|
|
|
18
|
-
1.
|
|
19
|
-
2.
|
|
20
|
-
3.
|
|
21
|
-
4.
|
|
18
|
+
1. 如果用户当前明确在说“帮我梳理下”“先想清楚”“进入脑暴模式”,先读取 `skills/openprd-requirement-intake/SKILL.md`,并优先运行 `openprd run . --context --message <用户原话>`;需要时直接进入 `openprd brainstorm . --open`,不要只跑不带 message 的 `openprd run . --context`
|
|
19
|
+
2. 其他情况再从 `.openprd/` 重建当前状态,并运行 `openprd run . --context`
|
|
20
|
+
3. 如果当前是空白工作区的前端/页面冷启动,而且用户已经给了明确的页面主题、模块范围或“直接实现”的意图,优先改用 `openprd run . --context --message <用户原话>`;不要先跑不带 message 的 `openprd run . --context`,再被空白工作区自己的 `clarify-user` 带偏
|
|
21
|
+
4. 需要具体命令时,优先读取 `.openprd/harness/command-catalog.md`
|
|
22
|
+
5. 需要共用约束时,读取 `skills/openprd-shared/SKILL.md`
|
|
23
|
+
6. 需要主工作流时,读取 `skills/openprd-harness/SKILL.md`
|
|
24
|
+
7. 任务涉及界面、页面、视觉、样式、信息架构、内容型页面或前端体验时,额外读取 `skills/openprd-frontend-design/SKILL.md`
|
|
25
|
+
8. 如果当前是轻量前端原型任务,而且工作区几乎没有现成页面文件,读完前端设计 skill 后先填写 `.openprd/design/active/*`,不要在 `docs/basic/` 占位文档里来回打转
|
|
26
|
+
9. 如果用户已经给了效果图、设计稿、参考截图或其他明确参考图,仍然走前端设计 skill,但要把参考图当主约束;只有现有 starter / theme / layout 足够接近时才复用,不要让样式库把页面带到另一种风格
|
|
27
|
+
10. 如果这类空白前端任务在带 message 的前提下仍短暂返回 `clarify-user`,但用户原话已经明确要求直接实现单页/首页/原型,就把它当成摘要级提醒;先用 3 到 5 行 mini-plan 收口,再按 frontend design 的 `design-starter -> Patch Mode` 路径继续,不要回到长澄清或模板源码漫游
|
|
22
28
|
|
|
23
29
|
## 路由表
|
|
24
30
|
|
|
25
31
|
- 需求入口分流、用户可见需求类型与内部 L0/L1/L2 路由码对照、PRD 场景视角选择:`skills/openprd-requirement-intake/SKILL.md`
|
|
26
32
|
- 主工作流、review/change/tasks、`run/loop`:`skills/openprd-harness/SKILL.md`
|
|
33
|
+
- 前端设计框架、审美资产库、主题/骨架/组件/配方、事实与素材前置门:`skills/openprd-frontend-design/SKILL.md`
|
|
27
34
|
- 最佳实践、benchmark、公开 GitHub 仓库、第三方技术事实、prompt/context engineering:`skills/openprd-benchmark-router/SKILL.md`
|
|
28
35
|
- `docs/basic/`、文件说明书、文件夹 README、文档标准:`skills/openprd-standards/SKILL.md`
|
|
29
36
|
- 就绪验证、EVO 门禁、HTML 质量评估报告、项目经验沉淀:`skills/openprd-quality/SKILL.md`
|
|
@@ -37,4 +44,5 @@ description: OpenPrd 入口路由 skill。先判断当前任务该读哪个 repo
|
|
|
37
44
|
- hooks 已经强制处理 requirement / research / secrets / skill-visualization / weapp / browser / copy 这些门禁
|
|
38
45
|
- 公开 GitHub 仓库架构/对标先 DeepWiki;第三方库、API、SDK、MCP、CLI 用法先查本地证据,本地不足时再按 `resolve_library_id -> query_docs` 使用 Context7
|
|
39
46
|
- 如果用户只是要规划、分析、评审或解释影响范围,保持只读,不要因为命令存在就直接执行写入
|
|
40
|
-
-
|
|
47
|
+
- 用户原话里已经明确要求“先梳理/脑暴”时,用户意图优先于不带 message 的默认 run context;先把原话带进 `openprd run . --context --message ...`,或直接进入脑暴模式
|
|
48
|
+
- 不要用固定关键词决定是否写 PRD,也不要用词表决定工具;先让 `openprd-requirement-intake` 按影响面、未知数、决策成本和验证成本做语义分流,再按用户目标、期望产物、交付阶段和证据缺口选择学习器、视觉评审或质量收口工具
|
|
@@ -15,7 +15,7 @@ description: OpenPrd 工作区与产物的共用守则。凡是需要查看、
|
|
|
15
15
|
- 用户耐心低,输出要先给结论和下一步;能一句说清楚就不要拆成两步,细节等用户追问时再展开。
|
|
16
16
|
- 面向用户的 HTML、报告、评审说明和对话回复,避免 `freeze`、hook、门禁、EVO、schema、runtime 等内部词;必要技术名词只在确实影响决策时出现,并用业务语言解释结果。
|
|
17
17
|
- 主动替用户补全没有想到的情况:范围边界、失败路径、恢复路径、实现成本、维护成本、滥用风险、第三方依赖、上线后验证和后续扩展。
|
|
18
|
-
- 对外 README
|
|
18
|
+
- 对外 README、首页概览、发布说明和带文字的示意图,默认先站在产品和业务用户角度解释:谁在什么场景下遇到什么问题、怎么确认、收益和风险是什么。解释需求分流时,优先使用“直接处理 / 现有功能优化 / 新功能/新流程方案”这些用户可理解名称,再在内部保留 L0/L1/L2。
|
|
19
19
|
- 默认成本敏感,追求“效果足够好 + 投入最少 + 后续维护不重”的性价比;不要为了技术漂亮引入昂贵或复杂方案。
|
|
20
20
|
- 涉及第三方 API、模型、云服务、付费工具或外部供应商时,优先比较多家可行方案,用表格列出效果、价格、接入成本、限制、风险和推荐理由,并给出性价比最好的默认选择。
|
|
21
21
|
- 当用户的问题包含多个对象、方案、文件、场景、风险、验证项、素材或任务,并且需要同时呈现状态、证据、影响、动作或推荐时,Agent 应主动使用 Markdown 表格,不等用户要求。先用一句话给结论,再给表格。
|
|
@@ -61,7 +61,8 @@ description: OpenPrd 工作区与产物的共用守则。凡是需要查看、
|
|
|
61
61
|
- 用户给出会话 ID 并要求继续时,按工具无关的历史会话精确续接;不要要求工具专属 ID,也不要用当前 active change、相似历史或 requirement gate 替代指定会话。
|
|
62
62
|
- 用户没有给 ID、但明确描述了某个已有需求、change、task 或 work unit 时,先按描述解析对应对象;只有解析不出来时,才把当前工作区状态当作背景继续看。
|
|
63
63
|
- 使用 `.openprd/harness/install-manifest.json`、`hook-state.json`、`events.jsonl` 和 `drift-report.json` 判断生成引导是否健康。
|
|
64
|
-
-
|
|
64
|
+
- 前端体验任务进入实现前,优先读取 `skills/openprd-frontend-design/SKILL.md` 与 `.openprd/design/`,先锁定 lens、theme、layout 和组件,再决定是否实现。
|
|
65
|
+
- 使用 `.openprd/harness/visual-reviews/` 承接用户已经确认纳入后续对比的 reference-set、选中方向、实现后视觉对比证据、局部焦点证据板和并行实验证据板;候选效果图默认不要直接登记进去。
|
|
65
66
|
- 使用 `.openprd/quality/config.json`、`.openprd/quality/reports/` 和 `.openprd/knowledge/` 判断实现就绪、当前场景必需 EVO 证据和可复用经验。
|
|
66
67
|
- 使用 `.openprd/growth/` 承接收工阶段的自我成长复盘;工具识别补全和减少重复打扰这类高置信低风险项可自动补齐,用户偏好、项目协作规矩和 OpenPrd 默认行为留到收工时集中确认。
|
|
67
68
|
10. 生成图片内容时默认使用 `imagegen`,也就是 Codex 原生 Image 2。
|
|
@@ -70,25 +71,34 @@ description: OpenPrd 工作区与产物的共用守则。凡是需要查看、
|
|
|
70
71
|
- 只有当用户明确要求 mockup、场景化效果图、容器化呈现,或参考图本身就包含这些承载结构时,才生成对应的容器或场景。
|
|
71
72
|
- 除非用户明确指定 HTML、SVG、CSS、Canvas、代码稿或可编辑矢量/source artifact,不要改用临时 HTML/SVG/CSS 再截图。
|
|
72
73
|
- 只有实际发生 `imagegen` 调用后,才能汇报生图结果、失败或限流;未调用 `imagegen` 前,不要声称“生图限流”或“生图失败”。
|
|
73
|
-
-
|
|
74
|
+
- 生图结果先当候选效果图,不要默认登记到 `.openprd/harness/visual-reviews/`。如果用户还要继续做实现,主动确认是否符合预期、是否纳入后续效果图/实现截图对比、以及是否按此继续实现;只有确认后才把选定方向、整张图或其中子图整理成 reference-set。
|
|
75
|
+
- OpenPrd 的 `review.html` 只用于需求评审,不能替代图片或效果图生成;`visual-compare` 只用于实现阶段视觉证据:已有确认参考图时做“效果图 / 实现截图”对比;没有参考图时先判断新建界面还是修改既有界面,新建界面回到实现前 3 方向方案评审,修改既有界面做“修改前 / 修改后”自检;当局部细节更重要时,优先改用 `--board` 生成“局部焦点证据板”;当并行跑了多个优化方向时,优先改用 `--board` 生成“并行实验证据板”。
|
|
74
76
|
11. 界面视觉实现有参考图时,必须留下左右对比图。
|
|
75
77
|
- 只要任务涉及界面、页面、视觉、样式或前端体验,并且已经有效果图、设计稿、截图或用户给图且进入实现阶段,阶段性完成后先截取实现截图。
|
|
76
78
|
- 运行 `openprd visual-compare . --reference <效果图> --actual <实现截图>`,默认输出 JPG 到 `.openprd/harness/visual-reviews/`。
|
|
77
|
-
-
|
|
79
|
+
- 如果一张参考图里有多个子图、网格或对象,先运行 `openprd visual-prepare . --reference <效果图> --grid <列>x<行>` 或 `--boxes <plan.json>`,检查 contact sheet 后再逐项对比。
|
|
80
|
+
- 合成图左侧必须标注“效果图”,右侧必须标注“实现截图”;查看合成图后继续对标,直到没有明显视觉差异。若用户后续说“跟效果图”“不一致”“好丑”“复刻”,至少先产出一份视觉证据图,不要只口头说已经对比过了。
|
|
78
81
|
- 如果整体图之外还要审局部细节,再补一份 `openprd visual-compare . --board <focus-board.json>`,把整体标框和局部放大放在同一张证据板里。
|
|
79
82
|
- 未生成并查看对比图,或对比图仍有明显差异时,不要声称界面复刻或视觉实现完成。
|
|
80
|
-
12.
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
+
12. 界面视觉实现无参考图时,先区分新建界面和修改既有界面。
|
|
84
|
+
- 只要任务涉及界面、页面、视觉、样式或前端体验,但没有明确效果图、设计稿、截图或用户给图,先判断这是新建界面还是修改既有界面。
|
|
85
|
+
- 新建首屏、首页、控制台或核心页面时,回到实现前 3 方向方案评审;修改既有界面时,动手前先用 Computer Use、Browser、Playwright 或项目现有工具截取修改前截图。
|
|
86
|
+
- 修改既有界面完成后,用同一入口、视口、账号和数据状态截取修改后截图,再运行 `openprd visual-compare . --before <修改前截图> --after <修改后截图>`。
|
|
83
87
|
- 合成图左侧必须标注“修改前”,右侧必须标注“修改后”;查看合成图后确认预期变化出现,并检查未改区域没有明显布局、颜色、密度或状态漂移。
|
|
84
88
|
- 如果并行试了多条优化方向,再补一份 `openprd visual-compare . --board <parallel-board.json>`,把多方案截图、GIF 首帧和指标放到同一板里对比。
|
|
85
89
|
- 这类自检不能替代大界面方向性改造的实现前方案评审。
|
|
86
90
|
13. 大界面改动实现前必须先完成视觉方案评审。
|
|
87
91
|
- 触发条件:会明显改变页面信息架构、主视觉、核心布局、关键路径、组件层级/密度,或用户需要先选择设计方向。
|
|
88
92
|
- 位置:需求分流之后、PRD 定稿或实现开工之前;它不是 `review.html`,也不是实现后的 `visual-compare`。
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
14.
|
|
93
|
+
- 步骤:已有界面时用 Codex Computer Use 进入产品内对应功能并截当前真实界面;冷启动没有现有界面时,基于已确认 PRD、用户群体、第一版切片和视觉目标生成设计 brief;用 `imagegen`(Codex 原生 Image 2)基于截图或设计 brief 至少生成 3 个不同设计思想方向;把效果图横向拼成一张大图,每张左上角标注 1/2/3,先作为候选效果图展示。
|
|
94
|
+
- 交互:主动确认是否符合预期、是否纳入后续效果图/实现截图对比、以及是否按此继续实现;只有确认后才把选定方向、整张图或其中子图整理到 `.openprd/harness/visual-reviews/`。用户确认前,不进入大 UI 实现,也不要声称界面方案已定。
|
|
95
|
+
14. 界面任务进入实现前,先用 `.openprd/design/` 锁定设计框架。
|
|
96
|
+
- 页面涉及具体产品事实、版本、发布时间、规格、价格、引用数据或地点事实时,先补 `.openprd/design/active/facts-sheet.md`,不要凭记忆写页面。
|
|
97
|
+
- 页面依赖 logo、产品图、UI 图、摄影图、插图、图表或品牌色字体时,先补 `.openprd/design/active/asset-spec.md`。
|
|
98
|
+
- 旅游、展览、内容、案例、发布、品牌故事等内容型页面,要先判断真实图片是不是页面成立前提;必要时先补 `.openprd/design/active/image-preflight.md`,不要默认用占位块硬做。
|
|
99
|
+
- 没有明确参考方向时,先补 `.openprd/design/active/direction-plan.md`,并确保 3 个方向来自不同生成逻辑,而不是三个同一种安全解的轻微变体。
|
|
100
|
+
- 用户选定方向后,再补 `.openprd/design/active/selected-direction.md`,把选中的 lens、theme、layout、组件和风险锁定。
|
|
101
|
+
15. 把文档与结构回顾视为实现的一部分,而不是开工前的噪声。
|
|
92
102
|
- 代码修改完成后、最终回复前,针对本轮实际新增或修改的 code files 运行 `openprd dev-check . <file...>` 或 `node scripts/openprd-dev-check.mjs . <file...>`。
|
|
93
103
|
- dev-check 默认是收工回顾,不是开工许可证;只有用户明确询问影响文件、拆分边界,或你已经判断需要先设计拆分范围时,才在开发前额外运行。
|
|
94
104
|
- 行数状态按研发期标准解读:700 行以内正常;701-1500 行需留意;超过 1500 行说明后续改动成本较高。若出现需要关注的文件,最终回复必须以 **后续建议** 为标题,用 Markdown 表格列出影响位置、关注程度、规模信号、为什么需要关注、本次处理和后续建议,并按 🔴 → 🟠 → 🟡 排序;若只是窄 bugfix 或小修且暂不拆,要在表格里说明本次处理边界并留下后续拆分建议。
|
|
@@ -98,42 +108,44 @@ description: OpenPrd 工作区与产物的共用守则。凡是需要查看、
|
|
|
98
108
|
- 当职责、流程、结构、依赖或产品行为变化时,补齐缺失文档并更新已有文档。
|
|
99
109
|
- 涉及后端、脚本、Agent、工具链、服务或数据处理变更时,把 CLI 与 API 视为同级接入面;检查命令入口、参数、输出契约、`help`/`doctor`/`dry-run`/`status` 与接口协议、返回结构、身份边界是否受影响,并同步更新 `docs/basic/backend-structure.md`;若某一面不适用也要明确写原因。
|
|
100
110
|
- `.openprd/harness/install-manifest.json` 的 `optionalCapabilities` 用来记录非阻断式增强建议,例如 Context7、DeepWiki。当前任务明显受益但状态仍是 `recommended` 时,在后续建议里解释它能帮什么、附官方文档和 GitHub 链接,并可顺手提出“如果你愿意,我可以按当前客户端帮你补配置”;不要因为它未配置就阻断当前任务。
|
|
101
|
-
|
|
111
|
+
16. hook 重量要和任务风险匹配。
|
|
102
112
|
- 默认 Codex hook profile 是 `lite`:`UserPromptSubmit` 注入上下文,轻量 `PreToolUse` 写入门禁阻断过早实现,`Stop` 在本轮结束前回顾是否值得沉淀项目经验。明确的 OpenPrd / 深度工作提示词,以及新的产品、模块、流程需求都会注入上下文。
|
|
103
113
|
- 只有项目明确需要完整 hook 遥测或临时深度诊断时才使用 `full`。
|
|
104
|
-
|
|
114
|
+
17. 需求流程先分流再加门禁。
|
|
105
115
|
- 分流优先使用 `$openprd-requirement-intake`,不要按固定关键词判断。
|
|
106
|
-
-
|
|
107
|
-
-
|
|
116
|
+
- 用户可见需求类型和内部路由码的固定对照为:直接处理=L0、现有功能优化=L1、新功能/新流程方案=L2;默认把路由码并进“需求类型:直接处理(L0)”这类标签里,只有内部排障确实受益时才额外补“内部路由码”。
|
|
117
|
+
- 直接处理通常包括空格、错别字、按钮文案、简单样式、明确 bugfix 和低风险局部调整;直接执行,完成后说明变更和验证。
|
|
108
118
|
- 现有功能优化有明确落点但影响多个文件或行为;先给对话内 mini-plan,再实现和验证。
|
|
109
119
|
- 如果用户刚刚已经确认了现有功能优化(L1)的 mini-plan、范围边界或正式产品边界,后续承接要明确写成“已确认,我按这个继续/收口/落地”,不要只写一个“确认”,也不要写成“确认,我们就按这个……”这种像再次索取确认的句子。
|
|
110
|
-
|
|
111
|
-
|
|
120
|
+
- 新功能/新流程方案包括新产品、模块、流程、权限、计费、AI/第三方集成、云服务、跨系统、数据迁移或边界不清的需求;先走 requirement intake、对话内 requirement 摘要确认、review、change 和 tasks,再实现。
|
|
121
|
+
- 对话内 requirement 摘要保持原有“需求判断 / 需求理解 / 功能范围 / 技术方案”结构,但 `需求判断` 和 `需求理解` 先用轻量主句说清结论;边界、风险、异常例子和技术细节下沉到后面的分项或表格,不要把它们挤成一大段。
|
|
122
|
+
- 对于 L2 或脑暴诉求,默认再补一层“创业验证闭环”:第一批最容易触达的人群/社区、当前替代方案、先不做完整产品时的手工路径、什么真实承诺才算真需求、最低成本验证动作,以及验证阶段怎样先活下来。
|
|
123
|
+
- 历史 active change 在新 requirement intake 激活时只作为提醒,不抢当前主线。
|
|
112
124
|
- 会话 ID、task handle、work unit 和用户明确描述的已有需求对象,都比全局 active change 更具体;必须先解析这些显式目标,再决定是否沿用当前工作区状态。
|
|
113
|
-
|
|
125
|
+
18. 关键产品事实缺失时,先问用户再推进。
|
|
114
126
|
- 如果当前模式不能使用结构化 ask-user 工具,就用自然语言直接询问。
|
|
115
127
|
- 不要把“工具不可用”当成可以悄悄猜测的理由。
|
|
116
|
-
|
|
128
|
+
19. 外部技术与公开仓库调研遵循“本地优先、外部证据最小够用”。
|
|
117
129
|
- 先读本地代码、锁文件、README、类型定义和现有上下文。
|
|
118
130
|
- 涉及第三方库、框架、API、SDK、MCP、CLI 工具的用法、配置、限制、版本差异或迁移路径,本地证据不足时再交给 `$openprd-benchmark-router`,并按 `resolve_library_id -> query_docs` 使用 Context7。
|
|
119
131
|
- 涉及公开 GitHub 仓库的架构、核心模块、关键流程或对标结论时,先交给 `$openprd-benchmark-router`,并按 `read_wiki_structure -> ask_question` 使用 DeepWiki。
|
|
120
132
|
- 一旦证据足够支撑当前决策就停止扩展;如果 DeepWiki、Context7 或官方资料覆盖不足,要明确写出缺口。
|
|
121
|
-
|
|
133
|
+
20. 涉及凭证、账号和个人信息时,先走 `secrets-vault`。
|
|
122
134
|
- 任务需要 API key、token、账号信息、第三方服务凭证或个人信息时,先使用 `secrets-vault` skill 获取已有凭证,不要立即向用户索要。
|
|
123
135
|
- 只读取当前任务所需的最小字段;不要直接读取原始 vault 文件,也不要在日志、代码、回复或提交里暴露完整密钥。
|
|
124
|
-
|
|
136
|
+
21. 修改 skill、`SKILL.md`、`AGENTS.md` 或相关 workflow 前,先可视化确认。
|
|
125
137
|
- 先读取当前 skill / AGENTS 现状,再输出一张彩色 Mermaid 方案图。
|
|
126
138
|
- Mermaid 必须区分 `unchanged`、`added`、`changed`、`removed`,并在图后用短说明写清新增、修改、保持不变、删除或阻断。
|
|
127
139
|
- 必须等待用户明确确认后,才能修改相关文件。
|
|
128
|
-
|
|
140
|
+
22. 涉及微信小程序运行态时,只在明确需要运行态证据时再升级到本地验证。
|
|
129
141
|
- 只有当用户明确要求小程序实测、验证、复现、页面操作、截图、日志、网络请求、开发者工具自动化,或当前改动高风险到必须依赖运行态证据时,才升级到小程序本地验证。
|
|
130
142
|
- 一旦进入小程序运行态验证,默认沿用当前小程序运行态或开发者工具会话连续验证,不要为了验证自动重开应用;只有用户明确要求从 0 到 1、冷启动、重开或重新打开时,才从头启动。
|
|
131
143
|
- 优先使用当前环境已配置的小程序本地验证能力;如果当前客户端没有相应工具,不要假定已经安装,也不要把缺少工具本身当成任务失败。
|
|
132
144
|
- 未拿到本地运行态证据前,不要宣称“小程序已验证”。
|
|
133
|
-
|
|
145
|
+
23. 浏览器高风险动作要先确认窗口归属。
|
|
134
146
|
- 用户明确要求使用 Computer Use 时,优先尊重该工具选择,并尽量在 Codex-owned browser window 中操作。
|
|
135
147
|
- 对提交表单、删除内容、发送消息、切换账号、退出登录、支付、关闭标签页等高风险动作,先确认窗口标题、目标页面和可见内容仍属于本任务。
|
|
136
|
-
|
|
148
|
+
24. 产品内文案默认面向普通用户,并先检查多语言结构。
|
|
137
149
|
- 修改用户可见文案前,先检查是否已有 `i18n`、`locales`、`translations`、`Localizable` 或其他语言资源;若已有,用户可见文案要同步维护到所有已支持语言。
|
|
138
150
|
- 文案优先说明用户能做什么、会发生什么、下一步怎么做;避免把 API、SDK、模型、数据库、缓存、错误码等实现细节直接暴露给用户。
|
|
139
151
|
- commit 说明、handoff / 版本说明、review 摘要这类面向人阅读的变化说明,默认优先使用 `新增 / 修复 / 优化 / 调整 / 移除` 这类短标签,并从用户可感知变化出发组织一句话说明。
|
|
@@ -147,8 +159,8 @@ description: OpenPrd 工作区与产物的共用守则。凡是需要查看、
|
|
|
147
159
|
- 只有当当前用户消息明确要求开发、实现、修复、继续任务、深度调研、对标复刻或提交时,才执行 OpenPrd loop、task 或 discovery 推进。
|
|
148
160
|
- 单纯的“请帮我实现/继续实现”只表示有执行意图,不表示可以跳过 requirement 摘要确认、`capture/classify/synthesize` 写入路径或 review;只有用户明确表示“不需要进行任何确认”时,才允许静默走完整 requirement write path。
|
|
149
161
|
- 声称实现就绪前,要说明文档影响检查是新增、更新,还是有意保持 `docs/basic/`、文件说明书和文件夹 README 不变。
|
|
150
|
-
- 用户要求生成图片、封面图、配图、海报、插画、图标、贴纸、头像、banner、主视觉/KV、运营图、效果图、视觉稿、mockup、先看样子或先确认设计方向时,最终回复应给出 `imagegen` 生成的图片结果;只有实际发生 `imagegen`
|
|
151
|
-
- 大界面改动进入实现前,最终回复或阶段性回复应给出 3
|
|
162
|
+
- 用户要求生成图片、封面图、配图、海报、插画、图标、贴纸、头像、banner、主视觉/KV、运营图、效果图、视觉稿、mockup、先看样子或先确认设计方向时,最终回复应给出 `imagegen` 生成的图片结果;只有实际发生 `imagegen` 调用后,才能汇报生图结果、失败或限流。生图结果先当候选效果图,并主动确认是否符合预期、是否纳入后续效果图/实现截图对比、以及是否按此继续实现。进入实现阶段后,已有确认参考图才给出 `openprd visual-compare --reference/--actual` 生成的 JPG 路径;如果参考图是一张整板、网格图或多对象组合,先运行 `openprd visual-prepare --reference <效果图> --grid <列>x<行>` 或 `--boxes <plan.json>` 并说明 contact sheet / compare-plan;没有参考图时先判断新建界面还是修改既有界面,新建界面先完成 3 方向方案评审,修改既有界面给出 `openprd visual-compare --before/--after` 生成的 JPG 路径,并说明是否仍有差异或漂移。
|
|
163
|
+
- 大界面改动进入实现前,最终回复或阶段性回复应给出 3 方向横向候选效果图大图,并明确等待用户确认是否纳入后续对比和继续实现;只有确认后再进入实现。
|
|
152
164
|
- 在系统形态、产品流程或外部依赖仍有实质不确定性时,需求定稿前先向用户确认。
|
|
153
165
|
- 当用户还没看过最新的 synthesize 产物或图示产物时,handoff 前先确认。
|
|
154
166
|
- 当用户要求可视化说明时,路由到 `$openprd-diagram-review`。
|
|
@@ -157,6 +169,7 @@ description: OpenPrd 工作区与产物的共用守则。凡是需要查看、
|
|
|
157
169
|
|
|
158
170
|
- 需要判断需求该直接做、mini-plan 还是写 PRD:使用 `$openprd-requirement-intake`
|
|
159
171
|
- 需要推进主工作流生命周期:使用 `$openprd-harness`
|
|
172
|
+
- 需要前端审美框架、设计资产、主题/骨架/组件/任务 recipe、事实/素材/image-preflight/direction-plan:使用 `$openprd-frontend-design`
|
|
160
173
|
- 需要最佳实践、benchmark、对标、参考产品、prompt engineering、Agent harness、context engineering、图标资源、CLI 或 skill 体系设计:先使用 `$openprd-benchmark-router` 选择证据源,再按 DeepWiki、Context7 或官方资料规则调研
|
|
161
174
|
- 需要架构图、产品流程图、用户旅程或可视确认循环:使用 `$openprd-diagram-review`
|
|
162
175
|
- 需要更细的语言规则或命令分类说明时,阅读:
|