@openprd/cli 0.1.11 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/.openprd/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/pm-human-in-the-loop/.openprd.yaml +2 -0
  26. package/.openprd/changes/pm-human-in-the-loop/design.md +38 -0
  27. package/.openprd/changes/pm-human-in-the-loop/proposal.md +29 -0
  28. package/.openprd/changes/pm-human-in-the-loop/specs/agent-requirements/spec.md +16 -0
  29. package/.openprd/changes/pm-human-in-the-loop/task-events.jsonl +18 -0
  30. package/.openprd/changes/pm-human-in-the-loop/tasks.md +306 -0
  31. package/.openprd/changes/test-strategy-router/.openprd.yaml +2 -0
  32. package/.openprd/changes/test-strategy-router/design.md +65 -0
  33. package/.openprd/changes/test-strategy-router/proposal.md +45 -0
  34. package/.openprd/changes/test-strategy-router/specs/agent-requirements/spec.md +16 -0
  35. package/.openprd/changes/test-strategy-router/task-events.jsonl +1 -0
  36. package/.openprd/changes/test-strategy-router/tasks.md +132 -0
  37. package/.openprd/changes/verify-boundaries-and-historical-refresh/.openprd.yaml +2 -0
  38. package/.openprd/changes/verify-boundaries-and-historical-refresh/design.md +28 -0
  39. package/.openprd/changes/verify-boundaries-and-historical-refresh/proposal.md +23 -0
  40. package/.openprd/changes/verify-boundaries-and-historical-refresh/specs/agent-requirements/spec.md +16 -0
  41. package/.openprd/changes/verify-boundaries-and-historical-refresh/task-events.jsonl +11 -0
  42. package/.openprd/changes/verify-boundaries-and-historical-refresh/tasks.md +66 -0
  43. package/.openprd/changes/vibe-coding-dev-check/.openprd.yaml +2 -0
  44. package/.openprd/changes/vibe-coding-dev-check/design.md +37 -0
  45. package/.openprd/changes/vibe-coding-dev-check/proposal.md +28 -0
  46. package/.openprd/changes/vibe-coding-dev-check/specs/agent-requirements/spec.md +16 -0
  47. package/.openprd/changes/vibe-coding-dev-check/task-events.jsonl +18 -0
  48. package/.openprd/changes/vibe-coding-dev-check/tasks.md +306 -0
  49. package/.openprd/design/README.md +11 -6
  50. package/.openprd/design/README_EN.md +4 -1
  51. package/.openprd/design/active/asset-spec.md +6 -0
  52. package/.openprd/design/active/direction-plan.md +5 -5
  53. package/.openprd/design/active/selected-direction.md +2 -0
  54. package/.openprd/design/anti-slop.md +26 -1
  55. package/.openprd/design/assets/surface-presets.md +6 -0
  56. package/.openprd/design/checklists/ui-quality-gate.md +7 -0
  57. package/.openprd/design/lenses/frontend-lenses.md +28 -0
  58. package/.openprd/design/recipes/content-experience.md +8 -1
  59. package/.openprd/design/recipes/operational-tool.md +7 -0
  60. package/.openprd/design/recipes/product-launch.md +8 -1
  61. package/.openprd/design/templates/README.md +6 -3
  62. package/.openprd/design/templates/README_EN.md +6 -3
  63. package/.openprd/design/templates/ops-dashboard.html +8 -1
  64. package/.openprd/design/templates/product-launch.html +2 -1
  65. package/.openprd/design/themes/theme-catalog.json +23 -5
  66. package/.openprd/engagements/active/prd.md +103 -100
  67. package/.openprd/standards/config.json +7 -1
  68. package/AGENTS.md +13 -3
  69. package/README.md +107 -14
  70. package/README_EN.md +131 -13
  71. package/package.json +1 -1
  72. package/scripts/dev-check-wrapup-copy.mjs +46 -21
  73. package/skills/openprd-diagram-review/SKILL.md +27 -2
  74. package/skills/openprd-diagram-review/references/explanation-svg-patterns.md +131 -0
  75. package/skills/openprd-discovery-loop/SKILL.md +2 -2
  76. package/skills/openprd-frontend-design/SKILL.md +44 -20
  77. package/skills/openprd-frontend-design/references/design-asset-contract.md +6 -0
  78. package/skills/openprd-frontend-design/references/direction-engine.md +29 -4
  79. package/skills/openprd-harness/SKILL.md +22 -16
  80. package/skills/openprd-quality/SKILL.md +10 -8
  81. package/skills/openprd-requirement-intake/SKILL.md +2 -0
  82. package/skills/openprd-router/SKILL.md +2 -1
  83. package/skills/openprd-shared/SKILL.md +26 -16
  84. package/skills/openprd-standards/SKILL.md +4 -2
  85. package/src/agent-canonical-content.js +808 -0
  86. package/src/agent-integration.js +258 -777
  87. package/src/canvas-app.html.js +2910 -0
  88. package/src/canvas-i18n.js +274 -0
  89. package/src/canvas-workspace.js +2271 -0
  90. package/src/cli/args.js +72 -4
  91. package/src/cli/basic-print.js +3 -0
  92. package/src/cli/canvas-print.js +106 -0
  93. package/src/cli/doctor-print.js +20 -0
  94. package/src/cli/print.js +2 -0
  95. package/src/cli/quality-commands.js +222 -0
  96. package/src/cli/quality-print.js +28 -2
  97. package/src/cli/run-print.js +5 -0
  98. package/src/cli/workflow-print.js +3 -0
  99. package/src/codex-app-server-relay.js +251 -0
  100. package/src/codex-hook-runner-template.mjs +957 -59
  101. package/src/design-starter-support.js +2 -2
  102. package/src/design-starter.js +39 -3
  103. package/src/dev-standards.js +125 -10
  104. package/src/diagram-core.js +6 -20
  105. package/src/discovery.js +2 -8
  106. package/src/docs-compact.js +125 -0
  107. package/src/execution-strategy.js +1 -1
  108. package/src/fleet.js +9 -3
  109. package/src/guide.js +227 -0
  110. package/src/html-artifacts.js +428 -7
  111. package/src/knowledge.js +45 -11
  112. package/src/language-policy.js +63 -3
  113. package/src/learning-review.js +1 -1
  114. package/src/loop.js +1 -1
  115. package/src/openprd.js +68 -131
  116. package/src/openspec/change-validate.js +2 -2
  117. package/src/openspec/constants.js +6 -7
  118. package/src/openspec/execute.js +2 -2
  119. package/src/openspec/generate.js +318 -102
  120. package/src/openspec/migration.js +168 -0
  121. package/src/openspec/paths.js +1 -22
  122. package/src/prd-core.js +1 -1
  123. package/src/quality-visual-review.js +257 -14
  124. package/src/quality.js +46 -8
  125. package/src/review-presentation.js +60 -0
  126. package/src/run-harness.js +41 -3
  127. package/src/session-evidence.js +363 -0
  128. package/src/standards.js +64 -0
  129. package/src/test-strategy.js +7 -4
  130. package/src/visual-compare-centering.js +622 -0
  131. package/src/visual-compare-core.js +1123 -0
  132. package/src/visual-compare.js +620 -698
  133. package/src/workspace-core.js +94 -4
  134. package/src/workspace-workflow.js +46 -1
