@openprd/cli 0.1.1 → 0.1.9
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/README.md +43 -69
- package/.openprd/README_EN.md +84 -0
- package/.openprd/benchmarks/index.md +7 -0
- package/.openprd/benchmarks/sources.yaml +25 -3
- package/.openprd/discovery/config.json +16 -2
- package/.openprd/engagements/active/flows.md +19 -14
- package/.openprd/engagements/active/handoff.md +11 -4
- package/.openprd/engagements/active/prd.md +99 -71
- package/.openprd/engagements/active/review.html +4 -4
- package/.openprd/engagements/active/roles.md +9 -8
- package/.openprd/engagements/work-units/wu-20260524015648-6d33ded7.json +4 -4
- package/.openprd/engagements/work-units/wu-20260602113956-a99b5b88.json +18 -0
- package/.openprd/engagements/work-units/wu-20260602122244-78656aaf.json +18 -0
- package/.openprd/engagements/work-units/wu-20260602122442-e96489e2.json +18 -0
- package/.openprd/engagements/work-units/wu-20260602132835-695429e8.json +18 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/candidate.json +78 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/diagnostic-report.json +129 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/root-cause-candidates.json +41 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/timeline.json +14 -0
- package/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md +49 -0
- package/.openprd/knowledge/index.json +44 -4
- package/.openprd/reviews/v0001.html +195 -129
- package/.openprd/reviews/v0002.html +1150 -0
- package/.openprd/reviews/v0003.html +1150 -0
- package/.openprd/reviews/v0004.html +1150 -0
- package/.openprd/reviews/v0005.html +1150 -0
- package/.openprd/standards/config.json +12 -9
- package/.openprd/state/changes.json +17 -2
- package/.openprd/state/current.json +399 -63
- package/.openprd/state/release-ledger.json +387 -0
- package/.openprd/state/version-index.json +52 -0
- package/.openprd/state/versions/v0002.json +264 -0
- package/.openprd/state/versions/v0002.md +183 -0
- package/.openprd/state/versions/v0003.json +269 -0
- package/.openprd/state/versions/v0003.md +188 -0
- package/.openprd/state/versions/v0004.json +274 -0
- package/.openprd/state/versions/v0004.md +193 -0
- package/.openprd/state/versions/v0005.json +299 -0
- package/.openprd/state/versions/v0005.md +189 -0
- package/.openprd/templates/agent/intake.md +5 -4
- package/.openprd/templates/b2b/intake.md +5 -4
- package/.openprd/templates/base/intake.md +10 -4
- package/.openprd/templates/company/README.md +9 -7
- package/.openprd/templates/company/README_EN.md +12 -0
- package/.openprd/templates/consumer/intake.md +5 -4
- package/.openprd/templates/industry/README.md +12 -10
- package/.openprd/templates/industry/README_EN.md +18 -0
- package/.openprd/templates/project/README.md +11 -9
- package/.openprd/templates/project/README_EN.md +16 -0
- package/.openprd/templates/session/README.md +11 -9
- package/.openprd/templates/session/README_EN.md +16 -0
- package/AGENTS.md +12 -8
- package/README.md +419 -438
- package/README_CN.md +4 -578
- package/README_EN.md +870 -0
- package/docs/assets/openprd-requirement-routing-en.png +0 -0
- package/docs/assets/openprd-requirement-routing-en.svg +102 -0
- 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 +102 -0
- package/package.json +6 -2
- package/scripts/dev-check-wrapup-copy.mjs +110 -0
- package/scripts/openprd-github-release-notes.mjs +99 -0
- package/scripts/quality-perf-check.mjs +203 -0
- package/skills/openprd-benchmark-router/SKILL.md +1 -0
- package/skills/openprd-benchmark-router/references/benchmark-sources.md +1 -0
- package/skills/openprd-benchmark-router/references/source-policy.md +2 -0
- package/skills/openprd-discovery-loop/SKILL.md +2 -2
- package/skills/openprd-harness/SKILL.md +47 -25
- package/skills/openprd-harness/references/workflow-gates.md +15 -0
- package/skills/openprd-quality/SKILL.md +11 -5
- package/skills/openprd-requirement-intake/SKILL.md +31 -20
- package/skills/openprd-requirement-intake/references/prd-template-lenses.md +6 -6
- package/skills/openprd-requirement-intake/references/routing-rubric.md +10 -2
- package/skills/openprd-router/SKILL.md +2 -2
- package/skills/openprd-shared/SKILL.md +51 -23
- package/skills/openprd-standards/SKILL.md +2 -1
- package/src/agent-integration.js +271 -71
- package/src/benchmark/constants.js +107 -0
- package/src/benchmark/operations.js +235 -0
- package/src/benchmark/registry.js +64 -0
- package/src/benchmark/render.js +115 -0
- package/src/benchmark/source.js +617 -0
- package/src/benchmark/storage.js +121 -0
- package/src/benchmark/verify.js +235 -0
- package/src/benchmark.js +50 -851
- package/src/change-summary.js +339 -0
- package/src/cli/args.js +67 -6
- package/src/cli/basic-print.js +365 -0
- package/src/cli/benchmark-print.js +91 -0
- package/src/cli/change-print.js +221 -0
- package/src/cli/doctor-print.js +268 -0
- package/src/cli/growth-print.js +176 -0
- package/src/cli/print.js +73 -1384
- package/src/cli/quality-print.js +284 -0
- package/src/cli/run-print.js +297 -0
- package/src/cli/shared-print.js +127 -0
- package/src/cli/workflow-print.js +195 -0
- package/src/codex-hook-runner-template.mjs +659 -124
- package/src/codex-runtime.js +324 -0
- package/src/dev-standards.js +178 -5
- package/src/diagram-core.js +5 -5
- package/src/discovery.js +2 -1
- package/src/execution-strategy.js +369 -0
- package/src/fleet.js +4 -0
- package/src/github-release.js +156 -0
- package/src/growth.js +311 -13
- package/src/html-artifact-utils.js +25 -0
- package/src/html-artifacts.js +157 -1596
- package/src/knowledge.js +1321 -76
- package/src/language-policy.js +2 -112
- package/src/learning-html-artifact.js +1031 -0
- package/src/learning-review.js +3 -2
- package/src/loop.js +280 -9
- package/src/openprd.js +341 -38
- package/src/openspec/change-validate.js +0 -9
- package/src/openspec/execute.js +79 -3
- package/src/openspec/generate.js +33 -20
- package/src/openspec/tasks.js +33 -2
- package/src/prd-core.js +10 -9
- package/src/product-type-copy.js +69 -0
- package/src/quality-html-artifact.js +108 -9
- package/src/quality-learning.js +30 -0
- package/src/quality-visual-review.js +237 -0
- package/src/quality.js +329 -43
- package/src/registry-hygiene.js +54 -0
- package/src/release-ledger.js +413 -0
- package/src/review-presentation.js +12 -6
- package/src/run-harness.js +722 -48
- package/src/session-binding.js +40 -3
- package/src/session-registry.js +159 -0
- package/src/standards.js +5 -3
- package/src/test-strategy.js +386 -0
- package/src/visual-compare.js +915 -34
- package/src/work-unit-migration.js +5 -1
- package/src/workspace-core.js +343 -19
- package/src/workspace-workflow.js +538 -134
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
- 第三方工具、SDK、CLI、API、MCP 或版本相关文档,优先用 Context7。
|
|
11
11
|
- 官方工程博客和官方文档只提炼可验证原则,不复制大段原文。
|
|
12
12
|
- 足够支撑当前 OpenPrd 决策后停止调研。
|
|
13
|
+
- 执行过程中被用户采纳的优质来源可用 `openprd benchmark observe <url|repo|file> --notes <text>` 记录为候选 evidence;累计达到阈值后只提示用户 approve,不自动加入长期 registry。
|
|
13
14
|
|
|
14
15
|
## 来源分组
|
|
15
16
|
|
|
@@ -26,6 +26,8 @@
|
|
|
26
26
|
|
|
27
27
|
- `benchmark-sources.md` 是路由索引,不是事实来源。
|
|
28
28
|
- 来源目录只代表候选来源,不代表来源内容已经被核验。
|
|
29
|
+
- `openprd benchmark observe` 记录的是“被采纳过的信源线索”和 evidence,不代表该来源内容已经被完整核验。
|
|
30
|
+
- candidate 达到采纳阈值后只推荐 approve;用户确认前仍不能当作长期 approved benchmark。
|
|
29
31
|
- 长期偏好只能记录用户确认过的复用经验,不替代外部核验。
|
|
30
32
|
|
|
31
33
|
## 何时停止调研
|
|
@@ -109,7 +109,7 @@ description: 把自然语言里的 OpenPrd 或 OpenSpec 深度、持续、全面
|
|
|
109
109
|
- `openprd change <path> --generate --change <id>`
|
|
110
110
|
8. 只有在需要单独检查 change 结构时,才运行 `openprd change <path> --validate --change <id>`;通常 discovery verify 在配置了 `activeChange` 时会一并检查
|
|
111
111
|
9. 报告发现结果就绪前,运行 `openprd standards <path> --verify`
|
|
112
|
-
10.
|
|
112
|
+
10. 单个任务完成后只保留 task-scoped evidence;阶段收口、全部实现完成或高风险动作前,再运行 `openprd quality <path> --verify`,让 HTML 质量评估报告审查日志、业务护栏、冒烟覆盖、功能覆盖、性能基线、极端数据和知识缺口
|
|
113
113
|
11. 修改文档或任务前,先从当前 run 目录重新读取状态
|
|
114
114
|
|
|
115
115
|
## 运行目录
|
|
@@ -176,7 +176,7 @@ hook harness 还会写入:
|
|
|
176
176
|
- 使用 `openprd change <path> --apply --change <id>` 把完成的 change specs 推进到 `openprd/specs`
|
|
177
177
|
- 使用 `openprd change <path> --archive --change <id>` 把完成的 change 文件移动到 `openprd/archive/changes`
|
|
178
178
|
- 当任务或 discovery pass 改动了基线文档、文件说明书或文件夹 README 时,运行 `openprd standards <path> --verify`
|
|
179
|
-
-
|
|
179
|
+
- 在声明单个任务完成前,运行本任务最小足够验证并留下 evidence;在阶段收口或声明整体实现就绪前,运行 `openprd quality <path> --verify`;当某个已验证修复应该沉淀为项目级复用经验时,运行 `openprd quality <path> --learn --from <report>`
|
|
180
180
|
- 如果任务被依赖阻塞,先完成更早的任务 id;不要人工跳过依赖顺序
|
|
181
181
|
- 执行证据应保留在生成的任务事件或 discovery claims 中,不要给每个任务额外挂一堆元数据
|
|
182
182
|
|
|
@@ -18,27 +18,31 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
18
18
|
1. 读取第一个可用的共用规则文件:`skills/openprd-shared/SKILL.md`、`$HOME/.claude/skills/openprd-shared/SKILL.md` 或 `$HOME/.codex/skills/openprd-shared/SKILL.md`
|
|
19
19
|
2. 从 `.openprd/` 重建当前工作区状态
|
|
20
20
|
3. 如果用户期待自动化 agent 引导,运行 `openprd doctor <path>`,必要时用 `openprd setup <path>` 或 `openprd update <path>` 修复
|
|
21
|
+
- `init/setup/update/doctor` 可能会在 `.openprd/harness/install-manifest.json` 的 `optionalCapabilities` 里记录 Context7、DeepWiki 等非阻断式增强建议。把它当成软提醒:初始化、诊断和当前任务都不因它失败;只有当前任务会明显受益时,才在后续建议里解释能力价值、附官方文档 / GitHub 链接,并视情况提出可代为补配置。
|
|
21
22
|
4. 选择执行单元前,优先运行 `openprd run <path> --context`
|
|
22
23
|
5. 把 `openprd run <path> --context` 当作建议,不要自动执行其中的写入命令
|
|
24
|
+
- 同时查看推荐里的 `executionMode` 和 `parallelPlan`:L0/小范围修正默认 `serial`,中等规模 L1/L2 可推荐 `parallel-workers`,高风险或大规模实现再升级到 `parallel-workers-isolated`
|
|
23
25
|
- 如果用户给出会话 ID 并要求继续,按工具无关的历史会话精确续接;不要要求或使用工具专属 ID,也不要用当前 active change、相似历史或当前 requirement gate 替代该会话 ID
|
|
24
26
|
- 如果用户没有给 ID,但明确描述了某个已有需求、change、task 或 work unit,先把这段描述交给 `openprd run <path> --context --message <用户原话>` 做显式对象解析,不要先默认拿当前 active change
|
|
25
|
-
6. 需求复杂度先交给 `$openprd-requirement-intake`
|
|
27
|
+
6. 需求复杂度先交给 `$openprd-requirement-intake` 分流;不要按固定关键词判断。它会根据影响面、未知数、决策成本和验证成本判断需求类型,并保留内部路由码对照:快速修正=L0、现有功能优化=L1、新功能/新流程方案=L2;默认把路由码并进“需求类型:快速修正(L0)”这类标签里,只有内部排障确实受益时才额外补“内部路由码”
|
|
28
|
+
- 如果需求涉及界面、页面、视觉、样式或前端体验,先判断是否属于“大界面改动”:会改变信息架构、页面布局、主视觉、关键路径、核心组件密度/层级,或用户需要先选设计方向。大界面改动在需求分流后、进入实现或 PRD 定稿前,先走视觉方案评审。
|
|
26
29
|
7. 如果用户是在规划、分析、架构评审,或问“怎么改”“会动哪些文件”,保持只读并基于证据回答
|
|
27
|
-
8. 实现任务完成代码修改后、最终回复前,针对本轮实际 touched code files 运行 `openprd dev-check <path> <file...>` 或 `node scripts/openprd-dev-check.mjs <path> <file...>`:700 行以内正常;701-1500
|
|
30
|
+
8. 实现任务完成代码修改后、最终回复前,针对本轮实际 touched code files 运行 `openprd dev-check <path> <file...>` 或 `node scripts/openprd-dev-check.mjs <path> <file...>`:700 行以内正常;701-1500 行需留意;超过 1500 行说明后续改动成本较高。若出现需要关注的文件,最终回复必须以 **后续建议** 为标题,用 Markdown 表格列出影响位置、关注程度、规模信号、为什么需要关注、本次处理和后续建议,并按 🔴 → 🟠 → 🟡 排序
|
|
28
31
|
9. 执行过程中发现新代码后缀、豁免路径、命令别名、项目约定或用户偏好时,不要中途打断当前任务。工具识别补全和减少重复打扰这类高置信低风险项可自动补齐并记录;用户偏好、项目协作规矩和 OpenPrd 默认行为先沉淀为候选,收工时运行 `openprd grow <path> --review` 集中确认
|
|
29
32
|
10. 维护 OpenPrd 本身时,只要新增或修改配置类能力(阈值、规则、识别、豁免、命令别名、环境差异、用户偏好或策略开关),默认先做 grow-aware 自检:高置信应可成长时直接纳入 `openprd grow` 体系;不确定时主动询问用户是否做成可成长配置
|
|
30
|
-
11. 用户要求生成图片、封面图、配图、海报、插画、图标、贴纸、头像、banner、主视觉/KV、运营图、效果图、视觉稿、mockup、先看样子或先确认设计方向时,默认直接调用 Codex 原生 Image 2
|
|
31
|
-
12.
|
|
32
|
-
13.
|
|
33
|
-
14.
|
|
34
|
-
15.
|
|
35
|
-
16.
|
|
36
|
-
17.
|
|
37
|
-
18.
|
|
38
|
-
19.
|
|
39
|
-
20.
|
|
40
|
-
21. hook
|
|
41
|
-
22.
|
|
33
|
+
11. 用户要求生成图片、封面图、配图、海报、插画、图标、贴纸、头像、banner、主视觉/KV、运营图、效果图、视觉稿、mockup、先看样子或先确认设计方向时,默认直接调用 `imagegen`,也就是 Codex 原生 Image 2,产出图片;除非用户明确指定 HTML、SVG、CSS、Canvas、代码稿或可编辑矢量/source artifact,不要改用临时 HTML/SVG/CSS 再截图。OpenPrd 的 `review.html` 只用于需求评审,不能替代图片或效果图生成;只有实际发生 `imagegen` 调用后,才能汇报生图结果、失败或限流
|
|
34
|
+
12. 大界面改动进入实现前,必须先完成视觉方案评审:用 Codex Computer Use 进入产品内对应功能并截当前真实界面;基于截图调用 `imagegen`(Codex 原生 Image 2)做图生图,至少生成 3 个不同设计思想方向;把效果图横向拼接成一张大图,左上角标注 1/2/3,并保存到 `.openprd/harness/visual-reviews/`;把大图展示给用户确认方向,未确认前不要进入大 UI 实现
|
|
35
|
+
13. 界面、页面、视觉、样式或前端体验任务中,如果已经有效果图、设计稿、图片资产、截图或用户给图且进入实现阶段,阶段性完成后先截实现图,再运行 `openprd visual-compare <path> --reference <效果图> --actual <实现截图>`。如果没有明确参考图但改动界面,动手前先截修改前截图,完成后用同一入口、视口、账号和数据状态截修改后截图,再运行 `openprd visual-compare <path> --before <修改前截图> --after <修改后截图>`。需要审局部细节时,再补 `openprd visual-compare <path> --board <focus-board.json>`;并行跑了多个优化方向时,再补 `openprd visual-compare <path> --board <parallel-board.json>`。默认输出 JPG 到 `.openprd/harness/visual-reviews/`;查看合成图后继续复刻或自检,直到没有明显视觉差异或意外漂移
|
|
36
|
+
14. 实现任务新增或修改文件时,做文档影响检查:缺失的 `docs/basic/`、文件说明书、文件夹 README 要补齐;受影响的已有文档要更新;涉及后端、脚本、Agent、工具链、服务或数据处理变更时,把 CLI 与 API 视为同级接入面,更新 `docs/basic/backend-structure.md` 中的命令入口、输出契约、`help`/`doctor`/`dry-run`/`status`、接口协议与不适用说明
|
|
37
|
+
15. 长时间实现任务使用 `openprd loop <path> --plan --change <id>`,并且只有当前用户消息明确要求开发、继续任务、深度调研、对标复刻或提交时,才为每个 loop 任务启动一个全新 agent 会话
|
|
38
|
+
16. 需要完整工作流细节时,使用 `openprd status` 和 `openprd next`
|
|
39
|
+
17. 用户要求最佳实践、benchmark、对标、参考产品、prompt engineering、Agent harness、context engineering、图标资源、CLI 或 skill 体系设计时,先路由到 `$openprd-benchmark-router`
|
|
40
|
+
18. 用户要求基线文档、文件说明书、文件夹 README 标准或实现就绪检查时,路由到 `$openprd-standards`
|
|
41
|
+
19. 用户要求日志、链路追踪、业务成本护栏、免费额度、滥用防护、评估执行环境、冒烟覆盖、性能基线、极端场景、HTML 质量评估报告或项目级经验 Skill 时,路由到 `$openprd-quality`
|
|
42
|
+
20. 用户需要可视化说明,或系统/产品形态仍不清晰时,在进入需求定稿前路由到 `$openprd-diagram-review`
|
|
43
|
+
21. 默认保持 Codex hooks 轻量。除非项目明确需要完整工具级遥测,否则 `openprd setup/update` 使用 `--hook-profile lite`;默认 `lite` 会保留 `Stop` 收工回顾,用于在本轮结束前提醒是否值得沉淀项目经验,并要求 Agent 用“本次情况 / 准备整理成的经验 / 以后如何复用 / 只保留在当前项目里”的结构化人话向用户确认
|
|
44
|
+
22. hook 会强制阻断几类场景:需求入口未完成就写实现、外部证据不足就直接改第三方集成、skill/AGENTS 变更未先可视化确认、以及敏感信息场景下直接读原始 vault 文件
|
|
45
|
+
23. 当 `doctor` 报告生成引导漂移时,读取 `.openprd/harness/drift-report.json`
|
|
42
46
|
|
|
43
47
|
## 主工作流
|
|
44
48
|
|
|
@@ -64,7 +68,7 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
64
68
|
- 不要把 `run --context` 建议当作直接用户命令
|
|
65
69
|
- 用户给出会话 ID 续接历史任务时,使用 `openprd run <path> --context --message <用户原话或会话ID>` 保留通用会话 ID 语义;先恢复指定会话,不要让当前 active change 抢主线
|
|
66
70
|
- 用户没有给 ID、但明确描述了已有需求/任务对象时,也使用 `openprd run <path> --context --message <用户原话>`;先解析对应的 change/task/work unit,再决定是否沿用当前工作区状态
|
|
67
|
-
- 默认 lite Codex hooks 会为明确的 OpenPrd、PRD、深度调研、对标复刻、standards、fleet、文档标准化提示词,以及结构上较复杂的需求注入 `$openprd-requirement-intake`
|
|
71
|
+
- 默认 lite Codex hooks 会为明确的 OpenPrd、PRD、深度调研、对标复刻、standards、fleet、文档标准化提示词,以及结构上较复杂的需求注入 `$openprd-requirement-intake` 分流提示;快速修正(L0)不打开 requirement gate,现有功能优化(L1)用对话内 mini-plan 承接,新功能/新流程方案(L2)才进入 PRD/review/change/tasks;轻量 `PreToolUse` 写入门禁会在需求入口未确认前阻断过早实现;本轮准备结束时,`Stop` 会基于 touched files 和 verify/finish 信号回顾是否要生成项目经验草案,并要求 Agent 先用人话向用户确认是否保留到当前项目里
|
|
68
72
|
- 只有当项目确实需要完整 hook 遥测或临时深度诊断时,才用 `openprd update <path> --hook-profile full`
|
|
69
73
|
- 长程实现循环使用:
|
|
70
74
|
- `openprd loop <path> --init`
|
|
@@ -73,15 +77,20 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
73
77
|
- `openprd loop <path> --prompt --agent codex`
|
|
74
78
|
- `openprd loop <path> --run --agent codex --dry-run`
|
|
75
79
|
- `openprd loop <path> --run --agent claude --dry-run`
|
|
80
|
+
- `openprd loop <path> --run --agent codex` 真实执行前会先运行 `codex --version`;若缺 Codex 平台原生可选依赖,默认只诊断并提示修复命令,不静默安装
|
|
81
|
+
- `openprd doctor <path> --tools codex --fix` 和 `openprd loop <path> --run --agent codex --repair-agent` 是显式修复入口,只有用户同意全局执行 `npm install -g @openai/codex@latest` 后才使用
|
|
76
82
|
- `openprd loop <path> --finish --item <task-id> --commit`
|
|
77
|
-
- 让 `.openprd/harness/feature-list.json`、`progress.md`、`agent-sessions.jsonl`、`loop-state.json` 和 `loop-prompts/`
|
|
83
|
+
- 让 `.openprd/harness/feature-list.json`、`progress.md`、`agent-sessions.jsonl`、`loop-state.json` 和 `loop-prompts/` 成为持久实现状态;feature list 里的 execution strategy 会为 worker shard 标注 `write-scope`、`owner-role`、`local-verify` 和 `integration-owner`
|
|
78
84
|
- 只有在当前用户消息明确要求开发、继续任务、深度调研、对标复刻或提交时,才运行 `openprd loop <path> --run`
|
|
79
|
-
- 代码修改完成后、最终回复前,运行 `openprd dev-check <path> <file
|
|
80
|
-
- 用户只是要求生成图片、封面图、配图、海报、插画、图标、贴纸、头像、banner、主视觉/KV、运营图、效果图、视觉稿、mockup 或先看样子时,默认调用 Codex 原生 Image 2
|
|
81
|
-
-
|
|
85
|
+
- 代码修改完成后、最终回复前,运行 `openprd dev-check <path> <file...>`;需要关注的文件必须在最终回复里以 **后续建议** 表格说明影响位置、关注程度、规模信号、为什么需要关注、本次处理和后续建议,并按 🔴 → 🟠 → 🟡 排序
|
|
86
|
+
- 用户只是要求生成图片、封面图、配图、海报、插画、图标、贴纸、头像、banner、主视觉/KV、运营图、效果图、视觉稿、mockup 或先看样子时,默认调用 `imagegen`(Codex 原生 Image 2)生成图片;除非用户明确指定 HTML/SVG/CSS/Canvas/代码稿,不要生成临时 HTML 再截图;未调用 `imagegen` 前,不要声称生图已完成、失败或限流
|
|
87
|
+
- 大界面改动不直接开工:先用 Codex Computer Use 打开产品内对应功能并截图,再用 `imagegen`(Codex 原生 Image 2)基于截图生成至少 3 个设计方向,横向拼接成一张带 1/2/3 序号的大图给用户确认;用户确认某个方向后,再把它作为实现参考图进入后续任务
|
|
88
|
+
- 如果已有参考效果图、图片资产、设计稿、截图或用户给图并进入实现阶段,阶段性完成后必须生成实现截图,并用 `openprd visual-compare <path> --reference <效果图> --actual <实现截图>` 输出 JPG 视觉对比图;如果局部细节更重要,再补 `--board <focus-board.json>` 输出局部焦点证据板;如果没有明确参考图但改动界面,动手前先生成修改前截图,完成后生成修改后截图,并用 `openprd visual-compare <path> --before <修改前截图> --after <修改后截图>` 输出 JPG 自检图;如果并行试了多个优化方向,再补 `--board <parallel-board.json>` 输出并行实验证据板。未查看对比图、或对比图仍有明显差异/漂移时,不要声称界面视觉完成
|
|
82
89
|
- `openprd loop <path> --finish` 前,先完成文档影响检查并更新缺失或过期的 `docs/basic/`、文件说明书和文件夹 README;涉及后端、脚本、Agent、工具链、服务或数据处理变更时,同步评估 CLI 与 API 两个接入面
|
|
83
|
-
-
|
|
84
|
-
-
|
|
90
|
+
- 声称单个任务完成前,只运行本任务最小足够验证,并通过 `--evidence`、测试报告或任务 metadata 留下 task-scoped evidence;不要在每个任务里反复运行 `openprd quality <path> --verify` 或全局 `openprd run <path> --verify`
|
|
91
|
+
- 阶段收口、全部任务完成、handoff/commit/release/publish 前,再运行 `openprd quality <path> --verify` 并审阅生成的 HTML 质量评估报告,检查场景标签、必需 EVO 门禁、日志、业务护栏、冒烟覆盖、任务完整性、性能基线、极端场景和知识缺口
|
|
92
|
+
- 如果当前任务是在发布 OpenPrd 自身到 GitHub,新版本必须同时具备匹配的项目版本号、版本条目、版本 tag 和 GitHub Release;只有 push/tag 没有 Release 不算发布闭环。优先先用 `openprd release <path> --notes ...` 累计版本条目,再用 `node scripts/openprd-github-release-notes.mjs <path> --version <x.y.z> --tag <vX.Y.Z>` 生成发布文案,并确认仓库 workflow 已成功 create/edit 对应 release
|
|
93
|
+
- 如果本轮修复已经出现可复用模式,可先运行 `openprd quality <path> --learn --review --from .openprd/harness/turn-state.json` 生成项目经验候选;对用户呈现时先用“这次我观察到的情况 / 我计划保留的一条项目经验 / 以后如果再遇到类似任务我会怎么复用 / 这条经验只保留在当前项目里,要不要一起保留”这套结构化人话询问。确认值得长期保留后,再运行 `openprd quality <path> --learn --from <candidate-dir>` 正式沉淀为项目经验
|
|
85
94
|
- `openprd loop <path> --finish` 应同时留下 Markdown 和 HTML 回归证据到 `.openprd/harness/test-reports/`,把它们视作任务交付物的一部分
|
|
86
95
|
- 每个 loop 任务都对应一个全新 Codex 或 Claude 会话边界,不要在同一会话里继续下一项任务
|
|
87
96
|
- 处理历史项目集群前先审计:
|
|
@@ -96,7 +105,11 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
96
105
|
- 使用:
|
|
97
106
|
- `openprd clarify <path>`
|
|
98
107
|
- 当关键产品事实缺失时,先查看 `intake-reflection.md` 的需求入口自省,再把压缩后的必须确认问题问给用户
|
|
99
|
-
- 当需求模糊、起点只有一句想法,或需要先做方案探索时,先查看生成的 `intake-reflection.md
|
|
108
|
+
- 当需求模糊、起点只有一句想法,或需要先做方案探索时,先查看生成的 `intake-reflection.md`,先把用户群体、产品形态、第一版切片、暂不处理、不能破坏和风险探针整理成首轮项目画像,再把压缩后的目标、范围、非目标、验收方式和必须确认问题放在对话里请用户确认;不要生成或打开澄清 HTML
|
|
109
|
+
- Agent 在对话里先用业务和产品语言复述:这次主要给谁、什么场景、先解决什么、先不碰什么、不能影响什么、会带来哪些业务风险。默认先追问 1 个最高价值问题,而不是一次性抛一整墙技术问题。
|
|
110
|
+
- 如果当前还是 L2 的首轮澄清或 requirement 摘要确认阶段,只能承诺“我先整理需求摘要给你确认,确认后再进入 PRD / review 流程”;不要写成“你回我一句我就开始实现”,也不要把 requirement 摘要确认、review 和实现压成一步。
|
|
111
|
+
- `面向个人消费者场景 / 面向企业服务场景 / 以 Agent 为主要使用场景` 不是只给后面 PRD 用的模板方向;澄清阶段就要前移场景视角。面向个人消费者场景更看首次场景、用户感受和回访动力;面向企业服务场景更看拍板方、使用方、推进方和上线阻力;Agent 场景更看自主边界、人工兜底和失败恢复。
|
|
112
|
+
- 当用户一开始不想讲太细时,可以先给 2 到 3 个方向和取舍供用户选,不要逼用户先回答完整 schema。
|
|
100
113
|
- 优先分阶段确认:问题、用户、范围、成功标准和开放问题;复杂需求先让 OpenPrD 内部完成意图归一化、项目上下文映射和产品质量自检,不要把固定问题墙一次性砸给用户
|
|
101
114
|
- 收到答案后,用下面命令写回:
|
|
102
115
|
- `openprd capture <path> --field <section.path> --value <text|json>`
|
|
@@ -118,9 +131,11 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
118
131
|
- 使用:
|
|
119
132
|
- `openprd synthesize <path> --title ... --owner ... --problem ... --why-now ...`
|
|
120
133
|
- 如果草稿仍然稀疏,明确说明还缺什么
|
|
134
|
+
- 生成 `spec.md` 和 tasks 时默认使用简体中文;必要专有名词、品牌名、命令名、路径、字段名和 API 术语可以保留原文
|
|
121
135
|
- `synthesize` 生成 `review.html` 后,必须把 HTML 路径告诉用户,并自动打开它(或紧接着运行 `openprd review <path> --open`)
|
|
122
136
|
- 评审页里的需求关系图、需求流程图和重点摘要不要靠 HTML 截断;`openprd synthesize` 生成版本快照后,不要直接把 review 给用户确认。必须先用 `openprd review-presentation <path> --template` 查看展示文案契约,让 Agent 按 `reviewPresentation` 写短文案,再用 `openprd review-presentation <path> --presentation <json> --write --fail-on-violation` 校验并写回。脚本通过后会写入校验元信息并重渲染可确认 review.html;超限时按脚本返回的 jsonPath 和字数限制重新提炼,不手工改快照、不裁剪原文
|
|
123
|
-
- 把生成的 `review.html` 当作首选稳定评审 artifact。默认 approval policy 是 `decision-points`:当前 lane 仍需要人类决策时,请用户先评审问题定义、范围、主流程、风险和开放问题,再运行带精确 `--version`、`--digest`、`--work-unit` 的 `openprd review <path> --mark confirmed
|
|
137
|
+
- 把生成的 `review.html` 当作首选稳定评审 artifact。默认 approval policy 是 `decision-points`:当前 lane 仍需要人类决策时,请用户先评审问题定义、范围、主流程、风险和开放问题,再运行带精确 `--version`、`--digest`、`--work-unit` 的 `openprd review <path> --mark confirmed`。L2 下先确认对话内 requirement 摘要,再写回确认事实、classify/synthesize,并进入这一步 review。若用户一开始已经明确要求直接做,并显式表示“不需要进行任何确认”,lane 才可进入 `silent-record`;单纯的“请帮我实现/继续实现”或“不要评审”都不触发这个豁免。进入 `silent-record` 后也只允许记录当前精确匹配的稳定 artifact,不能借机替别的版本补确认。review 记录完成且 tasks 就绪后,如果用户刚刚确认的是现有功能优化(L1)的 mini-plan、范围边界或正式产品边界,后续承接要写成“已确认,我按这个继续”,不要写成“确认,我们就按这个……”这种像再次索取确认的句子;如果用户原始意图已经明确要求实现,可直接继续执行;否则先输出执行确认清单,列出本轮目标、将执行内容、不做事项、验证方式和已知风险,再请求明确执行授权,不能只要求用户回复一句确认
|
|
138
|
+
- 在 L2 的 requirement 摘要确认前,不要承诺“确认后我就开始实现”;正确顺序是:先确认摘要,再写回事实、进入 classify/synthesize/review,review 和 tasks 就绪后才谈执行。
|
|
124
139
|
|
|
125
140
|
### 6. 需要时生成可视化评审产物
|
|
126
141
|
|
|
@@ -128,6 +143,11 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
128
143
|
- 架构确认
|
|
129
144
|
- 流程 / 旅程确认
|
|
130
145
|
- 需求定稿前的可视化评审
|
|
146
|
+
- 当需求属于大界面改动时,在 PRD 定稿或实现开工前先走“视觉方案评审”:
|
|
147
|
+
- 用 Codex Computer Use 进入产品内对应功能,截取当前真实界面
|
|
148
|
+
- 用 `imagegen`(Codex 原生 Image 2)基于该截图做图生图,至少产出 3 个不同设计思想方向
|
|
149
|
+
- 将 3 张效果图横向拼接为一张大图,每张左上角标注 1/2/3,并保存到 `.openprd/harness/visual-reviews/`
|
|
150
|
+
- 展示给用户评审确认;未确认方向前,不进入大 UI 实现或声称方案已定
|
|
131
151
|
|
|
132
152
|
### 7. 只在草稿准备好时 freeze
|
|
133
153
|
|
|
@@ -140,7 +160,8 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
140
160
|
- 声称实现就绪前,再校验质量:
|
|
141
161
|
- `openprd quality <path> --verify`
|
|
142
162
|
- 把 `.openprd/quality/reports/<id>.html` 当作面向人的评审产物,用于查看当前场景必需 EVO 门禁、可观测性、业务成本与滥用护栏、评估执行环境、性能、压力数据和项目知识
|
|
143
|
-
- 如果 HTML 或 `openprd run <path> --verify` 显示 `productionReady=false
|
|
163
|
+
- 如果 HTML 或 `openprd run <path> --verify` 显示 `productionReady=false`,最终回复不得宣称整体就绪;必须先区分 `taskReady` 与 `workspaceReady`,再列出缺证据或需关注的必需门禁
|
|
164
|
+
- 如果 `openprd run <path> --verify` 只剩 `feature-coverage` 待关注,要说明是任务账本或覆盖证据未收口,不要把本次功能表述成失败
|
|
144
165
|
- 进入高风险动作前,校验完整 harness:
|
|
145
166
|
- `openprd run <path> --verify`
|
|
146
167
|
- `openprd doctor <path>`
|
|
@@ -160,7 +181,8 @@ description: 驱动 OpenPrd 工作区完成从澄清到 handoff 的主流程。
|
|
|
160
181
|
- 当 agent 环境可能没有正确跟随 OpenPrd 时,优先用 `openprd doctor`
|
|
161
182
|
- 生成 adapter 文件漂移时,优先运行 `openprd update` 修复,而不是手改生成文件
|
|
162
183
|
- 当方案形态仍不清晰时,优先先 review 再进入需求定稿
|
|
163
|
-
-
|
|
184
|
+
- 当界面改动比较大、用户需要先选方向、或页面信息架构/主视觉会明显变化时,优先先做 3 方向效果图评审,再进入实现
|
|
185
|
+
- 用户要求生成图片、封面图、配图、海报、插画、图标、贴纸、头像、banner、主视觉/KV、运营图、效果图、视觉稿、mockup 或先看样子时,优先调用 `imagegen`(Codex 原生 Image 2);只有实际发生 `imagegen` 调用后,才能汇报生图结果、失败或限流。界面任务进入实现阶段时,已有参考图用 `openprd visual-compare --reference/--actual` 生成左右对比 JPG,无参考图但改动界面用 `openprd visual-compare --before/--after` 生成修改前后自检 JPG;局部细节优先补 `--board <focus-board.json>`,并行优化方向优先补 `--board <parallel-board.json>`,共同作为视觉就绪判断依据
|
|
164
186
|
- 遇到 blocker 时,优先把阻塞条件显式暴露出来,而不是悄悄补脑
|
|
165
187
|
|
|
166
188
|
## 禁止行为
|
|
@@ -26,6 +26,21 @@ Route to diagram review before freeze if:
|
|
|
26
26
|
- dependencies or boundaries are important to approval
|
|
27
27
|
- the user explicitly asks for a diagram, flow, or visual explanation
|
|
28
28
|
|
|
29
|
+
## Visual Direction Gate
|
|
30
|
+
|
|
31
|
+
Before large UI changes, route to visual direction review after requirement intake and before implementation or PRD freeze if:
|
|
32
|
+
|
|
33
|
+
- information architecture, core layout, primary visual language, key path, or component hierarchy/density will change substantially
|
|
34
|
+
- the user asks to compare design directions, effect images, mockups, or "先看样子"
|
|
35
|
+
- the change is an existing feature optimization but product judgment is needed before visual implementation
|
|
36
|
+
|
|
37
|
+
Required artifact:
|
|
38
|
+
|
|
39
|
+
- current in-product screenshot captured with Codex Computer Use
|
|
40
|
+
- at least three Image 2 image-to-image directions based on that screenshot
|
|
41
|
+
- one horizontal contact sheet under `.openprd/harness/visual-reviews/`, with each option numbered 1/2/3 in the top-left corner
|
|
42
|
+
- explicit user confirmation of the chosen direction before large UI implementation
|
|
43
|
+
|
|
29
44
|
## Freeze Gate
|
|
30
45
|
|
|
31
46
|
Freeze is appropriate when:
|
|
@@ -16,7 +16,7 @@ description: 评估 OpenPrd 的可观测性、业务成本与滥用护栏、评
|
|
|
16
16
|
- eval、评估体系、冒烟测试、功能覆盖、异常流程、逆向流程
|
|
17
17
|
- CPU、内存、加载时间、接口耗时、压力测试、极端数据
|
|
18
18
|
- 质量评估报告、HTML 审查产物、质量门禁
|
|
19
|
-
-
|
|
19
|
+
- 界面效果图、实现截图、视觉对比、复刻对标、大界面改动方案评审、阶段性视觉评审
|
|
20
20
|
- 复盘后沉淀经验 Skill,避免同类问题反复出现
|
|
21
21
|
|
|
22
22
|
## 核心命令
|
|
@@ -29,6 +29,10 @@ description: 评估 OpenPrd 的可观测性、业务成本与滥用护栏、评
|
|
|
29
29
|
- `openprd quality <path> --learn --review --from .openprd/harness/turn-state.json`
|
|
30
30
|
- 生成界面视觉对比图:
|
|
31
31
|
- `openprd visual-compare <path> --reference <效果图> --actual <实现截图>`
|
|
32
|
+
- `openprd visual-compare <path> --before <修改前截图> --after <修改后截图>`
|
|
33
|
+
- `openprd visual-compare <path> --board <focus-board.json|parallel-board.json>`
|
|
34
|
+
- 大界面改动的实现前方案评审:
|
|
35
|
+
- 先用 Codex Computer Use 截取产品内当前功能截图,再用 `imagegen`(Codex 原生 Image 2)生成至少 3 个设计方向,并保存横向拼接评审大图到 `.openprd/harness/visual-reviews/`
|
|
32
36
|
- 基于已审查报告生成或刷新项目级经验:
|
|
33
37
|
- `openprd quality <path> --learn --from <candidate-dir|report-id-or-json>`
|
|
34
38
|
- 审查执行中发现的配置、规则候选或 user-local 偏好:
|
|
@@ -51,9 +55,9 @@ description: 评估 OpenPrd 的可观测性、业务成本与滥用护栏、评
|
|
|
51
55
|
- 可观测性:前端、后端、agent 工具、异步任务和错误路径能否通过共享 trace/request/task/error id 串起来
|
|
52
56
|
- 业务成本与滥用护栏:免费、试用、消耗型资源、AI 调用、第三方 API、下载、存储等路径是否有额度、负向验证、监控、报警和止损
|
|
53
57
|
- 评估执行环境:冒烟测试、功能覆盖、正常性能和极端数据场景是否存在并持续维护
|
|
54
|
-
-
|
|
58
|
+
- 视觉评审证据:大界面改动进入实现前,应存在 3 方向效果图横向评审大图和用户选定方向;涉及界面视觉实现且已有参考效果图时,确认 `.openprd/harness/visual-reviews/` 下存在本次 `openprd visual-compare` 输出的“效果图 / 实现截图”JPG,并且 Agent 已基于合成图复核差异;无参考图但改动界面时,确认存在“修改前 / 修改后”JPG,并已检查预期变化和未改区域漂移;当验收关注局部细节时,确认存在“局部焦点证据板”;当并行跑了多个优化方向时,确认存在“并行实验证据板”
|
|
55
59
|
- HTML 质量评估报告:`.openprd/quality/reports/` 下的人类审查产物是否存在,且足以支持就绪判断
|
|
56
|
-
-
|
|
60
|
+
- 项目经验沉淀:已验证修复是否应该先生成当前项目内的项目经验候选;若值得保留,先用“本次观察到的情况 / 计划保留的经验 / 以后怎么复用 / 只保留在当前项目里”的结构化人话询问用户,再沉淀为 `.openprd/knowledge/skills/` 下可复用的项目经验
|
|
57
61
|
- 自我成长:配置缺口、文件识别、命令习惯或用户偏好优先沉淀为 `.openprd/growth` 候选,经用户确认后固化;不要把个人偏好混进项目共享质量经验
|
|
58
62
|
|
|
59
63
|
## 可观测性规则
|
|
@@ -81,8 +85,10 @@ description: 评估 OpenPrd 的可观测性、业务成本与滥用护栏、评
|
|
|
81
85
|
## 就绪判断规则
|
|
82
86
|
|
|
83
87
|
- `openprd quality <path> --verify` 生成 advisory 报告时,仍要认真阅读 HTML,不得只看命令退出结果。
|
|
84
|
-
- `openprd run <path> --verify`
|
|
85
|
-
-
|
|
88
|
+
- `openprd run <path> --verify` 若显示 `taskReady=true` 且 `workspaceReady=false`,不能宣称整体工作区就绪;先明确区分“当前任务通过,工作区待关注”,再列出未通过门禁。
|
|
89
|
+
- 若只剩 `feature-coverage`,说明是任务账本或覆盖证据未收口,不要把本次功能表述成失败。
|
|
90
|
+
- 大界面改动缺少实现前 3 方向效果图评审或用户未确认方向时,不要进入大 UI 实现,也不要声称方案已定。
|
|
91
|
+
- UI 任务有参考图但缺少 visual-compare 输出时,不要宣称视觉实现完成;无参考图的 UI 改动缺少修改前后截图对比时,不要宣称视觉自检完成;局部细节本该单独审却没有局部焦点证据板时,不要把整屏图当成充分验收;并行跑了多个优化方向却没有并行实验证据板时,不要只凭口头结论收尾;如果对比图仍有明显偏差或漂移,先返工而不是把差异留给用户发现。
|
|
86
92
|
- 最终回复必须列出未通过的必需 EVO 门禁;如果某门禁被判定不适用,要说明它是当前场景可选或已有明确豁免。
|
|
87
93
|
|
|
88
94
|
## 经验 Skill 规则
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: openprd-requirement-intake
|
|
3
|
-
description: OpenPrd 需求入口与 PRD 分流 skill。用于用户提出产品需求、功能变更、bugfix、流程调整、跨对话续做、OpenPrd/PRD 生成、review/change/tasks 前置判断时,先按语义判断用户可见需求类型和内部 L0/L1/L2
|
|
3
|
+
description: OpenPrd 需求入口与 PRD 分流 skill。用于用户提出产品需求、功能变更、bugfix、流程调整、跨对话续做、OpenPrd/PRD 生成、review/change/tasks 前置判断时,先按语义判断用户可见需求类型和内部 L0/L1/L2 路由码,并选择通用 / 面向个人消费者场景 / 面向企业服务场景 / 以 Agent 为主要使用场景的 PRD 模板视角。对用户复述时不用 raw enum,`consumer/b2b/agent` 只留给内部记录和命令。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# OpenPrd Requirement Intake
|
|
@@ -11,7 +11,7 @@ description: OpenPrd 需求入口与 PRD 分流 skill。用于用户提出产品
|
|
|
11
11
|
|
|
12
12
|
- 判断当前用户输入的用户可见需求类型和内部 L0/L1/L2 路由码
|
|
13
13
|
- 决定下一步是直接澄清、mini-plan,还是正式 PRD
|
|
14
|
-
- 为 L2
|
|
14
|
+
- 为 L2 选择通用、面向个人消费者场景、面向企业服务场景或以 Agent 为主要使用场景的 PRD 视角;`base/consumer/b2b/agent` 只用于内部记录和命令
|
|
15
15
|
- 把用户当前需求和历史 active change 分开,避免“继续任务”吞掉新范围
|
|
16
16
|
- 给 `$openprd-harness` 输出下一步行动合同
|
|
17
17
|
|
|
@@ -25,7 +25,10 @@ description: OpenPrd 需求入口与 PRD 分流 skill。用于用户提出产品
|
|
|
25
25
|
| 现有功能优化 | L1 | 目标明确,但影响多个文件、状态或用户可见行为 | 先给对话内 mini-plan,再执行 |
|
|
26
26
|
| 新功能/新流程方案 | L2 | 新产品、模块、入口、流程、权限、计费、账号、AI/第三方、云服务、数据迁移、跨系统、长期工作流,或目标/验收/影响面不清 | 先走 PRD/review/change/tasks |
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
用户审查时优先把路由码并进“需求类型:快速修正(L0)”这类标签里,不要把内部调度码单独抬成标题。只有审查或调试真的受益时,才额外补“内部路由码:L1”这类信息,并保留上面的对照关系。
|
|
29
|
+
用户侧表达优先使用“面向个人消费者场景 / 面向企业服务场景 / 以 Agent 为主要使用场景”这类自然语言,不要把 `consumer`、`b2b`、`agent` 直接当展示词抛给用户。
|
|
30
|
+
|
|
31
|
+
界面、页面、视觉、样式或前端体验需求需要额外判断 UI 影响面。若会明显改变信息架构、核心布局、主视觉、关键路径、组件层级/密度,或用户需要先选择设计方向,即使属于“现有功能优化”,也要先走“大界面改动视觉方案评审”:Computer Use 截取当前产品内功能截图,`imagegen`(Codex 原生 Image 2)基于截图生成至少 3 个方向,横向拼接带 1/2/3 序号的大图给用户确认。
|
|
29
32
|
|
|
30
33
|
如果同一句话同时包含“继续旧任务”和“新增范围”,先判断新增范围是否超出旧 PRD。超出时必须回到需求入口,更新 PRD/change/tasks,不能把“继续”当作实现授权。
|
|
31
34
|
|
|
@@ -33,14 +36,15 @@ description: OpenPrd 需求入口与 PRD 分流 skill。用于用户提出产品
|
|
|
33
36
|
|
|
34
37
|
1. 读取 `.openprd/` 状态和 `openprd run . --context`,但把它当作建议。
|
|
35
38
|
2. 用 `references/routing-rubric.md` 判断 L0/L1/L2。
|
|
36
|
-
3. 如果是 L2,读取 `references/prd-template-lenses.md` 选择 PRD
|
|
39
|
+
3. 如果是 L2,读取 `references/prd-template-lenses.md` 选择 PRD 场景视角。
|
|
37
40
|
4. 输出一个短的需求类型判断:
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
41
|
+
- 先总后分,优先按下面结构在对话里给用户看:
|
|
42
|
+
- 需求判断:需求类型(默认写成 `快速修正(L0)` / `现有功能优化(L1)` / `新功能/新流程方案(L2)`)/ 产品类型 / 推荐下一步
|
|
43
|
+
- 只有内部排障真的受益时,才额外补一行“内部路由码”
|
|
44
|
+
- 需求理解:主要服务对象 / 使用场景 / 第一版先做什么 / 这轮先不做什么 / 必须守住什么
|
|
45
|
+
- 功能范围:优先用 Markdown 表格写 `功能模块 | 这次先做什么 | 这次先不做什么`
|
|
46
|
+
- 技术方案:优先用 Markdown 表格写 `技术部分 | 初步方案 | 主要负责什么`;涉及前端、后端、Agent、数据或集成时,按用户能看懂的功能视角拆开
|
|
47
|
+
- L2 时补充 PRD 场景视角:通用场景 / 面向个人消费者场景 / 面向企业服务场景 / 以 Agent 为主要使用场景
|
|
44
48
|
5. 把执行交回 `$openprd-harness`。
|
|
45
49
|
|
|
46
50
|
## 输出合同
|
|
@@ -55,27 +59,34 @@ description: OpenPrd 需求入口与 PRD 分流 skill。用于用户提出产品
|
|
|
55
59
|
|
|
56
60
|
- 给 3-5 行 mini-plan。
|
|
57
61
|
- 明确范围内、范围外和验证方式。
|
|
62
|
+
- 默认先用业务/产品语言复述需求,再只追问 1 个最高价值问题;不要上来抛技术字段墙。
|
|
63
|
+
- 若是大界面改动,mini-plan 之后先做 3 方向效果图评审,用户确认方向后再实现。
|
|
58
64
|
- 用户已明确要求执行时可继续实现。
|
|
59
65
|
- 不生成正式 PRD,除非 mini-plan 暴露出新的决策缺口。
|
|
60
66
|
|
|
61
67
|
### L2
|
|
62
68
|
|
|
63
69
|
- 先运行或建议 `openprd clarify .`。
|
|
64
|
-
-
|
|
65
|
-
-
|
|
70
|
+
- 先建立首轮项目画像:用户群体、产品形态、第一版切片、暂不处理、不能破坏和风险探针。
|
|
71
|
+
- 再用对话内结构化摘要确认需求,默认按“需求判断 / 需求理解 / 功能范围 / 技术方案”的顺序来写,其中“功能范围”和“技术方案”优先用 Markdown 表格。
|
|
72
|
+
- 优先由 Agent 先归纳,再请用户确认;默认先问 1 个最高价值问题,必要时再给 2 到 3 个方向和取舍供用户选,不要一次砸一整墙问题。
|
|
73
|
+
- 当前还是 L2 的首轮澄清或 requirement 摘要确认阶段时,只能承诺“我先整理需求摘要给你确认”;不要写成“你回我一句我就开始实现”,也不要把 requirement 摘要确认、review 和实现压成一句话。
|
|
74
|
+
- 单纯的“请帮我实现/继续实现”只表示用户希望最终落地,不表示可以跳过 requirement 摘要确认、`capture/classify/synthesize` 写入路径或 review;只有用户明确表示“不需要进行任何确认”时,才允许静默走完整 requirement write path。
|
|
75
|
+
- 用户侧表达优先使用业务和产品语言,强调谁在什么场景下解决什么问题、会获得什么收益、要承担什么业务风险;避免过早暴露前端/后端/数据库这类技术黑话。
|
|
76
|
+
- 使用 `openprd capture . --field ...` 只写回已确认事实;`agent-normalized` 仅用于无语义变化的内部措辞整理,不替代用户确认。
|
|
66
77
|
- 选择并记录产品类型:`openprd classify . <consumer|b2b|agent>`;无法判断时保持 `base`。
|
|
67
|
-
-
|
|
78
|
+
- requirement 摘要确认后,再进入 `openprd classify .`、`openprd synthesize .`、review artifact、change 和 tasks。
|
|
68
79
|
|
|
69
|
-
## PRD
|
|
80
|
+
## PRD 场景视角
|
|
70
81
|
|
|
71
|
-
- `base
|
|
72
|
-
- `consumer
|
|
73
|
-
- `b2b
|
|
74
|
-
- `agent
|
|
82
|
+
- `base`:通用产品或工程场景,强调问题、目标、首轮项目画像、范围、流程、需求矩阵、验收和风险。
|
|
83
|
+
- 内部 `consumer`:面向个人消费者场景,强调用户旅程、首次成功、激活、留存、情绪价值和增长指标。
|
|
84
|
+
- 内部 `b2b`:面向企业服务场景,强调买方/使用者/管理员/运营者、权限矩阵、审批审计、集成依赖、SLA 和上线支持。
|
|
85
|
+
- 内部 `agent`:以 Agent 为主要使用场景,强调 Human-Agent contract、自主边界、工具边界、状态模型、失败恢复和评估计划。
|
|
75
86
|
|
|
76
|
-
|
|
87
|
+
模板视角应融入正文结构,不要作为 PRD 末尾的字段附录。比如企业服务场景的角色、权限和审批应该贯穿用户、流程、需求矩阵和验收标准;Agent 场景的自主边界应该贯穿范围、风险、任务和验证。
|
|
77
88
|
|
|
78
89
|
## 何时读取参考
|
|
79
90
|
|
|
80
91
|
- 分流有争议、用户输入很长、或涉及“继续旧任务 + 新范围”时,读 `references/routing-rubric.md`。
|
|
81
|
-
- 需要写 PRD
|
|
92
|
+
- 需要写 PRD、选择产品场景、或用户反馈 PRD 结构奇怪时,读 `references/prd-template-lenses.md`。
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# PRD
|
|
1
|
+
# PRD 场景视角参考
|
|
2
2
|
|
|
3
3
|
## 共同骨架
|
|
4
4
|
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
7. 有什么风险:依赖、约束、成本、滥用、开放问题
|
|
14
14
|
8. 如何交接:review、change、tasks、负责人、下一步
|
|
15
15
|
|
|
16
|
-
`base/prd.md`
|
|
16
|
+
`base/prd.md` 提供这个骨架。其他模板不是附录,而是场景视角:它们会改变正文组织、需求矩阵和验收重点。
|
|
17
17
|
|
|
18
|
-
## Base
|
|
18
|
+
## 通用产品或工程场景(Base)
|
|
19
19
|
|
|
20
20
|
用于无法明确归类、或通用工程/产品需求。
|
|
21
21
|
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
- 约束、依赖、风险、开放问题
|
|
33
33
|
- 交接与下一步
|
|
34
34
|
|
|
35
|
-
## Consumer
|
|
35
|
+
## 面向个人消费者场景(Consumer)
|
|
36
36
|
|
|
37
37
|
用于个人用户、C 端体验、内容、增长、留存或情绪价值明显的需求。
|
|
38
38
|
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
- Activation / Retention Signal
|
|
54
54
|
- UX Risk
|
|
55
55
|
|
|
56
|
-
## B2B
|
|
56
|
+
## 面向企业服务场景(B2B)
|
|
57
57
|
|
|
58
58
|
用于企业、团队、后台、SaaS、组织流程、管理/审批/权限相关需求。
|
|
59
59
|
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
- Admin / Operator Impact
|
|
75
75
|
- Integration Dependency
|
|
76
76
|
|
|
77
|
-
## Agent
|
|
77
|
+
## 以 Agent 为主要使用场景(Agent)
|
|
78
78
|
|
|
79
79
|
用于 AI Agent、harness、skill、自动化、代码代理、人机协作或评估体系。
|
|
80
80
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 判断维度
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
按下面四个维度判断,不按固定关键词判断。用户审查时优先展示“需求类型:快速修正(L0)”这类合并标签;只有内部调度和排障真的受益时,才额外附上“内部路由码”。
|
|
6
6
|
|
|
7
7
|
| 用户可见需求类型 | 内部路由码 | 默认路径 |
|
|
8
8
|
|---|---|---|
|
|
@@ -17,6 +17,14 @@
|
|
|
17
17
|
| 决策成本 | 不需要产品决策 | 需要简短方案选择 | 需要先评审意图和范围 |
|
|
18
18
|
| 验证成本 | 单元/局部验证 | 组合验证或 E2E | 需要分阶段任务、回归、业务/成本/权限验证 |
|
|
19
19
|
|
|
20
|
+
## UI 影响面补充判断
|
|
21
|
+
|
|
22
|
+
界面、页面、视觉、样式或前端体验需求先按 L0/L1/L2 分流,再判断是否需要视觉方案评审。
|
|
23
|
+
|
|
24
|
+
- 小 UI 调整:按钮文案、颜色、间距、字号、单点样式、局部 bug,通常仍按 L0 或 L1。
|
|
25
|
+
- 大界面改动:信息架构、核心布局、主视觉、关键路径、组件层级/密度明显变化,或用户需要先选设计方向。
|
|
26
|
+
- 大界面改动不直接实现;在 mini-plan、PRD 定稿或实现开工前,先用 Computer Use 截当前产品内功能图,再用 Image 2 生成至少 3 个方向,横向拼接带 1/2/3 序号的大图给用户确认。
|
|
27
|
+
|
|
20
28
|
## L0:快速修正
|
|
21
29
|
|
|
22
30
|
适合直接处理:
|
|
@@ -37,7 +45,7 @@
|
|
|
37
45
|
- 一个现有功能或现有流程里的局部体验优化
|
|
38
46
|
- 一个明确 bug 的系统化修复,需要补测试和文档
|
|
39
47
|
|
|
40
|
-
输出:需求类型为“现有功能优化”,先给 3-5 行 mini-plan
|
|
48
|
+
输出:需求类型为“现有功能优化”,先给 3-5 行 mini-plan,包含范围内、范围外、验证方式。若属于大界面改动,先补视觉方案评审;用户确认方向后才进入大 UI 实现。
|
|
41
49
|
|
|
42
50
|
## L2:新功能/新流程方案
|
|
43
51
|
|
|
@@ -22,12 +22,12 @@ description: OpenPrd 入口路由 skill。先判断当前任务该读哪个 repo
|
|
|
22
22
|
|
|
23
23
|
## 路由表
|
|
24
24
|
|
|
25
|
-
-
|
|
25
|
+
- 需求入口分流、用户可见需求类型与内部 L0/L1/L2 路由码对照、PRD 场景视角选择:`skills/openprd-requirement-intake/SKILL.md`
|
|
26
26
|
- 主工作流、review/change/tasks、`run/loop`:`skills/openprd-harness/SKILL.md`
|
|
27
27
|
- 最佳实践、benchmark、公开 GitHub 仓库、第三方技术事实、prompt/context engineering:`skills/openprd-benchmark-router/SKILL.md`
|
|
28
28
|
- `docs/basic/`、文件说明书、文件夹 README、文档标准:`skills/openprd-standards/SKILL.md`
|
|
29
29
|
- 就绪验证、EVO 门禁、HTML 质量评估报告、项目经验沉淀:`skills/openprd-quality/SKILL.md`
|
|
30
|
-
-
|
|
30
|
+
- 架构图、产品流程图、可视评审、大界面改动效果图方案评审:`skills/openprd-diagram-review/SKILL.md` 与 `skills/openprd-harness/SKILL.md`
|
|
31
31
|
- 长时间只读挖掘、参考项目持续调研、requirements/specs/tasks 补全:`skills/openprd-discovery-loop/SKILL.md`
|
|
32
32
|
- 学习包、归档阅读器、知识整理:`skills/openprd-learning-review/SKILL.md`
|
|
33
33
|
|