@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.
- package/.openprd/changes/adaptive-project-framing/.openprd.yaml +2 -0
- package/.openprd/changes/adaptive-project-framing/design.md +47 -0
- package/.openprd/changes/adaptive-project-framing/proposal.md +35 -0
- package/.openprd/changes/adaptive-project-framing/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/adaptive-project-framing/task-events.jsonl +20 -0
- package/.openprd/changes/adaptive-project-framing/tasks.md +340 -0
- package/.openprd/changes/docs-anti-pollution-and-design-direction-review/.openprd.yaml +2 -0
- package/.openprd/changes/docs-anti-pollution-and-design-direction-review/design.md +34 -0
- package/.openprd/changes/docs-anti-pollution-and-design-direction-review/proposal.md +23 -0
- package/.openprd/changes/docs-anti-pollution-and-design-direction-review/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/docs-anti-pollution-and-design-direction-review/task-events.jsonl +14 -0
- package/.openprd/changes/docs-anti-pollution-and-design-direction-review/tasks.md +238 -0
- package/.openprd/changes/loop-isolated-worktree-commit/.openprd.yaml +2 -0
- package/.openprd/changes/loop-isolated-worktree-commit/design.md +53 -0
- package/.openprd/changes/loop-isolated-worktree-commit/proposal.md +38 -0
- package/.openprd/changes/loop-isolated-worktree-commit/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/loop-isolated-worktree-commit/task-events.jsonl +22 -0
- package/.openprd/changes/loop-isolated-worktree-commit/tasks.md +357 -0
- package/.openprd/changes/openprd/.openprd.yaml +2 -0
- package/.openprd/changes/openprd/design.md +46 -0
- package/.openprd/changes/openprd/proposal.md +36 -0
- package/.openprd/changes/openprd/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/openprd/task-events.jsonl +23 -0
- package/.openprd/changes/openprd/tasks.md +242 -0
- package/.openprd/changes/pm-human-in-the-loop/.openprd.yaml +2 -0
- package/.openprd/changes/pm-human-in-the-loop/design.md +38 -0
- package/.openprd/changes/pm-human-in-the-loop/proposal.md +29 -0
- package/.openprd/changes/pm-human-in-the-loop/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/pm-human-in-the-loop/task-events.jsonl +18 -0
- package/.openprd/changes/pm-human-in-the-loop/tasks.md +306 -0
- package/.openprd/changes/test-strategy-router/.openprd.yaml +2 -0
- package/.openprd/changes/test-strategy-router/design.md +65 -0
- package/.openprd/changes/test-strategy-router/proposal.md +45 -0
- package/.openprd/changes/test-strategy-router/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/test-strategy-router/task-events.jsonl +1 -0
- package/.openprd/changes/test-strategy-router/tasks.md +132 -0
- package/.openprd/changes/verify-boundaries-and-historical-refresh/.openprd.yaml +2 -0
- package/.openprd/changes/verify-boundaries-and-historical-refresh/design.md +28 -0
- package/.openprd/changes/verify-boundaries-and-historical-refresh/proposal.md +23 -0
- package/.openprd/changes/verify-boundaries-and-historical-refresh/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/verify-boundaries-and-historical-refresh/task-events.jsonl +11 -0
- package/.openprd/changes/verify-boundaries-and-historical-refresh/tasks.md +66 -0
- package/.openprd/changes/vibe-coding-dev-check/.openprd.yaml +2 -0
- package/.openprd/changes/vibe-coding-dev-check/design.md +37 -0
- package/.openprd/changes/vibe-coding-dev-check/proposal.md +28 -0
- package/.openprd/changes/vibe-coding-dev-check/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/vibe-coding-dev-check/task-events.jsonl +18 -0
- package/.openprd/changes/vibe-coding-dev-check/tasks.md +306 -0
- package/.openprd/design/README.md +11 -6
- package/.openprd/design/README_EN.md +4 -1
- package/.openprd/design/active/asset-spec.md +6 -0
- package/.openprd/design/active/direction-plan.md +5 -5
- package/.openprd/design/active/selected-direction.md +2 -0
- package/.openprd/design/anti-slop.md +26 -1
- package/.openprd/design/assets/surface-presets.md +6 -0
- package/.openprd/design/checklists/ui-quality-gate.md +7 -0
- package/.openprd/design/lenses/frontend-lenses.md +28 -0
- package/.openprd/design/recipes/content-experience.md +8 -1
- package/.openprd/design/recipes/operational-tool.md +7 -0
- package/.openprd/design/recipes/product-launch.md +8 -1
- package/.openprd/design/templates/README.md +6 -3
- package/.openprd/design/templates/README_EN.md +6 -3
- package/.openprd/design/templates/ops-dashboard.html +8 -1
- package/.openprd/design/templates/product-launch.html +2 -1
- package/.openprd/design/themes/theme-catalog.json +23 -5
- package/.openprd/engagements/active/prd.md +103 -100
- package/.openprd/standards/config.json +7 -1
- package/AGENTS.md +13 -3
- package/README.md +107 -14
- package/README_EN.md +131 -13
- package/package.json +1 -1
- package/scripts/dev-check-wrapup-copy.mjs +46 -21
- package/skills/openprd-diagram-review/SKILL.md +27 -2
- package/skills/openprd-diagram-review/references/explanation-svg-patterns.md +131 -0
- package/skills/openprd-discovery-loop/SKILL.md +2 -2
- package/skills/openprd-frontend-design/SKILL.md +44 -20
- package/skills/openprd-frontend-design/references/design-asset-contract.md +6 -0
- package/skills/openprd-frontend-design/references/direction-engine.md +29 -4
- package/skills/openprd-harness/SKILL.md +22 -16
- package/skills/openprd-quality/SKILL.md +10 -8
- package/skills/openprd-requirement-intake/SKILL.md +2 -0
- package/skills/openprd-router/SKILL.md +2 -1
- package/skills/openprd-shared/SKILL.md +26 -16
- package/skills/openprd-standards/SKILL.md +4 -2
- package/src/agent-canonical-content.js +808 -0
- package/src/agent-integration.js +258 -777
- package/src/canvas-app.html.js +2910 -0
- package/src/canvas-i18n.js +274 -0
- package/src/canvas-workspace.js +2271 -0
- package/src/cli/args.js +72 -4
- package/src/cli/basic-print.js +3 -0
- package/src/cli/canvas-print.js +106 -0
- package/src/cli/doctor-print.js +20 -0
- package/src/cli/print.js +2 -0
- package/src/cli/quality-commands.js +222 -0
- package/src/cli/quality-print.js +28 -2
- package/src/cli/run-print.js +5 -0
- package/src/cli/workflow-print.js +3 -0
- package/src/codex-app-server-relay.js +251 -0
- package/src/codex-hook-runner-template.mjs +957 -59
- package/src/design-starter-support.js +2 -2
- package/src/design-starter.js +39 -3
- package/src/dev-standards.js +125 -10
- package/src/diagram-core.js +6 -20
- package/src/discovery.js +2 -8
- package/src/docs-compact.js +125 -0
- package/src/execution-strategy.js +1 -1
- package/src/fleet.js +9 -3
- package/src/guide.js +227 -0
- package/src/html-artifacts.js +428 -7
- package/src/knowledge.js +45 -11
- package/src/language-policy.js +63 -3
- package/src/learning-review.js +1 -1
- package/src/loop.js +1 -1
- package/src/openprd.js +68 -131
- package/src/openspec/change-validate.js +2 -2
- package/src/openspec/constants.js +6 -7
- package/src/openspec/execute.js +2 -2
- package/src/openspec/generate.js +318 -102
- package/src/openspec/migration.js +168 -0
- package/src/openspec/paths.js +1 -22
- package/src/prd-core.js +1 -1
- package/src/quality-visual-review.js +257 -14
- package/src/quality.js +46 -8
- package/src/review-presentation.js +60 -0
- package/src/run-harness.js +41 -3
- package/src/session-evidence.js +363 -0
- package/src/standards.js +64 -0
- package/src/test-strategy.js +7 -4
- package/src/visual-compare-centering.js +622 -0
- package/src/visual-compare-core.js +1123 -0
- package/src/visual-compare.js +620 -698
- package/src/workspace-core.js +94 -4
- package/src/workspace-workflow.js +46 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# 设计
|
|
2
|
+
|
|
3
|
+
## 背景
|
|
4
|
+
|
|
5
|
+
用户明确指出 Vibe Coding 场景下的首轮需求往往模糊:如果不先建立整体轮廓,后续容易返工;如果一上来就强制填写重问卷,又会压垮首轮体验。因此需要把初始化改成轻量项目画像加条件追问。
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
- 在第一次提需时先形成一页轻量项目画像,而不是直接跳进局部需求修改
|
|
10
|
+
- 让系统优先归纳 to C / to B / agent、目标用户、产品形态、第一版切片、非目标和保护项,再请用户确认
|
|
11
|
+
- 当信息不足时,用条件追问或候选原型方向补齐,而不是要求用户一开始回答完整技术和商业问卷
|
|
12
|
+
|
|
13
|
+
## 范围
|
|
14
|
+
|
|
15
|
+
- 在 clarify、intake-reflection 和 interview 中加入首轮项目画像层
|
|
16
|
+
- 让系统先推断 consumer / b2b / agent 与项目形态,再结合第一版切片、非目标、保护项组织追问
|
|
17
|
+
- 命中技术和业务风险信号时再展开前后端、数据、账号、AI、外部服务、收费等边界问题
|
|
18
|
+
- 同步更新模板、技能说明、基础文档、CLI 输出和相关测试
|
|
19
|
+
|
|
20
|
+
## 约束
|
|
21
|
+
|
|
22
|
+
- 主要修改 src/workspace-workflow.js、src/workspace-core.js、CLI 文本输出、.openprd intake 模板、skills/docs 和测试
|
|
23
|
+
- 避免新增新的硬性必填 schema 字段,优先通过 intake 和 clarification 层完成增强
|
|
24
|
+
- 继续遵守现有 requirement gate、review gate 和 hook 安全边界,不绕过已确认的需求流程。
|
|
25
|
+
- 新增提示和用户可见文案应保持面向产品与业务语言,不直接暴露内部技术细节。
|
|
26
|
+
- 依赖现有 requirement-intake gate、clarify/capture/synthesize/review/change/tasks 工作流
|
|
27
|
+
- 依赖现有 base / consumer / b2b / agent 模板与评审产物体系
|
|
28
|
+
|
|
29
|
+
## 业务护栏
|
|
30
|
+
|
|
31
|
+
- 成本来源: 本次没有新增第三方付费调用;成本主要来自不准确需求初始化带来的返工和错题
|
|
32
|
+
- 额度限制: 不应让每个首次提需都退化成长问卷;默认只问最少必要问题
|
|
33
|
+
- 滥用防护: 系统不能把未确认的推断当作最终需求事实
|
|
34
|
+
- 滥用防护: 命中账号、数据、外部服务、AI 或收费信号时,必须显式提醒边界与风险
|
|
35
|
+
- 监控信号: 观察首轮 clarify 是否仍然过长、是否反复追问同一类信息、是否错误复用旧 change 上下文
|
|
36
|
+
- 报警阈值: 如果简单需求被连续升级成深度追问,或复杂需求仍缺少画像摘要,应在测试中显式暴露
|
|
37
|
+
- 止损动作: 当系统无法准确归纳时,退回到少量高价值确认问题,不假装已经清楚
|
|
38
|
+
- 止损动作: 当当前工作区上下文明显与本轮需求不匹配时,先刷新到新的 change/task 再实现
|
|
39
|
+
|
|
40
|
+
## 风险与开放问题
|
|
41
|
+
|
|
42
|
+
- 假设: Vibe Coding 用户更愿意确认系统总结,而不是先填写长问卷
|
|
43
|
+
- 假设: 现有 lens 分类能力可保留,只需要前移到项目画像语境里
|
|
44
|
+
- 风险: 如果问题过多,会损伤首次提需体验
|
|
45
|
+
- 风险: 如果画像层和现有 capture/analysis 脱节,会造成重复提问
|
|
46
|
+
- 风险: 如果没有处理旧上下文切换,hook 可能继续把代码修改指向错误 change
|
|
47
|
+
- 问题: 后续是否需要单独的 profile review artifact 或 diagram,用于更复杂的多系统场景
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# OpenPrd 首轮项目画像与自适应需求初始化
|
|
2
|
+
|
|
3
|
+
## 背景与原因
|
|
4
|
+
|
|
5
|
+
OpenPrd 在用户第一次提需求时虽然已经有 consumer / b2b / agent 分流、clarify 和后续 review/change/tasks 流程,但缺少一个项目级的首轮画像层。结果是 Agent 容易直接围绕局部需求推进,而没有先确认用户群体、产品形态、第一版切片、先不做什么、不能破坏什么,以及是否命中技术和业务风险。
|
|
6
|
+
|
|
7
|
+
## 变更内容
|
|
8
|
+
|
|
9
|
+
- 在 clarify、intake-reflection 和 interview 中加入首轮项目画像层
|
|
10
|
+
- 让系统先推断 consumer / b2b / agent 与项目形态,再结合第一版切片、非目标、保护项组织追问
|
|
11
|
+
- 命中技术和业务风险信号时再展开前后端、数据、账号、AI、外部服务、收费等边界问题
|
|
12
|
+
- 同步更新模板、技能说明、基础文档、CLI 输出和相关测试
|
|
13
|
+
- clarify 生成的 intake-reflection 应包含首轮项目画像和风险探针
|
|
14
|
+
- inline clarification 应显式展示适用对象、产品形态、第一版先做、先不做、不能破坏和技术落点
|
|
15
|
+
- 冷启动 kickoff 问题改成画像导向问题,而不是抽象的通用提问
|
|
16
|
+
- 类型专项 intake 模板改成更贴近产品与业务语言的提问方式
|
|
17
|
+
- workspace-workflow 能生成首轮项目画像、风险探针和更贴近用户语言的确认问题
|
|
18
|
+
- workspace-core 的冷启动 kickoff 问题升级为画像导向问题
|
|
19
|
+
- intake 模板、skills、docs、CLI 文本输出和测试与新流程保持一致
|
|
20
|
+
|
|
21
|
+
## 能力范围
|
|
22
|
+
|
|
23
|
+
- `agent-requirements`: OpenPrd 首轮项目画像与自适应需求初始化 需求。
|
|
24
|
+
|
|
25
|
+
## 影响范围
|
|
26
|
+
|
|
27
|
+
- 主要用户: 第一次用 OpenPrd 梳理产品想法的产品经理、独立开发者与 Vibe Coding 用户
|
|
28
|
+
- 主要用户: 需要在模糊需求下帮助用户收敛方向并继续落地的 Agent 协作者
|
|
29
|
+
- 成本来源: 本次没有新增第三方付费调用;成本主要来自不准确需求初始化带来的返工和错题
|
|
30
|
+
- 额度限制: 不应让每个首次提需都退化成长问卷;默认只问最少必要问题
|
|
31
|
+
- 依赖: 依赖现有 requirement-intake gate、clarify/capture/synthesize/review/change/tasks 工作流
|
|
32
|
+
- 依赖: 依赖现有 base / consumer / b2b / agent 模板与评审产物体系
|
|
33
|
+
- 风险: 如果问题过多,会损伤首次提需体验
|
|
34
|
+
- 风险: 如果画像层和现有 capture/analysis 脱节,会造成重复提问
|
|
35
|
+
- 风险: 如果没有处理旧上下文切换,hook 可能继续把代码修改指向错误 change
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
## 新增需求
|
|
2
|
+
|
|
3
|
+
### 需求:OpenPrd 首轮项目画像与自适应需求初始化
|
|
4
|
+
OpenPrd 在用户第一次提需求时虽然已经有 consumer / b2b / agent 分流、clarify 和后续 review/change/tasks 流程,但缺少一个项目级的首轮画像层。结果是 Agent 容易直接围绕局部需求推进,而没有先确认用户群体、产品形态、第一版切片、先不做什么、不能破坏什么,以及是否命中技术和业务风险。
|
|
5
|
+
|
|
6
|
+
#### 场景:主流程成功
|
|
7
|
+
- **当** 用户第一次提需求时,OpenPrd 先输出一页项目画像:用户群体、产品形态、第一版先做、先不做、不能破坏、技术落点和风险探针
|
|
8
|
+
- **则** workspace-workflow 能生成首轮项目画像、风险探针和更贴近用户语言的确认问题
|
|
9
|
+
|
|
10
|
+
#### 场景:边界情况保持可见
|
|
11
|
+
- **当** 用户一开始只有一句模糊想法,需要先给候选方向而不是硬追问技术细节
|
|
12
|
+
- **则** 产品应保持该情况明确可见,以支持实现和验证
|
|
13
|
+
|
|
14
|
+
#### 场景:失败模式得到处理
|
|
15
|
+
- **当** 入口过重,导致 Vibe Coding 用户在第一次提需时无法回答
|
|
16
|
+
- **则** 产品应提供有边界且可评审的结果
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{"version":1,"at":"2026-06-02 13:29:14","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.01","taskTitle":"评审生成的 spec 覆盖","ok":true,"verify":{"ok":true,"command":"openprd change . --validate --change adaptive-project-framing","exitCode":0,"stdout":"OpenPrd change 验证: 通过\nChange: adaptive-project-framing\n- OpenPrd change adaptive-project-framing: 1 个 spec delta。\n- openprd/changes/adaptive-project-framing/specs/agent-requirements/spec.md: 1 个需求。\n- 结构化 OpenPrd 任务: 20 个任务,19 条依赖;测试策略显式 20 个、推导 0 个;执行策略显式 20 个、推导 0 个。\n- OpenPrd 任务文件: 1 个文件,20 个 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 16:07:15","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.02","taskTitle":"对齐 workspace currentState、clarify 与项目画像的共享契约边界","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.02 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
3
|
+
{"version":1,"at":"2026-06-02 16:07:15","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.03","taskTitle":"接通首轮澄清入口与 CLI 展示链路","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.03 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
4
|
+
{"version":1,"at":"2026-06-02 16:07:15","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.04","taskTitle":"实现clarify 生成的 intake-reflection 应包含首轮项目画像和风险探针","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.04 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
5
|
+
{"version":1,"at":"2026-06-02 16:07:15","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.05","taskTitle":"实现inline clarification 应显式展示适用对象、产品形态、第一版先做、先不做、不能破坏和技术落点","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.05 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
6
|
+
{"version":1,"at":"2026-06-02 16:07:15","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.06","taskTitle":"实现冷启动 kickoff 问题改成画像导向问题,而不是抽象的通用提问","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.06 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
7
|
+
{"version":1,"at":"2026-06-02 16:07:16","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.07","taskTitle":"实现类型专项 intake 模板改成更贴近产品与业务语言的提问方式","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.07 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
8
|
+
{"version":1,"at":"2026-06-02 16:07:16","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.08","taskTitle":"打通首次提需主流程:先输出项目画像,再进入澄清","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.08 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
9
|
+
{"version":1,"at":"2026-06-02 16:07:16","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.09","taskTitle":"验证workspace-workflow 能生成首轮项目画像、风险探针和更贴近用户语言的确认问题","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.09 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
10
|
+
{"version":1,"at":"2026-06-02 16:07:16","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.10","taskTitle":"验证workspace-core 的冷启动 kickoff 问题升级为画像导向问题","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.10 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
11
|
+
{"version":1,"at":"2026-06-02 16:07:16","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.11","taskTitle":"验证intake 模板、skills、docs、CLI 文本输出和测试与新流程保持一致","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.11 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
12
|
+
{"version":1,"at":"2026-06-02 16:07:16","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.12","taskTitle":"回归非功能约束:默认澄清仍要保持对话内、轻量、可扫读 / 对已有 schema 和生成流程的侵入应尽量小","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.12 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
13
|
+
{"version":1,"at":"2026-06-02 16:07:17","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.13","taskTitle":"回归非功能约束:输出语言优先面向产品和业务用户,而不是工程内部黑话","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.13 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
14
|
+
{"version":1,"at":"2026-06-02 16:07:17","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.14","taskTitle":"回归边界与失败处理:fresh init 保持 greenfield,缺关键字段时稳定产出 intake-reflection","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.14 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
15
|
+
{"version":1,"at":"2026-06-02 16:07:17","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.15","taskTitle":"验证 requirement gate 与无 gate 场景都能生成首轮项目画像","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.15 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
16
|
+
{"version":1,"at":"2026-06-02 16:07:17","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.16","taskTitle":"验证空目录与已有项目目录的场景判定不会串线","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.16 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
17
|
+
{"version":1,"at":"2026-06-02 16:07:17","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.17","taskTitle":"验证真实 CLI smoke:一句话需求会先输出项目画像与澄清","ok":true,"verify":{"ok":true,"command":"openprd tasks . --change adaptive-project-framing --item T001.17 --evidence-required","exitCode":0,"stdout":"OpenPrd task evidence: passed\nevidence: .openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md\nscope: task-only; workspace quality is reserved for phase/final gates","stderr":""},"evidence":".openprd/harness/test-reports/adaptive-project-framing-feature-coverage-20260602.md","notes":"feature coverage evidence 2026-06-02"}
|
|
18
|
+
{"version":1,"at":"2026-06-02 16:07:18","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.18","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}
|
|
19
|
+
{"version":1,"at":"2026-06-02 16:07:18","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.19","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}
|
|
20
|
+
{"version":1,"at":"2026-06-02 16:07:19","changeId":"adaptive-project-framing","action":"advance","taskId":"T001.20","taskTitle":"运行 OpenPrd spec 校验","ok":true,"verify":{"ok":true,"command":"openprd change . --validate --change adaptive-project-framing","exitCode":0,"stdout":"OpenPrd change 验证: 通过\nChange: adaptive-project-framing\n- OpenPrd change adaptive-project-framing: 1 个 spec delta。\n- openprd/changes/adaptive-project-framing/specs/agent-requirements/spec.md: 1 个需求。\n- 结构化 OpenPrd 任务: 20 个任务,19 条依赖;测试策略显式 20 个、推导 0 个;执行策略显式 20 个、推导 0 个。\n- OpenPrd 任务文件: 1 个文件,20 个 checkbox 任务,每个文件最多 25 个。\n- Standards docs root: docs/basic\n- Required docs: 6/6.\n- Manual templates: 2/2.\n- Development standards: code files ok <= 700 lines, attention <= 1500 lines.\n- Growth layer: enabled with user review required before applying candidates.\n","stderr":""},"evidence":null,"notes":null}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# 任务
|
|
2
|
+
|
|
3
|
+
- [x] T001.01 评审生成的 spec 覆盖
|
|
4
|
+
- type: governance
|
|
5
|
+
- done: 生成的 agent-requirements spec 符合 PRD 意图
|
|
6
|
+
- verify: openprd change . --validate --change adaptive-project-framing
|
|
7
|
+
- test-layer: manual
|
|
8
|
+
- test-size: manual
|
|
9
|
+
- test-scope: governance
|
|
10
|
+
- evidence-plan: openprd change . --validate --change adaptive-project-framing
|
|
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 adaptive-project-framing
|
|
17
|
+
- integration-owner: main-agent
|
|
18
|
+
|
|
19
|
+
- [x] T001.02 对齐 workspace currentState、clarify 与项目画像的共享契约边界
|
|
20
|
+
- type: implementation
|
|
21
|
+
- deps: T001.01
|
|
22
|
+
- done: workspace currentState、clarify 与项目画像依赖的共享契约边界已经对齐,后续能力可以直接接线。 涉及: 避免新增新的硬性必填 schema 字段,优先通过 intake 和 clarification 层完成增强。
|
|
23
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.02 --evidence-required
|
|
24
|
+
- test-layer: unit, integration
|
|
25
|
+
- test-size: medium
|
|
26
|
+
- test-scope: api-contract
|
|
27
|
+
- evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
|
|
28
|
+
- upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
|
|
29
|
+
- execution-mode: parallel-workers
|
|
30
|
+
- parallel-group: contracts
|
|
31
|
+
- write-scope: src/**, test/**, docs/basic/backend-structure.md
|
|
32
|
+
- owner-role: worker
|
|
33
|
+
- local-verify: openprd tasks . --change adaptive-project-framing --item T001.02 --evidence-required
|
|
34
|
+
- integration-owner: main-agent
|
|
35
|
+
|
|
36
|
+
- [x] T001.03 接通首轮澄清入口与 CLI 展示链路
|
|
37
|
+
- type: implementation
|
|
38
|
+
- deps: T001.02
|
|
39
|
+
- done: 用户第一次提需时可以从正确入口进入首轮项目画像与后续澄清链路,CLI 展示与状态收尾已经接通。 涉及: 依赖现有 requirement-intake gate、clarify/capture/synthesize/review/change/tasks。
|
|
40
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.03 --evidence-required
|
|
41
|
+
- test-layer: integration, e2e
|
|
42
|
+
- test-size: large
|
|
43
|
+
- test-scope: user-flow
|
|
44
|
+
- evidence-plan: 主流程自动化、截图或 visual-compare 证据 + 本任务 verify 命令
|
|
45
|
+
- upgrade-reason: 触达用户可见路径,需要端到端或视觉级证据
|
|
46
|
+
- execution-mode: parallel-workers
|
|
47
|
+
- parallel-group: surface
|
|
48
|
+
- write-scope: src/cli/**, src/**, test/**
|
|
49
|
+
- owner-role: worker
|
|
50
|
+
- local-verify: openprd tasks . --change adaptive-project-framing --item T001.03 --evidence-required
|
|
51
|
+
- integration-owner: main-agent
|
|
52
|
+
|
|
53
|
+
- [x] T001.04 实现clarify 生成的 intake-reflection 应包含首轮项目画像和风险探针
|
|
54
|
+
- type: implementation
|
|
55
|
+
- deps: T001.03
|
|
56
|
+
- done: 已完成:clarify 生成的 intake-reflection 应包含首轮项目画像和风险探针
|
|
57
|
+
- verify: openprd tasks . --change adaptive-project-framing --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: implementation
|
|
65
|
+
- write-scope: src/**, test/**
|
|
66
|
+
- owner-role: worker
|
|
67
|
+
- local-verify: openprd tasks . --change adaptive-project-framing --item T001.04 --evidence-required
|
|
68
|
+
- integration-owner: main-agent
|
|
69
|
+
|
|
70
|
+
- [x] T001.05 实现inline clarification 应显式展示适用对象、产品形态、第一版先做、先不做、不能破坏和技术落点
|
|
71
|
+
- type: implementation
|
|
72
|
+
- deps: T001.04
|
|
73
|
+
- done: 已完成:inline clarification 应显式展示适用对象、产品形态、第一版先做、先不做、不能破坏和技术落点
|
|
74
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.05 --evidence-required
|
|
75
|
+
- test-layer: unit, integration
|
|
76
|
+
- test-size: medium
|
|
77
|
+
- test-scope: cli-contract
|
|
78
|
+
- evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
|
|
79
|
+
- upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
|
|
80
|
+
- execution-mode: parallel-workers
|
|
81
|
+
- parallel-group: implementation
|
|
82
|
+
- write-scope: src/**, test/**
|
|
83
|
+
- owner-role: worker
|
|
84
|
+
- local-verify: openprd tasks . --change adaptive-project-framing --item T001.05 --evidence-required
|
|
85
|
+
- integration-owner: main-agent
|
|
86
|
+
|
|
87
|
+
- [x] T001.06 实现冷启动 kickoff 问题改成画像导向问题,而不是抽象的通用提问
|
|
88
|
+
- type: implementation
|
|
89
|
+
- deps: T001.05
|
|
90
|
+
- done: 已完成:冷启动 kickoff 问题改成画像导向问题,而不是抽象的通用提问
|
|
91
|
+
- verify: openprd tasks . --change adaptive-project-framing --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: implementation
|
|
99
|
+
- write-scope: src/**, test/**
|
|
100
|
+
- owner-role: worker
|
|
101
|
+
- local-verify: openprd tasks . --change adaptive-project-framing --item T001.06 --evidence-required
|
|
102
|
+
- integration-owner: main-agent
|
|
103
|
+
|
|
104
|
+
- [x] T001.07 实现类型专项 intake 模板改成更贴近产品与业务语言的提问方式
|
|
105
|
+
- type: implementation
|
|
106
|
+
- deps: T001.06
|
|
107
|
+
- done: 已完成:类型专项 intake 模板改成更贴近产品与业务语言的提问方式
|
|
108
|
+
- verify: openprd tasks . --change adaptive-project-framing --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: contracts
|
|
116
|
+
- write-scope: src/**, test/**, docs/basic/backend-structure.md
|
|
117
|
+
- owner-role: worker
|
|
118
|
+
- local-verify: openprd tasks . --change adaptive-project-framing --item T001.07 --evidence-required
|
|
119
|
+
- integration-owner: main-agent
|
|
120
|
+
|
|
121
|
+
- [x] T001.08 打通首次提需主流程:先输出项目画像,再进入澄清
|
|
122
|
+
- type: implementation
|
|
123
|
+
- deps: T001.07
|
|
124
|
+
- done: 主流程关键节点已经打通,用户可以按预期从入口走到结果收尾。涉及: 用户第一次提需求时,OpenPrd 先输出一页项目画像:用户群体、产品形态、第一版先做、先不做、不能破坏、技术落点和风险探针。
|
|
125
|
+
- verify: openprd tasks . --change adaptive-project-framing --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 adaptive-project-framing --item T001.08 --evidence-required
|
|
136
|
+
- integration-owner: main-agent
|
|
137
|
+
|
|
138
|
+
- [x] T001.09 验证workspace-workflow 能生成首轮项目画像、风险探针和更贴近用户语言的确认问题
|
|
139
|
+
- type: verification
|
|
140
|
+
- deps: T001.08
|
|
141
|
+
- done: 已验证:workspace-workflow 能生成首轮项目画像、风险探针和更贴近用户语言的确认问题
|
|
142
|
+
- verify: openprd tasks . --change adaptive-project-framing --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 adaptive-project-framing --item T001.09 --evidence-required
|
|
153
|
+
- integration-owner: main-agent
|
|
154
|
+
|
|
155
|
+
- [x] T001.10 验证workspace-core 的冷启动 kickoff 问题升级为画像导向问题
|
|
156
|
+
- type: verification
|
|
157
|
+
- deps: T001.09
|
|
158
|
+
- done: 已验证:workspace-core 的冷启动 kickoff 问题升级为画像导向问题
|
|
159
|
+
- verify: openprd tasks . --change adaptive-project-framing --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 adaptive-project-framing --item T001.10 --evidence-required
|
|
170
|
+
- integration-owner: main-agent
|
|
171
|
+
|
|
172
|
+
- [x] T001.11 验证intake 模板、skills、docs、CLI 文本输出和测试与新流程保持一致
|
|
173
|
+
- type: verification
|
|
174
|
+
- deps: T001.10
|
|
175
|
+
- done: 已验证:intake 模板、skills、docs、CLI 文本输出和测试与新流程保持一致
|
|
176
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.11 --evidence-required
|
|
177
|
+
- test-layer: manual
|
|
178
|
+
- test-size: manual
|
|
179
|
+
- test-scope: docs
|
|
180
|
+
- evidence-plan: openprd tasks . --change adaptive-project-framing --item T001.11 --evidence-required
|
|
181
|
+
- upgrade-reason: 文档任务以标准校验和人工审查证据为主
|
|
182
|
+
- execution-mode: parallel-workers
|
|
183
|
+
- parallel-group: docs
|
|
184
|
+
- write-scope: docs/basic/**, README*.md
|
|
185
|
+
- owner-role: worker
|
|
186
|
+
- local-verify: openprd tasks . --change adaptive-project-framing --item T001.11 --evidence-required
|
|
187
|
+
- integration-owner: main-agent
|
|
188
|
+
|
|
189
|
+
- [x] T001.12 回归非功能约束:默认澄清仍要保持对话内、轻量、可扫读 / 对已有 schema 和生成流程的侵入应尽量小
|
|
190
|
+
- type: verification
|
|
191
|
+
- deps: T001.11
|
|
192
|
+
- done: 非功能约束已经回归确认。涉及: 默认澄清仍要保持对话内、轻量、可扫读 / 对已有 schema 和生成流程的侵入应尽量小。
|
|
193
|
+
- verify: openprd tasks . --change adaptive-project-framing --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 adaptive-project-framing --item T001.12 --evidence-required
|
|
204
|
+
- integration-owner: main-agent
|
|
205
|
+
|
|
206
|
+
- [x] T001.13 回归非功能约束:输出语言优先面向产品和业务用户,而不是工程内部黑话
|
|
207
|
+
- type: verification
|
|
208
|
+
- deps: T001.12
|
|
209
|
+
- done: 非功能约束已经回归确认。涉及: 输出语言优先面向产品和业务用户,而不是工程内部黑话。
|
|
210
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.13 --evidence-required
|
|
211
|
+
- test-layer: unit, integration
|
|
212
|
+
- test-size: medium
|
|
213
|
+
- test-scope: cli-contract
|
|
214
|
+
- evidence-plan: 单元测试锁定规则 + 集成或命令行契约验证
|
|
215
|
+
- upgrade-reason: 触达 CLI/API/Agent 契约或生成物,需要中间层验证
|
|
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 adaptive-project-framing --item T001.13 --evidence-required
|
|
221
|
+
- integration-owner: main-agent
|
|
222
|
+
|
|
223
|
+
- [x] T001.14 回归边界与失败处理:fresh init 保持 greenfield,缺关键字段时稳定产出 intake-reflection
|
|
224
|
+
- type: verification
|
|
225
|
+
- deps: T001.13
|
|
226
|
+
- done: 边界与失败处理已经回归确认。涉及: bootstrap-only fresh init 不会误判成已有项目;工作区仍缺关键字段时,clarify 会稳定产出 intake-reflection 与首轮项目画像。
|
|
227
|
+
- verify: openprd tasks . --change adaptive-project-framing --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 adaptive-project-framing --item T001.14 --evidence-required
|
|
238
|
+
- integration-owner: main-agent
|
|
239
|
+
|
|
240
|
+
- [x] T001.15 验证 requirement gate 与无 gate 场景都能生成首轮项目画像
|
|
241
|
+
- type: verification
|
|
242
|
+
- deps: T001.14
|
|
243
|
+
- done: 已验证 active requirement gate 的 deep reflection 与无 gate 的冷启动 clarify 都会生成首轮项目画像与关键确认问题
|
|
244
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.15 --evidence-required
|
|
245
|
+
- test-layer: unit, integration
|
|
246
|
+
- test-size: medium
|
|
247
|
+
- test-scope: cli-contract
|
|
248
|
+
- evidence-plan: 单元测试锁定规则 + requirement gate / clarify 命令验证
|
|
249
|
+
- upgrade-reason: 触达 requirement gate 与 CLI 契约,需要单元与集成级证据
|
|
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 adaptive-project-framing --item T001.15 --evidence-required
|
|
255
|
+
- integration-owner: main-agent
|
|
256
|
+
|
|
257
|
+
- [x] T001.16 验证空目录与已有项目目录的场景判定不会串线
|
|
258
|
+
- type: verification
|
|
259
|
+
- deps: T001.15
|
|
260
|
+
- done: 已覆盖 bootstrap-only fresh init 仍为 greenfield、带业务文件目录为 existing-project 的场景判定回归
|
|
261
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.16 --evidence-required
|
|
262
|
+
- test-layer: integration
|
|
263
|
+
- test-size: medium
|
|
264
|
+
- test-scope: user-flow
|
|
265
|
+
- evidence-plan: 场景判定集成测试 + fresh temp workspace smoke
|
|
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 adaptive-project-framing --item T001.16 --evidence-required
|
|
272
|
+
- integration-owner: main-agent
|
|
273
|
+
|
|
274
|
+
- [x] T001.17 验证真实 CLI smoke:一句话需求会先输出项目画像与澄清
|
|
275
|
+
- type: verification
|
|
276
|
+
- deps: T001.16
|
|
277
|
+
- done: 已确认 fresh temp workspace 中输入一句模糊需求时,OpenPrd 会先进入 clarify,并返回项目画像与 intake-reflection,而不是直接跳过澄清
|
|
278
|
+
- verify: openprd tasks . --change adaptive-project-framing --item T001.17 --evidence-required
|
|
279
|
+
- test-layer: integration, manual
|
|
280
|
+
- test-size: medium
|
|
281
|
+
- test-scope: user-flow
|
|
282
|
+
- evidence-plan: fresh temp workspace CLI smoke + clarify JSON / 文本输出验证
|
|
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 adaptive-project-framing --item T001.17 --evidence-required
|
|
289
|
+
- integration-owner: main-agent
|
|
290
|
+
|
|
291
|
+
- [x] T001.18 维护 docs/basic 项目基础文档
|
|
292
|
+
- type: documentation
|
|
293
|
+
- deps: T001.17
|
|
294
|
+
- done: 已检查 docs/basic 是否缺失或因本次需求、流程、结构、依赖、产品行为变化而过期;若涉及后端、脚本、Agent 或工具链变更,已同步评估 CLI 与 API 接入面,并在 backend-structure.md 中记录事实或不适用原因;需要更新的基础文档已同步
|
|
295
|
+
- verify: openprd standards . --verify
|
|
296
|
+
- test-layer: manual
|
|
297
|
+
- test-size: manual
|
|
298
|
+
- test-scope: docs
|
|
299
|
+
- evidence-plan: openprd standards . --verify
|
|
300
|
+
- upgrade-reason: 文档任务以标准校验和人工审查证据为主
|
|
301
|
+
- execution-mode: parallel-workers
|
|
302
|
+
- parallel-group: docs
|
|
303
|
+
- write-scope: docs/basic/**, README*.md
|
|
304
|
+
- owner-role: worker
|
|
305
|
+
- local-verify: openprd standards . --verify
|
|
306
|
+
- integration-owner: main-agent
|
|
307
|
+
|
|
308
|
+
- [x] T001.19 更新文件说明书和文件夹 README
|
|
309
|
+
- type: documentation
|
|
310
|
+
- deps: T001.18
|
|
311
|
+
- done: 本次变更涉及的文件说明书和文件夹 README 已检查;缺失的已补齐,过期的已更新
|
|
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 运行 OpenPrd spec 校验
|
|
326
|
+
- type: governance
|
|
327
|
+
- deps: T001.19
|
|
328
|
+
- done: 生成的 change 通过 OpenPrd 校验
|
|
329
|
+
- verify: openprd change . --validate --change adaptive-project-framing
|
|
330
|
+
- test-layer: manual
|
|
331
|
+
- test-size: manual
|
|
332
|
+
- test-scope: governance
|
|
333
|
+
- evidence-plan: openprd change . --validate --change adaptive-project-framing
|
|
334
|
+
- upgrade-reason: 治理任务以结构校验、评审确认和变更状态证据为主
|
|
335
|
+
- execution-mode: serial
|
|
336
|
+
- parallel-group: governance
|
|
337
|
+
- write-scope: openprd/changes/**, .openprd/**
|
|
338
|
+
- owner-role: main-agent
|
|
339
|
+
- local-verify: openprd change . --validate --change adaptive-project-framing
|
|
340
|
+
- integration-owner: main-agent
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# 设计
|
|
2
|
+
|
|
3
|
+
## 背景
|
|
4
|
+
|
|
5
|
+
6-7 月 475 个 Codex 会话实测显示门禁执行率高但拦不住污染,写入型会话仅 37% 更新过 docs/basic;用户已明确要求按 OpenSpec delta+archive 与 Superpowers 可视评审最佳实践立项优化。
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
- 1) docs/basic 与 .openprd 不再随会话数复利膨胀:verify 能发现巨行与 stale,报告有 retention,change 收口默认归档;2) L1/L2 界面类需求评审时,imagegen 生成的 3 方向交互稿进入固定 review.html 评审区块,用户在评审界面选定方向并结构化写回 selected-direction。
|
|
10
|
+
|
|
11
|
+
## 范围
|
|
12
|
+
|
|
13
|
+
- A1 standards verify 增加 docs/basic 巨行与 stale 质量检查;A2 quality/reports 与 harness 证据 retention 清理;A3 docs-compact 压缩建议工具与 change 收口默认归档;B1 review-presentation 合同新增 designDirections 区块(3 方向图 + 审美主张 + 避开项 + 选择状态);B2 review.html 渲染 3 方向评审卡片并支持选定/驳回回写;同步更新 skills 生成源与 docs/basic 文档。
|
|
14
|
+
|
|
15
|
+
## 约束
|
|
16
|
+
|
|
17
|
+
- 改动集中在 src/standards.js、src/quality.js、src/openspec/change-lifecycle.js、src/review-presentation.js、src/html-artifacts.js,新增 src/docs-compact.js;skills 生成源同步 openprd-shared / openprd-frontend-design / command-catalog。
|
|
18
|
+
- 提交与状态写回不能泄露用户本地无关改动或敏感信息。
|
|
19
|
+
- Codex 原生 imagegen(生成 3 方向交互稿图片);现有 review artifact 渲染与 hash 校验管线。
|
|
20
|
+
|
|
21
|
+
## 业务护栏
|
|
22
|
+
|
|
23
|
+
- 成本来源: imagegen 每方向一次调用,共 3 次;报告清理为本地文件操作无外部成本。
|
|
24
|
+
- 额度限制: docs-compact 单次只处理 docs/basic 下的标准文档;retention 默认保留最近 30 份报告可配置。
|
|
25
|
+
- 滥用防护: docs-compact 重写稿默认写到 sibling draft 待确认,不直接覆盖原文档;retention 不触碰 evidence 目录中被 latest 报告引用的文件。
|
|
26
|
+
- 监控信号: standards verify 输出 docsQuality 结果;doctor 输出 .openprd 体积与报告数量提示。
|
|
27
|
+
- 报警阈值: 单行超 300 字符 warning;prd.md 落后最新版本超过 20 个版本 warning;quality/reports 超过 200 份提示清理。
|
|
28
|
+
- 止损动作: 任一清理动作失败即中止并保留原状;归档失败回退为仅提示不移动。
|
|
29
|
+
|
|
30
|
+
## 风险与开放问题
|
|
31
|
+
|
|
32
|
+
- 假设: imagegen 由 Codex 原生 Image 2 提供,OpenPrd 只消费图片路径;review.html 静态打开,选择结果通过现有 canvas/browser handoff 或 review --mark 通道回传;巨行阈值默认 300 字符可配置。
|
|
33
|
+
- 风险: 存量污染项目首次 verify 会出现大量报警,需要以 warning 分级而非 error 硬阻塞;retention 清理属于删除类动作,默认 dry-run 并只在 verify/doctor 提示,实际清理需要显式命令。
|
|
34
|
+
- 问题: designDirections 选择回写默认走 review artifact 手动确认还是 canvas handoff 自动回传(本期先支持 review --mark 附带 direction 参数,canvas 自动回传后续增强)。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 文档反污染治理与界面需求3方向交互稿评审
|
|
2
|
+
|
|
3
|
+
## 背景与原因
|
|
4
|
+
|
|
5
|
+
OpenPrd 长期项目出现文档污染:docs/basic 巨行追加膨胀且顶层 PRD 失真(moticlaw backend-structure.md 57KB/119行、prd.md 落后约170个需求版本),.openprd 内部产物无保留策略(quality/reports 5118 份 5.2GB、active 280 个版本目录从未归档);同时 L1/L2 界面类需求的 3 方向效果图只散落在聊天里,评审结果不可回溯、不进固定评审界面。
|
|
6
|
+
|
|
7
|
+
## 变更内容
|
|
8
|
+
|
|
9
|
+
- A1 standards verify 增加 docs/basic 巨行与 stale 质量检查;A2 quality/reports 与 harness 证据 retention 清理;A3 docs-compact 压缩建议工具与 change 收口默认归档;B1 review-presentation 合同新增 designDirections 区块(3 方向图 + 审美主张 + 避开项 + 选择状态);B2 review.html 渲染 3 方向评审卡片并支持选定/驳回回写;同步更新 skills 生成源与 docs/basic 文档。
|
|
10
|
+
- standards verify 新增 docsQuality 检查(巨行、平均行长、prd.md 版本落后);新增 openprd docs-compact 命令输出压缩重写建议稿;quality verify 后按 retention 策略清理旧报告(保留 latest + 最近 N);change --archive 在收口路径默认执行;review-presentation --template 输出含 designDirections 的模板;review.html 渲染 3 方向卡片区块。
|
|
11
|
+
- 在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据。
|
|
12
|
+
|
|
13
|
+
## 能力范围
|
|
14
|
+
|
|
15
|
+
- `agent-requirements`: 文档反污染治理与界面需求3方向交互稿评审 需求。
|
|
16
|
+
|
|
17
|
+
## 影响范围
|
|
18
|
+
|
|
19
|
+
- 主要用户: 使用 OpenPrd 管理项目的产品经理和 Agent(Codex / Claude Code / Cursor),尤其是长生命周期重度项目的维护者。
|
|
20
|
+
- 成本来源: imagegen 每方向一次调用,共 3 次;报告清理为本地文件操作无外部成本。
|
|
21
|
+
- 额度限制: docs-compact 单次只处理 docs/basic 下的标准文档;retention 默认保留最近 30 份报告可配置。
|
|
22
|
+
- 依赖: Codex 原生 imagegen(生成 3 方向交互稿图片);现有 review artifact 渲染与 hash 校验管线。
|
|
23
|
+
- 风险: 存量污染项目首次 verify 会出现大量报警,需要以 warning 分级而非 error 硬阻塞;retention 清理属于删除类动作,默认 dry-run 并只在 verify/doctor 提示,实际清理需要显式命令。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
## 新增需求
|
|
2
|
+
|
|
3
|
+
### 需求:文档反污染治理与界面需求3方向交互稿评审
|
|
4
|
+
OpenPrd 长期项目出现文档污染:docs/basic 巨行追加膨胀且顶层 PRD 失真(moticlaw backend-structure.md 57KB/119行、prd.md 落后约170个需求版本),.openprd 内部产物无保留策略(quality/reports 5118 份 5.2GB、active 280 个版本目录从未归档);同时 L1/L2 界面类需求的 3 方向效果图只散落在聊天里,评审结果不可回溯、不进固定评审界面。
|
|
5
|
+
|
|
6
|
+
#### 场景:主流程成功
|
|
7
|
+
- **当** 文档治理流:Agent 改代码 -> dev-check/standards verify 报巨行与 stale -> docs-compact 给出压缩重写建议 -> change 收口自动归档 active 版本目录并按 retention 清理报告。设计评审流:L2 界面需求 -> design brief -> imagegen 3 方向交互稿 -> 登记 designDirections -> review-presentation 校验写入 -> review.html 展示 3 方向卡片 -> 用户选定 -> user-confirmed 写回 selected-direction.md -> 实现阶段 visual-compare 用选定方向做 reference。
|
|
8
|
+
- **则** 在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据。
|
|
9
|
+
|
|
10
|
+
#### 场景:边界情况保持可见
|
|
11
|
+
- **当** 非界面类 L2 需求不触发 designDirections 且 review 校验不因缺失阻塞;imagegen 不可用或限流时评审可先出文字方向卡占位并明确标注待补图;旧版本快照没有 designDirections 字段时渲染保持向后兼容;docs/basic 文件本来就短小的年轻项目不误报膨胀。
|
|
12
|
+
- **则** 产品应保持该情况明确可见,以支持实现和验证
|
|
13
|
+
|
|
14
|
+
#### 场景:失败模式得到处理
|
|
15
|
+
- **当** retention 误删 latest 指针或在途报告导致 quality verify 失败;归档把进行中的 change 移走导致状态断裂;巨行检查阈值过严导致老项目 verify 永远红灯阻塞正常工作;review.html 选择回写通道失败导致方向确认丢失。
|
|
16
|
+
- **则** 产品应提供有边界且可评审的结果
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{"version":1,"at":"2026-07-03 15:44:55","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.01","taskTitle":"评审生成的 spec 覆盖","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
2
|
+
{"version":1,"at":"2026-07-03 15:44:55","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.02","taskTitle":"接通界面入口、导航与页面挂载","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
3
|
+
{"version":1,"at":"2026-07-03 15:44:55","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.03","taskTitle":"补齐日志、诊断与可观测性信号","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
4
|
+
{"version":1,"at":"2026-07-03 15:44:55","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.04","taskTitle":"实现standards verify 新增 docsQuality 检查(巨行、平均行长、prd.md 版本落后);新增 openprd docs-compact 命令输出压缩重写建议稿;quality verify 后按 retention 策略清理旧报告(保留 latest + 最近 N);change --archive 在收口路径默认执行;review-presentation --template 输出含 designDirections 的模板;review.html 渲染 3 方向卡片区块","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
5
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.05","taskTitle":"打通主流程闭环:文档治理流:Agent 改代码 -> dev-check/standards verify 报巨行与 stale","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
6
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.06","taskTitle":"验证在 openprd 自身仓库通过单元测试与 standards/quality/run verify;用 Codex CLI 在本地跑一个桌面任务实测新流程效果并留下证据","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
7
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.07","taskTitle":"回归非功能约束:所有新检查默认 warning 级不阻塞存量项目,可通过 config 升级为 error;retention","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
8
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.08","taskTitle":"回归边界条件与失败处理:边界情况:非界面类 L2 需求不触发 designDirections 且 review 校验不因缺失阻塞;im 等 2 项","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
9
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.09","taskTitle":"验证成本与额度护栏","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
10
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.10","taskTitle":"验证滥用与越权路径","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
11
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.11","taskTitle":"验证成本监控、报警和止损","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
12
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.12","taskTitle":"维护 docs/basic 项目基础文档","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
13
|
+
{"version":1,"at":"2026-07-03 15:44:56","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.13","taskTitle":"更新文件说明书和文件夹 README","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|
|
14
|
+
{"version":1,"at":"2026-07-03 15:44:57","changeId":"docs-anti-pollution-and-design-direction-review","action":"advance","taskId":"T001.14","taskTitle":"运行 OpenPrd spec 校验","ok":true,"verify":null,"evidence":".openprd/harness/test-reports/docs-anti-pollution-and-design-direction-review-tasks.md","notes":"实现与验证详见任务级测试报告;npm test 236 pass,standards/quality verify 通过"}
|