@@ -0,0 +1,357 @@
1
+ # 任务
2
+
3
+ - [x] T001.01 评审生成的 spec 覆盖
4
+ - type: governance
5
+ - done: 生成的 agent-requirements spec 符合 PRD 意图
6
+ - verify: openprd change . --validate --change loop-isolated-worktree-commit
7
+ - test-layer: manual
8
+ - test-size: manual
9
+ - test-scope: governance
10
+ - evidence-plan: openprd change . --validate --change loop-isolated-worktree-commit
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 loop-isolated-worktree-commit
17
+ - integration-owner: main-agent
18
+
19
+ - [x] T001.02 接通界面入口、导航与页面挂载
20
+ - type: implementation
21
+ - deps: T001.01
22
+ - done: 用户可以从正确入口进入对应界面,页面挂载与状态收尾已经接通。 涉及: OpenPrd 的状态文件、review / change / tasks 主流程。
23
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.02 --evidence-required
24
+ - test-layer: integration, e2e
25
+ - test-size: large
26
+ - test-scope: user-flow
27
+ - evidence-plan: 主流程自动化、截图或 visual-compare 证据 + 本任务 verify 命令
28
+ - upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据
29
+ - execution-mode: serial
30
+ - parallel-group: integration
31
+ - write-scope: src/**, test/**, docs/basic/**
32
+ - owner-role: main-agent
33
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.02 --evidence-required
34
+ - integration-owner: main-agent
35
+
36
+ - [x] T001.03 支持显式 worktree / branch 配置,或提供隔离运行包装命令
37
+ - type: implementation
38
+ - deps: T001.02
39
+ - done: 已完成:支持显式 worktree / branch 配置,或提供隔离运行包装命令
40
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --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 loop-isolated-worktree-commit --item T001.03 --evidence-required
51
+ - integration-owner: main-agent
52
+
53
+ - [x] T001.04 支持检测主工作区脏状态,并在 finish --commit 前阻断高风险路径
54
+ - type: implementation
55
+ - deps: T001.03
56
+ - done: 已完成:支持检测主工作区脏状态,并在 finish --commit 前阻断高风险路径
57
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.04 --evidence-required
58
+ - test-layer: unit, integration
59
+ - test-size: medium
60
+ - test-scope: cli-contract
61
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
62
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
63
+ - execution-mode: parallel-workers
64
+ - parallel-group: domain
65
+ - write-scope: src/**, test/**
66
+ - owner-role: worker
67
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.04 --evidence-required
68
+ - integration-owner: main-agent
69
+
70
+ - [x] T001.05 支持基于 write-scope 或 touched files 生成本任务提交集
71
+ - type: implementation
72
+ - deps: T001.04
73
+ - done: 已完成:支持基于 write-scope 或 touched files 生成本任务提交集
74
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.05 --evidence-required
75
+ - test-layer: integration, security
76
+ - test-size: medium
77
+ - test-scope: security
78
+ - evidence-plan: 正向路径 + 越权、额度、并发或敏感信息负向验证
79
+ - upgrade-reason: 触达权限、安全、成本或滥用边界,需要至少集成级证据
80
+ - execution-mode: parallel-workers
81
+ - parallel-group: implementation
82
+ - write-scope: src/**, test/**
83
+ - owner-role: worker
84
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.05 --evidence-required
85
+ - integration-owner: main-agent
86
+
87
+ - [x] T001.06 支持在 loop 状态、session 日志和测试报告中记录 commit 关联信息
88
+ - type: implementation
89
+ - deps: T001.05
90
+ - done: 已完成:支持在 loop 状态、session 日志和测试报告中记录 commit 关联信息
91
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.06 --evidence-required
92
+ - test-layer: unit, integration
93
+ - test-size: medium
94
+ - test-scope: cli-contract
95
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
96
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
97
+ - execution-mode: parallel-workers
98
+ - parallel-group: verification
99
+ - write-scope: test/**, .openprd/harness/test-reports/**
100
+ - owner-role: worker
101
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.06 --evidence-required
102
+ - integration-owner: main-agent
103
+
104
+ - [x] T001.07 支持为未满足 commit 前置条件的任务给出清晰诊断与恢复指引
105
+ - type: implementation
106
+ - deps: T001.06
107
+ - done: 已完成:支持为未满足 commit 前置条件的任务给出清晰诊断与恢复指引
108
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.07 --evidence-required
109
+ - test-layer: unit, integration
110
+ - test-size: medium
111
+ - test-scope: cli-contract
112
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
113
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
114
+ - execution-mode: parallel-workers
115
+ - parallel-group: implementation
116
+ - write-scope: src/**, test/**
117
+ - owner-role: worker
118
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.07 --evidence-required
119
+ - integration-owner: main-agent
120
+
121
+ - [x] T001.08 打通主流程闭环:用户为一个 change 进入 loop 开发时,OpenPrd 可显式创建或接入隔离 worktree 与命名 等 3 项
122
+ - type: implementation
123
+ - deps: T001.07
124
+ - done: 主流程关键节点已经打通,用户可以按预期从入口走到结果收尾。涉及: 用户为一个 change 进入 loop 开发时,OpenPrd 可显式创建或接入隔离 worktree 与命名分支,再在其中逐任务运行和提交 等 3 项。
125
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --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 命令
130
+ - upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据
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 loop-isolated-worktree-commit --item T001.08 --evidence-required
136
+ - integration-owner: main-agent
137
+
138
+ - [x] T001.09 验证在隔离 worktree 中连续完成多个 loop 任务时,每个任务都能生成独立 commit,并把 commitSha 写回状态
139
+ - type: verification
140
+ - deps: T001.08
141
+ - done: 已验证:在隔离 worktree 中连续完成多个 loop 任务时,每个任务都能生成独立 commit,并把 commitSha 写回状态
142
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --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 loop-isolated-worktree-commit --item T001.09 --evidence-required
153
+ - integration-owner: main-agent
154
+
155
+ - [x] T001.10 验证在脏主工作区直接尝试 finish --commit 时,会收到明确阻断和豁免提示
156
+ - type: verification
157
+ - deps: T001.09
158
+ - done: 已验证:在脏主工作区直接尝试 finish --commit 时,会收到明确阻断和豁免提示
159
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.10 --evidence-required
160
+ - test-layer: unit, integration
161
+ - test-size: medium
162
+ - test-scope: cli-contract
163
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
164
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
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 loop-isolated-worktree-commit --item T001.10 --evidence-required
170
+ - integration-owner: main-agent
171
+
172
+ - [x] T001.11 验证从状态文件和 session 日志可以追溯每个任务对应的 worktree、branch、commit 和测试报告
173
+ - type: verification
174
+ - deps: T001.10
175
+ - done: 已验证:从状态文件和 session 日志可以追溯每个任务对应的 worktree、branch、commit 和测试报告
176
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --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 loop-isolated-worktree-commit --item T001.11 --evidence-required
187
+ - integration-owner: main-agent
188
+
189
+ - [x] T001.12 验证新能力不破坏现有 loop 的 plan、next、run、finish、verify 基本路径
190
+ - type: verification
191
+ - deps: T001.11
192
+ - done: 已验证:新能力不破坏现有 loop 的 plan、next、run、finish、verify 基本路径
193
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --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 loop-isolated-worktree-commit --item T001.12 --evidence-required
204
+ - integration-owner: main-agent
205
+
206
+ - [x] T001.13 回归非功能约束:默认路径必须安全,不能把无关改动静默卷入 commit / 行为必须可追踪,可从状态文件复原任务执行链路
207
+ - type: verification
208
+ - deps: T001.12
209
+ - done: 非功能约束已经回归确认。涉及: 默认路径必须安全,不能把无关改动静默卷入 commit / 行为必须可追踪,可从状态文件复原任务执行链路。
210
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --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 loop-isolated-worktree-commit --item T001.13 --evidence-required
221
+ - integration-owner: main-agent
222
+
223
+ - [x] T001.14 回归非功能约束:对现有 loop 用户保持兼容,新增能力应尽量显式开启或有明确默认策略 等 2 项
224
+ - type: verification
225
+ - deps: T001.13
226
+ - done: 非功能约束已经回归确认。涉及: 对现有 loop 用户保持兼容,新增能力应尽量显式开启或有明确默认策略 / 失败路径必须可恢复,不能留下半记录状态。
227
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.14 --evidence-required
228
+ - test-layer: unit, integration
229
+ - test-size: medium
230
+ - test-scope: cli-contract
231
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
232
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
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 loop-isolated-worktree-commit --item T001.14 --evidence-required
238
+ - integration-owner: main-agent
239
+
240
+ - [x] T001.15 回归边界条件与失败处理:边界情况:用户在脏主工作区里直接尝试 finish --commit 等 8 项
241
+ - type: verification
242
+ - deps: T001.14
243
+ - done: 边界条件与失败处理已经回归确认。涉及: 边界情况:用户在脏主工作区里直接尝试 finish --commit 等 8 项。
244
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.15 --evidence-required
245
+ - test-layer: unit, integration
246
+ - test-size: medium
247
+ - test-scope: cli-contract
248
+ - evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
249
+ - upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
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 loop-isolated-worktree-commit --item T001.15 --evidence-required
255
+ - integration-owner: main-agent
256
+
257
+ - [x] T001.16 验证成本与额度护栏
258
+ - type: verification
259
+ - deps: T001.15
260
+ - done: 已验证免费、试用或低权限用户不能绕过额度、并发、频率或总量限制
261
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.16 --evidence-required
262
+ - test-layer: integration, security
263
+ - test-size: medium
264
+ - test-scope: security
265
+ - evidence-plan: 正向路径 + 越权、额度、并发或敏感信息负向验证
266
+ - upgrade-reason: 触达权限、安全、成本或滥用边界,需要至少集成级证据
267
+ - execution-mode: parallel-workers
268
+ - parallel-group: verification
269
+ - write-scope: test/**, .openprd/harness/test-reports/**
270
+ - owner-role: worker
271
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.16 --evidence-required
272
+ - integration-owner: main-agent
273
+
274
+ - [x] T001.17 验证滥用与越权路径
275
+ - type: verification
276
+ - deps: T001.16
277
+ - done: 已覆盖重复请求、并发请求、越权身份和异常恢复等负向场景
278
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.17 --evidence-required
279
+ - test-layer: integration, security
280
+ - test-size: medium
281
+ - test-scope: security
282
+ - evidence-plan: 正向路径 + 越权、额度、并发或敏感信息负向验证
283
+ - upgrade-reason: 触达权限、安全、成本或滥用边界,需要至少集成级证据
284
+ - execution-mode: parallel-workers
285
+ - parallel-group: verification
286
+ - write-scope: test/**, .openprd/harness/test-reports/**
287
+ - owner-role: worker
288
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.17 --evidence-required
289
+ - integration-owner: main-agent
290
+
291
+ - [x] T001.18 验证成本监控、报警和止损
292
+ - type: verification
293
+ - deps: T001.17
294
+ - done: 已确认用量或成本信号、报警阈值和人工/自动止损动作可执行
295
+ - verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.18 --evidence-required
296
+ - test-layer: integration, security
297
+ - test-size: medium
298
+ - test-scope: security
299
+ - evidence-plan: 正向路径 + 越权、额度、并发或敏感信息负向验证
300
+ - upgrade-reason: 触达权限、安全、成本或滥用边界,需要至少集成级证据
301
+ - execution-mode: parallel-workers
302
+ - parallel-group: verification
303
+ - write-scope: test/**, .openprd/harness/test-reports/**
304
+ - owner-role: worker
305
+ - local-verify: openprd tasks . --change loop-isolated-worktree-commit --item T001.18 --evidence-required
306
+ - integration-owner: main-agent
307
+
308
+ - [x] T001.19 维护 docs/basic 项目基础文档
309
+ - type: documentation
310
+ - deps: T001.18
311
+ - done: 已检查 docs/basic 是否缺失或因本次需求、流程、结构、依赖、产品行为变化而过期;若涉及后端、脚本、Agent 或工具链变更,已同步评估 CLI 与 API 接入面,并在 backend-structure.md 中记录事实或不适用原因;需要更新的基础文档已同步
312
+ - verify: openprd standards . --verify
313
+ - test-layer: manual
314
+ - test-size: manual
315
+ - test-scope: docs
316
+ - evidence-plan: openprd standards . --verify
317
+ - upgrade-reason: 文档任务以标准校验和人工审查证据为主
318
+ - execution-mode: parallel-workers
319
+ - parallel-group: docs
320
+ - write-scope: docs/basic/**, README*.md
321
+ - owner-role: worker
322
+ - local-verify: openprd standards . --verify
323
+ - integration-owner: main-agent
324
+
325
+ - [x] T001.20 更新文件说明书和文件夹 README
326
+ - type: documentation
327
+ - deps: T001.19
328
+ - done: 本次变更涉及的文件说明书和文件夹 README 已检查;缺失的已补齐,过期的已更新
329
+ - verify: openprd standards . --verify
330
+ - test-layer: manual
331
+ - test-size: manual
332
+ - test-scope: docs
333
+ - evidence-plan: openprd standards . --verify
334
+ - upgrade-reason: 文档任务以标准校验和人工审查证据为主
335
+ - execution-mode: parallel-workers
336
+ - parallel-group: docs
337
+ - write-scope: docs/basic/**, README*.md
338
+ - owner-role: worker
339
+ - local-verify: openprd standards . --verify
340
+ - integration-owner: main-agent
341
+
342
+ - [x] T001.21 运行 OpenPrd spec 校验
343
+ - type: governance
344
+ - deps: T001.20
345
+ - done: 生成的 change 通过 OpenPrd 校验
346
+ - verify: openprd change . --validate --change loop-isolated-worktree-commit
347
+ - test-layer: manual
348
+ - test-size: manual
349
+ - test-scope: governance
350
+ - evidence-plan: openprd change . --validate --change loop-isolated-worktree-commit
351
+ - upgrade-reason: 治理任务以结构校验、评审确认和变更状态证据为主
352
+ - execution-mode: serial
353
+ - parallel-group: governance
354
+ - write-scope: openprd/changes/**, .openprd/**
355
+ - owner-role: main-agent
356
+ - local-verify: openprd change . --validate --change loop-isolated-worktree-commit
357
+ - integration-owner: main-agent
@@ -0,0 +1,2 @@
1
+ schema: openprd.change.v1
2
+ generatedFrom: v0004
@@ -0,0 +1,46 @@
1
+ # 设计
2
+
3
+ ## 背景
4
+
5
+ 用户已经确认,希望在现有短文案变化摘要的基础上,再补一个可选的项目级版本轨道:既能维护当前版本和版本内更新内容,也能在 commit 流里利用版本信息辅助打 tag,让 release notes、handoff 和外部同步有稳定来源。
6
+
7
+ ## 目标
8
+
9
+ - 在 OpenPrd 现有内部 PRD 版本之上,新增一个可选的项目级 release/version 轨道,用来维护当前版本号与版本内更新项。
10
+ - 把现有用户视角短文案摘要和项目版本轨道结合起来,让 commit、handoff、release notes 与外部同步都能复用同一套版本内变化条目。
11
+ - 在用户显式使用 commit 流且版本信息可用时,提供与版本号协同的 tag 辅助能力,但保留高风险 git 行为的安全护栏。
12
+
13
+ ## 范围
14
+
15
+ - 新增可选的项目级 release/version ledger,用于维护当前版本号、版本状态和版本内更新项。
16
+ - 把现有变化摘要条目挂载到具体项目版本下,支持需求、Bug、handoff 摘要和 release notes 候选的累计。
17
+ - 扩展 commit 流,在版本轨道已启用且用户显式执行 commit 时读取当前版本,并辅助创建或更新本地版本 tag。
18
+ - 扩展 handoff、release notes 与后续外部同步出口,让它们可以从项目版本轨道导出版本内变化内容。
19
+ - 补充 README、skills、文档和测试,并验证项目版本轨道与短文案摘要的协同效果。
20
+
21
+ ## 约束
22
+
23
+ - 需要兼容现有 loop、handoff、review-presentation 和 html-artifacts 的调用契约。
24
+ - 需要在 dirty workspace 中做窄改动,避免误伤正在进行的 test-strategy-router 等历史工作。
25
+ - 依赖现有 OpenPrd CLI、review-presentation、html-artifacts、loop 和 handoff 导出流程。
26
+
27
+ ## 业务护栏
28
+
29
+ - 成本来源: 无新增第三方付费调用成本;变化摘要完全基于本地上下文生成。
30
+ - 额度限制: 不引入新的用户额度或发布配额限制;沿用现有 commit / handoff 执行门禁。
31
+ - 滥用防护: 不默认自动 push、自动发布或自动 force 更新远端 tag。
32
+ - 滥用防护: 只有在用户显式执行 commit 且版本轨道启用时,才进入版本 tag 辅助路径。
33
+ - 滥用防护: 远端已有同名版本 tag 时,系统只提示风险和当前指向,不静默改写历史。
34
+ - 监控信号: 关注生成摘要是否频繁退回技术细节、是否在测试中出现失真或空摘要。
35
+ - 报警阈值: 如果三处输出中任一处无法生成可信摘要并持续回退,需要在测试中显式暴露。
36
+ - 止损动作: 当上下文不足或摘要质量不可信时,回退到现有安全文案,不自动包装。
37
+
38
+ ## 风险与开放问题
39
+
40
+ - 假设: 用户更看重人能快速扫懂的变化摘要,而不是技术完整性优先的底层说明。
41
+ - 假设: 三处落点可以共用一套核心 formatter,再按场景做轻量渲染差异。
42
+ - 风险: 如果 formatter 规则过死,可能把一些纯技术任务描述得失真。
43
+ - 风险: 如果只改一处而没有共用 contract,后续很快会再次分叉。
44
+ - 问题: 版本轨道是否需要支持 Unreleased 这种未定版态,还是只维护一个明确 current version。
45
+ - 问题: 本地 tag 跟最新 commit 的策略是否只在未推远端前自动生效,还是需要更细的项目级配置。
46
+ - 问题: Feishu 等外部同步出口首期是否只导出版本说明,不直接回写外部系统。
@@ -0,0 +1,36 @@
1
+ # OpenPrd 项目级版本轨道与变化摘要
2
+
3
+ ## 背景与原因
4
+
5
+ OpenPrd 现在已经有内部 PRD 版本和用户视角变化摘要,但还没有一个可选的项目级 release/version 轨道来维护当前版本号、版本内更新项,以及与 commit tag 的协同规则。结果是版本号已经在项目里被真实使用,却缺少一个本地真源来累计本版本的需求、Bug、handoff 摘要和最终发布说明。
6
+
7
+ ## 变更内容
8
+
9
+ - 新增可选的项目级 release/version ledger,用于维护当前版本号、版本状态和版本内更新项。
10
+ - 把现有变化摘要条目挂载到具体项目版本下,支持需求、Bug、handoff 摘要和 release notes 候选的累计。
11
+ - 扩展 commit 流,在版本轨道已启用且用户显式执行 commit 时读取当前版本,并辅助创建或更新本地版本 tag。
12
+ - 扩展 handoff、release notes 与后续外部同步出口,让它们可以从项目版本轨道导出版本内变化内容。
13
+ - 补充 README、skills、文档和测试,并验证项目版本轨道与短文案摘要的协同效果。
14
+ - OpenPrd 提供可选的项目级 release/version ledger,支持记录 current version、版本状态和版本内变化项。
15
+ - 现有共享变化摘要规则支持把新增、修复、优化、调整、移除等条目关联到具体项目版本。
16
+ - handoff 与 release notes 导出优先从项目版本轨道读取对应版本的变化条目。
17
+ - 当版本轨道已启用且用户通过 OpenPrd 显式执行 commit 时,commit 流可以读取当前版本号并辅助创建或更新本地版本 tag。
18
+ - 当用户未更新版本号时,后续变化默认继续累计到当前版本;当用户显式更新版本号后,新的变化进入下一个版本。
19
+ - 新增项目级 release/version ledger,支持 current version、版本状态和版本内变化项存储。
20
+ - 现有变化摘要层继续复用新增、修复、优化、调整、移除等短文案动作词,并能挂到具体项目版本下。
21
+ - commit 流在启用版本轨道且用户明确执行时,可以读取当前版本并辅助创建或更新本地版本 tag;同版本多次提交时 tag 可移动到最新 commit。
22
+ - README、skills、handoff/release 导出和测试同步说明版本轨道与 tag 协同规则。
23
+
24
+ ## 能力范围
25
+
26
+ - `agent-requirements`: OpenPrd 项目级版本轨道与变化摘要 需求。
27
+
28
+ ## 影响范围
29
+
30
+ - 主要用户: 维护 OpenPrd CLI、skills 和 review 产物的 OpenPrd maintainer
31
+ - 主要用户: 使用 OpenPrd 执行任务并需要生成 commit、handoff 或版本说明的 Agent 使用者
32
+ - 成本来源: 无新增第三方付费调用成本;变化摘要完全基于本地上下文生成。
33
+ - 额度限制: 不引入新的用户额度或发布配额限制;沿用现有 commit / handoff 执行门禁。
34
+ - 依赖: 依赖现有 OpenPrd CLI、review-presentation、html-artifacts、loop 和 handoff 导出流程。
35
+ - 风险: 如果 formatter 规则过死,可能把一些纯技术任务描述得失真。
36
+ - 风险: 如果只改一处而没有共用 contract,后续很快会再次分叉。
@@ -0,0 +1,16 @@
1
+ ## 新增需求
2
+
3
+ ### 需求:OpenPrd 项目级版本轨道与变化摘要
4
+ OpenPrd 现在已经有内部 PRD 版本和用户视角变化摘要,但还没有一个可选的项目级版本轨道来维护当前版本号、版本内更新项,以及与提交标签的协同规则。结果是版本号已经在项目里被真实使用,却缺少一个本地真源来累计本版本的需求、问题修复、交接摘要和最终发布说明。
5
+
6
+ #### 场景:主流程成功
7
+ - **当** 用户在项目里启用版本轨道后,OpenPrd 记录当前版本号,例如 0.1.23,并把后续变化条目累计到该版本下。
8
+ - **则** 新增项目级版本账本,支持当前版本、版本状态和版本内变化项存储。
9
+
10
+ #### 场景:边界情况保持可见
11
+ - **当** 项目可能已经有自己的一套版本号规则,OpenPrd 需要允许手动修正当前版本号,而不是强推默认策略。
12
+ - **则** 产品应保持该情况明确可见,以支持实现和验证
13
+
14
+ #### 场景:失败模式得到处理
15
+ - **当** 版本轨道和内部 PRD 版本被混用,导致用户误以为 v0003 就是项目发版号。
16
+ - **则** 产品应提供有边界且可评审的结果
@@ -0,0 +1,23 @@
1
+ {"version":1,"at":"2026-06-02 13:24:40","changeId":"openprd","action":"advance","taskId":"T001.01","taskTitle":"评审生成的 spec 覆盖","ok":true,"verify":{"ok":true,"command":"openprd change . --validate --change openprd","exitCode":0,"stdout":"OpenPrd change 验证: 通过\nChange: openprd\n- OpenPrd change openprd: 1 个 spec delta。\n- openprd/changes/openprd/specs/agent-requirements/spec.md: 1 个需求。\n- 结构化 OpenPrd 任务: 22 个任务,21 条依赖;测试策略显式 22 个、推导 0 个;执行策略显式 0 个、推导 22 个。\n- OpenPrd 任务文件: 1 个文件,22 个 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-06-02 14:56:28","changeId":"openprd","action":"advance","taskId":"T001.02","taskTitle":"接通界面入口、导航与页面挂载","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.02 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
3
+ {"version":1,"at":"2026-06-02 14:56:28","changeId":"openprd","action":"advance","taskId":"T001.03","taskTitle":"对齐共享契约与 Host API 调用边界","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.03 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
4
+ {"version":1,"at":"2026-06-02 14:56:28","changeId":"openprd","action":"advance","taskId":"T001.04","taskTitle":"实现OpenPrd 提供可选的项目级 release/version ledger,支持记录 current version、版本状态和版本内变化项","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.04 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
5
+ {"version":1,"at":"2026-06-02 14:56:28","changeId":"openprd","action":"advance","taskId":"T001.05","taskTitle":"实现现有共享变化摘要规则支持把新增、修复、优化、调整、移除等条目关联到具体项目版本","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.05 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
6
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.06","taskTitle":"实现handoff 与 release notes 导出优先从项目版本轨道读取对应版本的变化条目","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.06 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
7
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.07","taskTitle":"实现当版本轨道已启用且用户通过 OpenPrd 显式执行 commit 时,commit 流可以读取当前版本号并辅助创建或更新本地版本 tag","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.07 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
8
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.08","taskTitle":"实现当用户未更新版本号时,后续变化默认继续累计到当前版本;当用户显式更新版本号后,新的变化进入下一个版本","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.08 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
9
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.09","taskTitle":"打通主流程闭环:用户在项目里启用版本轨道后,OpenPrd 记录当前版本号,例如 0.1.23,并把后续变化条目累计到该版本下 等 4 项","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.09 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
10
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.10","taskTitle":"验证新增项目级 release/version ledger,支持 current version、版本状态和版本内变化项存储","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.10 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
11
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.11","taskTitle":"验证现有变化摘要层继续复用新增、修复、优化、调整、移除等短文案动作词,并能挂到具体项目版本下","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.11 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
12
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.12","taskTitle":"验证commit 流在启用版本轨道且用户明确执行时,可以读取当前版本并辅助创建或更新本地版本 tag;同版本多次提交时 tag 可移动到最新 commit","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.12 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
13
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.13","taskTitle":"验证README、skills、handoff/release 导出和测试同步说明版本轨道与 tag 协同规则","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.13 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
14
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.14","taskTitle":"回归非功能约束:版本轨道是可选辅助信息,不应破坏现有没有版本管理习惯的项目流程 等 2 项","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.14 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
15
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.15","taskTitle":"回归非功能约束:现有显式 commit message、自定义 handoff 内容和已有版本体系优先级不能被新能力静默覆盖 等 2 项","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.15 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
16
+ {"version":1,"at":"2026-06-02 14:56:29","changeId":"openprd","action":"advance","taskId":"T001.16","taskTitle":"回归边界条件与失败处理:边界情况:项目可能已经有自己的一套版本号规则,OpenPrd 需要允许手动修正当前版本号,而不是强推默认策略 等 8 项","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.16 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
17
+ {"version":1,"at":"2026-06-02 14:56:30","changeId":"openprd","action":"advance","taskId":"T001.17","taskTitle":"验证成本与额度护栏","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.17 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
18
+ {"version":1,"at":"2026-06-02 14:56:30","changeId":"openprd","action":"advance","taskId":"T001.18","taskTitle":"验证滥用与越权路径","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.18 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
19
+ {"version":1,"at":"2026-06-02 14:56:30","changeId":"openprd","action":"advance","taskId":"T001.19","taskTitle":"验证成本监控、报警和止损","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.19 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/quality/evidence/evo-quality-gates-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/quality/evidence/evo-quality-gates-20260602.md","notes":null}
20
+ {"version":1,"at":"2026-06-02 14:56:51","changeId":"openprd","action":"advance","taskId":"T001.20","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}
21
+ {"version":1,"at":"2026-06-02 14:56:52","changeId":"openprd","action":"advance","taskId":"T001.21","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}
22
+ {"version":1,"at":"2026-06-02 14:56:52","changeId":"openprd","action":"advance","taskId":"T001.22","taskTitle":"运行 OpenPrd spec 校验","ok":true,"verify":{"ok":true,"command":"openprd change . --validate --change openprd","exitCode":0,"stdout":"OpenPrd change 验证: 通过\nChange: openprd\n- OpenPrd change openprd: 1 个 spec delta。\n- openprd/changes/openprd/specs/agent-requirements/spec.md: 1 个需求。\n- 结构化 OpenPrd 任务: 22 个任务,21 条依赖;测试策略显式 22 个、推导 0 个;执行策略显式 0 个、推导 22 个。\n- OpenPrd 任务文件: 1 个文件,22 个 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}
23
+ {"version":1,"at":"2026-06-08 23:18:48","changeId":"openprd","action":"advance","taskId":"T001.03","taskTitle":"对齐共享契约与 Host API 调用边界","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change openprd --item T001.03 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/openprd-session-registry-followup-20260608.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/openprd-session-registry-followup-20260608.md","notes":null}