@openprd/cli 0.1.0 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.openprd/README.md +43 -69
- package/.openprd/README_EN.md +84 -0
- package/.openprd/benchmarks/index.md +7 -0
- package/.openprd/benchmarks/sources.yaml +25 -3
- package/.openprd/discovery/config.json +16 -2
- package/.openprd/engagements/active/flows.md +19 -14
- package/.openprd/engagements/active/handoff.md +11 -4
- package/.openprd/engagements/active/prd.md +99 -71
- package/.openprd/engagements/active/review.html +4 -4
- package/.openprd/engagements/active/roles.md +9 -8
- package/.openprd/engagements/work-units/wu-20260524015648-6d33ded7.json +4 -4
- package/.openprd/engagements/work-units/wu-20260602113956-a99b5b88.json +18 -0
- package/.openprd/engagements/work-units/wu-20260602122244-78656aaf.json +18 -0
- package/.openprd/engagements/work-units/wu-20260602122442-e96489e2.json +18 -0
- package/.openprd/engagements/work-units/wu-20260602132835-695429e8.json +18 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/candidate.json +78 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/diagnostic-report.json +129 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/root-cause-candidates.json +41 -0
- package/.openprd/knowledge/candidates/candidate-turn-1780116203372-5f266a79e968c758/timeline.json +14 -0
- package/.openprd/knowledge/drafts/openprd-experience-diagnostic-candidate-turn-1780116203372-5f266a79e968c758/SKILL.md +49 -0
- package/.openprd/knowledge/index.json +44 -4
- package/.openprd/reviews/v0001.html +195 -129
- package/.openprd/reviews/v0002.html +1150 -0
- package/.openprd/reviews/v0003.html +1150 -0
- package/.openprd/reviews/v0004.html +1150 -0
- package/.openprd/reviews/v0005.html +1150 -0
- package/.openprd/standards/config.json +12 -9
- package/.openprd/state/changes.json +17 -2
- package/.openprd/state/current.json +399 -63
- package/.openprd/state/release-ledger.json +344 -0
- package/.openprd/state/version-index.json +52 -0
- package/.openprd/state/versions/v0002.json +264 -0
- package/.openprd/state/versions/v0002.md +183 -0
- package/.openprd/state/versions/v0003.json +269 -0
- package/.openprd/state/versions/v0003.md +188 -0
- package/.openprd/state/versions/v0004.json +274 -0
- package/.openprd/state/versions/v0004.md +193 -0
- package/.openprd/state/versions/v0005.json +299 -0
- package/.openprd/state/versions/v0005.md +189 -0
- package/.openprd/templates/agent/intake.md +5 -4
- package/.openprd/templates/b2b/intake.md +5 -4
- package/.openprd/templates/base/intake.md +10 -4
- package/.openprd/templates/company/README.md +9 -7
- package/.openprd/templates/company/README_EN.md +12 -0
- package/.openprd/templates/consumer/intake.md +5 -4
- package/.openprd/templates/industry/README.md +12 -10
- package/.openprd/templates/industry/README_EN.md +18 -0
- package/.openprd/templates/project/README.md +11 -9
- package/.openprd/templates/project/README_EN.md +16 -0
- package/.openprd/templates/session/README.md +11 -9
- package/.openprd/templates/session/README_EN.md +16 -0
- package/AGENTS.md +12 -8
- package/README.md +402 -441
- package/README_CN.md +4 -578
- package/README_EN.md +850 -0
- package/docs/assets/openprd-requirement-routing-en.png +0 -0
- package/docs/assets/openprd-requirement-routing-en.svg +102 -0
- package/docs/assets/openprd-requirement-routing-zh-refined.png +0 -0
- package/docs/assets/openprd-requirement-routing-zh.png +0 -0
- package/docs/assets/openprd-requirement-routing-zh.svg +102 -0
- package/package.json +6 -2
- package/scripts/dev-check-wrapup-copy.mjs +110 -0
- package/scripts/openprd-github-release-notes.mjs +99 -0
- package/scripts/quality-perf-check.mjs +203 -0
- package/skills/openprd-benchmark-router/SKILL.md +1 -0
- package/skills/openprd-benchmark-router/references/benchmark-sources.md +1 -0
- package/skills/openprd-benchmark-router/references/source-policy.md +2 -0
- package/skills/openprd-discovery-loop/SKILL.md +2 -2
- package/skills/openprd-harness/SKILL.md +46 -24
- package/skills/openprd-harness/references/workflow-gates.md +15 -0
- package/skills/openprd-quality/SKILL.md +10 -4
- package/skills/openprd-requirement-intake/SKILL.md +39 -23
- package/skills/openprd-requirement-intake/references/prd-template-lenses.md +6 -6
- package/skills/openprd-requirement-intake/references/routing-rubric.md +22 -8
- package/skills/openprd-router/SKILL.md +2 -2
- package/skills/openprd-shared/SKILL.md +51 -23
- package/skills/openprd-standards/SKILL.md +2 -1
- package/src/agent-integration.js +265 -65
- package/src/benchmark/constants.js +107 -0
- package/src/benchmark/operations.js +235 -0
- package/src/benchmark/registry.js +64 -0
- package/src/benchmark/render.js +115 -0
- package/src/benchmark/source.js +617 -0
- package/src/benchmark/storage.js +121 -0
- package/src/benchmark/verify.js +235 -0
- package/src/benchmark.js +50 -851
- package/src/change-summary.js +339 -0
- package/src/cli/args.js +67 -6
- package/src/cli/basic-print.js +365 -0
- package/src/cli/benchmark-print.js +91 -0
- package/src/cli/change-print.js +221 -0
- package/src/cli/doctor-print.js +268 -0
- package/src/cli/growth-print.js +176 -0
- package/src/cli/print.js +73 -1384
- package/src/cli/quality-print.js +284 -0
- package/src/cli/run-print.js +297 -0
- package/src/cli/shared-print.js +127 -0
- package/src/cli/workflow-print.js +195 -0
- package/src/codex-hook-runner-template.mjs +639 -117
- package/src/codex-runtime.js +324 -0
- package/src/dev-standards.js +178 -5
- package/src/diagram-core.js +5 -5
- package/src/discovery.js +2 -1
- package/src/execution-strategy.js +369 -0
- package/src/fleet.js +4 -0
- package/src/github-release.js +156 -0
- package/src/growth.js +311 -13
- package/src/html-artifact-utils.js +25 -0
- package/src/html-artifacts.js +157 -1596
- package/src/knowledge.js +1176 -75
- package/src/language-policy.js +2 -112
- package/src/learning-html-artifact.js +1031 -0
- package/src/learning-review.js +3 -2
- package/src/loop.js +280 -9
- package/src/openprd.js +341 -38
- package/src/openspec/change-validate.js +0 -9
- package/src/openspec/execute.js +79 -3
- package/src/openspec/generate.js +33 -20
- package/src/openspec/tasks.js +33 -2
- package/src/prd-core.js +10 -9
- package/src/product-type-copy.js +69 -0
- package/src/quality-html-artifact.js +108 -9
- package/src/quality-learning.js +30 -0
- package/src/quality-visual-review.js +237 -0
- package/src/quality.js +329 -43
- package/src/registry-hygiene.js +54 -0
- package/src/release-ledger.js +413 -0
- package/src/review-presentation.js +12 -6
- package/src/run-harness.js +722 -48
- package/src/self-update.js +1 -1
- package/src/session-binding.js +40 -3
- package/src/session-registry.js +159 -0
- package/src/standards.js +5 -3
- package/src/test-strategy.js +386 -0
- package/src/visual-compare.js +915 -34
- package/src/work-unit-migration.js +5 -1
- package/src/workspace-core.js +343 -19
- package/src/workspace-workflow.js +538 -134
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
.review-topbar {
|
|
38
38
|
display: flex;
|
|
39
39
|
align-items: center;
|
|
40
|
-
justify-content:
|
|
40
|
+
justify-content: space-between;
|
|
41
|
+
flex-wrap: wrap;
|
|
41
42
|
gap: 16px;
|
|
42
43
|
margin-bottom: 16px;
|
|
43
44
|
}
|
|
@@ -54,6 +55,35 @@
|
|
|
54
55
|
font-weight: 700;
|
|
55
56
|
letter-spacing: 0;
|
|
56
57
|
}
|
|
58
|
+
.review-project-version {
|
|
59
|
+
display: grid;
|
|
60
|
+
gap: 4px;
|
|
61
|
+
min-width: 220px;
|
|
62
|
+
margin-left: auto;
|
|
63
|
+
padding: 12px 16px;
|
|
64
|
+
border: 1px solid #bfdbfe;
|
|
65
|
+
border-radius: 16px;
|
|
66
|
+
background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
|
|
67
|
+
box-shadow: 0 12px 24px rgba(37, 99, 235, 0.08);
|
|
68
|
+
}
|
|
69
|
+
.review-project-version-label {
|
|
70
|
+
color: var(--review-blue);
|
|
71
|
+
font-size: 12px;
|
|
72
|
+
font-weight: 800;
|
|
73
|
+
letter-spacing: 0;
|
|
74
|
+
}
|
|
75
|
+
.review-project-version-value {
|
|
76
|
+
color: var(--review-text);
|
|
77
|
+
font-family: var(--review-mono);
|
|
78
|
+
font-size: 22px;
|
|
79
|
+
line-height: 1.1;
|
|
80
|
+
}
|
|
81
|
+
.review-project-version-meta {
|
|
82
|
+
color: var(--review-muted);
|
|
83
|
+
font-size: 12px;
|
|
84
|
+
font-weight: 700;
|
|
85
|
+
letter-spacing: 0;
|
|
86
|
+
}
|
|
57
87
|
.review-kicker {
|
|
58
88
|
margin: 0 0 6px;
|
|
59
89
|
color: var(--review-muted);
|
|
@@ -433,6 +463,11 @@
|
|
|
433
463
|
@media (max-width: 620px) {
|
|
434
464
|
.review-page { padding: 18px 12px 128px; }
|
|
435
465
|
.review-topbar { align-items: flex-start; flex-direction: column; }
|
|
466
|
+
.review-project-version {
|
|
467
|
+
min-width: 0;
|
|
468
|
+
width: 100%;
|
|
469
|
+
margin-left: 0;
|
|
470
|
+
}
|
|
436
471
|
.review-overview { padding: 18px; }
|
|
437
472
|
.review-overview h1 {
|
|
438
473
|
font-size: 26px;
|
|
@@ -460,6 +495,13 @@
|
|
|
460
495
|
<main class="review-page">
|
|
461
496
|
<header class="review-topbar">
|
|
462
497
|
<div class="review-brand">OpenPrd / 评审面板</div>
|
|
498
|
+
|
|
499
|
+
<div class="review-project-version" aria-label="项目版本">
|
|
500
|
+
<span class="review-project-version-label">项目版本</span>
|
|
501
|
+
<strong class="review-project-version-value">0.1.2</strong>
|
|
502
|
+
<span class="review-project-version-meta">当前版本 · 6 条变化</span>
|
|
503
|
+
</div>
|
|
504
|
+
|
|
463
505
|
</header>
|
|
464
506
|
|
|
465
507
|
<section class="review-overview" aria-labelledby="reviewOverviewTitle">
|
|
@@ -544,7 +586,7 @@
|
|
|
544
586
|
</div>
|
|
545
587
|
</header>
|
|
546
588
|
<div class="review-chip-row" aria-label="主流程与边界情况重点摘要">
|
|
547
|
-
<span class="review-chip"
|
|
589
|
+
<span class="review-chip">优化维护者运行 openprd</span><span class="review-chip">优化仍然混入 run cont</span><span class="review-chip">优化继续被 research</span><span class="review-chip">调整后历史项目仍保留旧的 ve</span>
|
|
548
590
|
</div>
|
|
549
591
|
|
|
550
592
|
<div class="review-journey-map" aria-label="主流程小图">
|
|
@@ -597,7 +639,7 @@
|
|
|
597
639
|
</svg>
|
|
598
640
|
</div>
|
|
599
641
|
|
|
600
|
-
<ul class="review-panel-list"><li><strong class="review-detail-summary"
|
|
642
|
+
<ul class="review-panel-list"><li><strong class="review-detail-summary">优化维护者运行 openprd</strong><span class="review-detail-body">:维护者运行 openprd run . --context 或 openprd run . --verify 时,只看到当前项目主验证状态;仓库中存在 research、toolkit-sources、marketplace-candidates 等参考目录时,默认不会被当成本项目源码说明书缺口直接淹没结果;维护者可以继续按需显式 classify-external</span></li><li><strong class="review-detail-summary">优化仍然混入 run cont</strong><span class="review-detail-body">:reference discovery 仍然混入 run context 或 run verify</span></li><li><strong class="review-detail-summary">优化继续被 research</strong><span class="review-detail-body">:standards verify 继续被 research 或 toolkit-sources 之类参考目录的说明书缺口淹没</span></li><li><strong class="review-detail-summary">调整后历史项目仍保留旧的 ve</strong><span class="review-detail-body">:fleet 更新后历史项目仍保留旧的 verify 噪音行为</span></li></ul>
|
|
601
643
|
</section>
|
|
602
644
|
|
|
603
645
|
|
|
@@ -642,10 +684,10 @@
|
|
|
642
684
|
</div>
|
|
643
685
|
</header>
|
|
644
686
|
<div class="review-chip-row" aria-label="开放问题与风险重点摘要">
|
|
645
|
-
<span class="review-chip"
|
|
687
|
+
<span class="review-chip">调整只收敛默认边界</span>
|
|
646
688
|
</div>
|
|
647
689
|
|
|
648
|
-
<ul class="review-panel-list"><li><strong class="review-detail-summary"
|
|
690
|
+
<ul class="review-panel-list"><li><strong class="review-detail-summary">调整只收敛默认边界</strong><span class="review-detail-body">:本次只收敛默认边界,不自动猜测每个历史项目全部 external reference 清单;如果某些项目还需要更细的目录级归类,仍由维护者显式确认和补充</span></li></ul>
|
|
649
691
|
</section>
|
|
650
692
|
|
|
651
693
|
</section>
|
|
@@ -673,6 +715,34 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
673
715
|
"确认主流程与失败路径",
|
|
674
716
|
"确认关键风险与开放问题"
|
|
675
717
|
],
|
|
718
|
+
"summaryStyle": {
|
|
719
|
+
"perspective": "从用户可感知变化出发,优先写用户现在能做什么、会看到什么、哪个问题被修好。",
|
|
720
|
+
"preferredVerbs": [
|
|
721
|
+
"新增",
|
|
722
|
+
"修复",
|
|
723
|
+
"优化",
|
|
724
|
+
"调整",
|
|
725
|
+
"移除"
|
|
726
|
+
],
|
|
727
|
+
"panelExamples": {
|
|
728
|
+
"flow": {
|
|
729
|
+
"summary": "新增入口",
|
|
730
|
+
"detail": "用户现在可以直接进入对应流程,不用再自己找路径。"
|
|
731
|
+
},
|
|
732
|
+
"function": {
|
|
733
|
+
"summary": "优化说明",
|
|
734
|
+
"detail": "用户先看到新增、修复、优化这类短摘要,再决定是否继续细读。"
|
|
735
|
+
},
|
|
736
|
+
"guardrail": {
|
|
737
|
+
"summary": "调整边界",
|
|
738
|
+
"detail": "只保留用户需要知道的限制、影响和下一步。"
|
|
739
|
+
},
|
|
740
|
+
"risk": {
|
|
741
|
+
"summary": "修复误判",
|
|
742
|
+
"detail": "避免把实现授权写成再次索取确认。"
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
},
|
|
676
746
|
"sectionKeys": [
|
|
677
747
|
"meta",
|
|
678
748
|
"problem",
|
|
@@ -689,6 +759,34 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
689
759
|
],
|
|
690
760
|
"presentationContract": {
|
|
691
761
|
"intent": "这些限制用于反馈给 Agent 重新概括,不由 HTML 模板截断原文。",
|
|
762
|
+
"summaryStyle": {
|
|
763
|
+
"perspective": "从用户可感知变化出发,优先写用户现在能做什么、会看到什么、哪个问题被修好。",
|
|
764
|
+
"preferredVerbs": [
|
|
765
|
+
"新增",
|
|
766
|
+
"修复",
|
|
767
|
+
"优化",
|
|
768
|
+
"调整",
|
|
769
|
+
"移除"
|
|
770
|
+
],
|
|
771
|
+
"panelExamples": {
|
|
772
|
+
"flow": {
|
|
773
|
+
"summary": "新增入口",
|
|
774
|
+
"detail": "用户现在可以直接进入对应流程,不用再自己找路径。"
|
|
775
|
+
},
|
|
776
|
+
"function": {
|
|
777
|
+
"summary": "优化说明",
|
|
778
|
+
"detail": "用户先看到新增、修复、优化这类短摘要,再决定是否继续细读。"
|
|
779
|
+
},
|
|
780
|
+
"guardrail": {
|
|
781
|
+
"summary": "调整边界",
|
|
782
|
+
"detail": "只保留用户需要知道的限制、影响和下一步。"
|
|
783
|
+
},
|
|
784
|
+
"risk": {
|
|
785
|
+
"summary": "修复误判",
|
|
786
|
+
"detail": "避免把实现授权写成再次索取确认。"
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
},
|
|
692
790
|
"expectedDataShape": {
|
|
693
791
|
"reviewPresentation": {
|
|
694
792
|
"diagram": {
|
|
@@ -744,26 +842,26 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
744
842
|
"panels": {
|
|
745
843
|
"flow": [
|
|
746
844
|
{
|
|
747
|
-
"summary": "
|
|
748
|
-
"detail": "
|
|
845
|
+
"summary": "新增入口",
|
|
846
|
+
"detail": "用户现在可以直接进入对应流程,不用再自己找路径。"
|
|
749
847
|
}
|
|
750
848
|
],
|
|
751
849
|
"function": [
|
|
752
850
|
{
|
|
753
|
-
"summary": "
|
|
754
|
-
"detail": "
|
|
851
|
+
"summary": "优化说明",
|
|
852
|
+
"detail": "用户先看到新增、修复、优化这类短摘要,再决定是否继续细读。"
|
|
755
853
|
}
|
|
756
854
|
],
|
|
757
855
|
"guardrail": [
|
|
758
856
|
{
|
|
759
|
-
"summary": "
|
|
760
|
-
"detail": "
|
|
857
|
+
"summary": "调整边界",
|
|
858
|
+
"detail": "只保留用户需要知道的限制、影响和下一步。"
|
|
761
859
|
}
|
|
762
860
|
],
|
|
763
861
|
"risk": [
|
|
764
862
|
{
|
|
765
|
-
"summary": "
|
|
766
|
-
"detail": "
|
|
863
|
+
"summary": "修复误判",
|
|
864
|
+
"detail": "避免把实现授权写成再次索取确认。"
|
|
767
865
|
}
|
|
768
866
|
]
|
|
769
867
|
}
|
|
@@ -789,14 +887,14 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
789
887
|
"area": "四个评审卡片",
|
|
790
888
|
"target": "重点摘要胶囊",
|
|
791
889
|
"maxChars": 15,
|
|
792
|
-
"action": "
|
|
890
|
+
"action": "请重写成短标签,优先使用 新增 / 修复 / 优化 / 调整 / 移除 这类用户能一眼看懂的动作词,再补必要对象。"
|
|
793
891
|
},
|
|
794
892
|
{
|
|
795
893
|
"id": "review-panel-detail-format",
|
|
796
894
|
"area": "四个评审卡片",
|
|
797
895
|
"target": "明细分点",
|
|
798
896
|
"format": "- **摘要内容**:明细一句话",
|
|
799
|
-
"action": "请写入 reviewPresentation.panels.<kind>[],把每个明细改写为“加粗短摘要 +
|
|
897
|
+
"action": "请写入 reviewPresentation.panels.<kind>[],把每个明细改写为“加粗短摘要 + 一句话说明”,短摘要优先使用 新增 / 修复 / 优化 / 调整 / 移除。"
|
|
800
898
|
}
|
|
801
899
|
]
|
|
802
900
|
},
|
|
@@ -848,43 +946,7 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
848
946
|
"jsonPath": "reviewPresentation.panels.flow[0]",
|
|
849
947
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
850
948
|
"currentText": "维护者运行 openprd run . --context 或 openprd run . --verify 时,只看到当前项目主验证状态;仓库中存在 research、toolkit-sources、marketplace-candidates 等参考目录时,默认不会被当成本项目源码说明书缺口直接淹没结果;维护者可以继续按需显式 classify-external。",
|
|
851
|
-
"action": "请写入 reviewPresentation.panels.flow[0]
|
|
852
|
-
},
|
|
853
|
-
{
|
|
854
|
-
"ruleId": "review-panel-detail-format",
|
|
855
|
-
"area": "主流程与边界情况",
|
|
856
|
-
"target": "明细 2",
|
|
857
|
-
"jsonPath": "reviewPresentation.panels.flow[1]",
|
|
858
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
859
|
-
"currentText": "reference discovery 仍然混入 run context 或 run verify",
|
|
860
|
-
"action": "请写入 reviewPresentation.panels.flow[1],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
861
|
-
},
|
|
862
|
-
{
|
|
863
|
-
"ruleId": "review-panel-detail-format",
|
|
864
|
-
"area": "主流程与边界情况",
|
|
865
|
-
"target": "明细 3",
|
|
866
|
-
"jsonPath": "reviewPresentation.panels.flow[2]",
|
|
867
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
868
|
-
"currentText": "standards verify 继续被 research 或 toolkit-sources 之类参考目录的说明书缺口淹没",
|
|
869
|
-
"action": "请写入 reviewPresentation.panels.flow[2],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
870
|
-
},
|
|
871
|
-
{
|
|
872
|
-
"ruleId": "review-panel-detail-format",
|
|
873
|
-
"area": "主流程与边界情况",
|
|
874
|
-
"target": "明细 4",
|
|
875
|
-
"jsonPath": "reviewPresentation.panels.flow[3]",
|
|
876
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
877
|
-
"currentText": "fleet 更新后历史项目仍保留旧的 verify 噪音行为",
|
|
878
|
-
"action": "请写入 reviewPresentation.panels.flow[3],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
879
|
-
},
|
|
880
|
-
{
|
|
881
|
-
"ruleId": "review-panel-detail-format",
|
|
882
|
-
"area": "主流程与边界情况",
|
|
883
|
-
"target": "明细 1",
|
|
884
|
-
"jsonPath": "reviewPresentation.panels.flow[0]",
|
|
885
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
886
|
-
"currentText": "维护者运行 openprd run . --context 或 openprd run . --verify 时,只看到当前项目主验证状态;仓库中存在 research、toolkit-sources、marketplace-candidates 等参考目录时,默认不会被当成本项目源码说明书缺口直接淹没结果;维护者可以继续按需显式 classify-external。",
|
|
887
|
-
"action": "请写入 reviewPresentation.panels.flow[0],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
949
|
+
"action": "请写入 reviewPresentation.panels.flow[0],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
888
950
|
},
|
|
889
951
|
{
|
|
890
952
|
"ruleId": "review-panel-detail-format",
|
|
@@ -893,7 +955,7 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
893
955
|
"jsonPath": "reviewPresentation.panels.flow[1]",
|
|
894
956
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
895
957
|
"currentText": "reference discovery 仍然混入 run context 或 run verify",
|
|
896
|
-
"action": "请写入 reviewPresentation.panels.flow[1]
|
|
958
|
+
"action": "请写入 reviewPresentation.panels.flow[1],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
897
959
|
},
|
|
898
960
|
{
|
|
899
961
|
"ruleId": "review-panel-detail-format",
|
|
@@ -902,7 +964,7 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
902
964
|
"jsonPath": "reviewPresentation.panels.flow[2]",
|
|
903
965
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
904
966
|
"currentText": "standards verify 继续被 research 或 toolkit-sources 之类参考目录的说明书缺口淹没",
|
|
905
|
-
"action": "请写入 reviewPresentation.panels.flow[2]
|
|
967
|
+
"action": "请写入 reviewPresentation.panels.flow[2],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
906
968
|
},
|
|
907
969
|
{
|
|
908
970
|
"ruleId": "review-panel-detail-format",
|
|
@@ -911,7 +973,7 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
911
973
|
"jsonPath": "reviewPresentation.panels.flow[3]",
|
|
912
974
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
913
975
|
"currentText": "fleet 更新后历史项目仍保留旧的 verify 噪音行为",
|
|
914
|
-
"action": "请写入 reviewPresentation.panels.flow[3]
|
|
976
|
+
"action": "请写入 reviewPresentation.panels.flow[3],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
915
977
|
},
|
|
916
978
|
{
|
|
917
979
|
"ruleId": "review-panel-detail-format",
|
|
@@ -920,23 +982,16 @@ openprd review . --mark needs-revision --version 'v0001' --digest 'd
|
|
|
920
982
|
"jsonPath": "reviewPresentation.panels.risk[0]",
|
|
921
983
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
922
984
|
"currentText": "本次只收敛默认边界,不自动猜测每个历史项目全部 external reference 清单;如果某些项目还需要更细的目录级归类,仍由维护者显式确认和补充",
|
|
923
|
-
"action": "请写入 reviewPresentation.panels.risk[0]
|
|
924
|
-
},
|
|
925
|
-
{
|
|
926
|
-
"ruleId": "review-panel-detail-format",
|
|
927
|
-
"area": "开放问题与风险",
|
|
928
|
-
"target": "明细 1",
|
|
929
|
-
"jsonPath": "reviewPresentation.panels.risk[0]",
|
|
930
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
931
|
-
"currentText": "本次只收敛默认边界,不自动猜测每个历史项目全部 external reference 清单;如果某些项目还需要更细的目录级归类,仍由维护者显式确认和补充",
|
|
932
|
-
"action": "请写入 reviewPresentation.panels.risk[0],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
985
|
+
"action": "请写入 reviewPresentation.panels.risk[0],格式例如 { \"summary\": \"修复误判\", \"detail\": \"避免把实现授权写成再次索取确认。\" }。"
|
|
933
986
|
}
|
|
934
987
|
],
|
|
935
|
-
"exportedAt": "2026-
|
|
988
|
+
"exportedAt": "2026-06-05T00:44:22.419Z"
|
|
936
989
|
}" title="openprd review . --mark needs-revision --version 'v0001' --digest 'dc988d7a94c07d2a8070968a71ddacffb374eaeee12aa85eb93231e06dd7b077' --work-unit 'wu-20260524015648-6d33ded7' --notes '说明需要调整的点'">
|
|
937
990
|
需要调整
|
|
938
991
|
</button>
|
|
939
|
-
<button type="button" class="review-bottom-action confirm" data-copy-value="OpenPrD Review:
|
|
992
|
+
<button type="button" class="review-bottom-action confirm" data-copy-value="OpenPrD Review: 认可并继续下一步
|
|
993
|
+
|
|
994
|
+
当前稳定评审稿 v0001已确认。请先记录这版稳定评审稿,并继续当前 OpenPrd 下一步。若 review 后 tasks 已就绪但还需要执行授权,请直接展示执行确认清单,不要再泛泛确认。
|
|
940
995
|
|
|
941
996
|
命令:
|
|
942
997
|
|
|
@@ -957,6 +1012,34 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
957
1012
|
"确认主流程与失败路径",
|
|
958
1013
|
"确认关键风险与开放问题"
|
|
959
1014
|
],
|
|
1015
|
+
"summaryStyle": {
|
|
1016
|
+
"perspective": "从用户可感知变化出发,优先写用户现在能做什么、会看到什么、哪个问题被修好。",
|
|
1017
|
+
"preferredVerbs": [
|
|
1018
|
+
"新增",
|
|
1019
|
+
"修复",
|
|
1020
|
+
"优化",
|
|
1021
|
+
"调整",
|
|
1022
|
+
"移除"
|
|
1023
|
+
],
|
|
1024
|
+
"panelExamples": {
|
|
1025
|
+
"flow": {
|
|
1026
|
+
"summary": "新增入口",
|
|
1027
|
+
"detail": "用户现在可以直接进入对应流程,不用再自己找路径。"
|
|
1028
|
+
},
|
|
1029
|
+
"function": {
|
|
1030
|
+
"summary": "优化说明",
|
|
1031
|
+
"detail": "用户先看到新增、修复、优化这类短摘要,再决定是否继续细读。"
|
|
1032
|
+
},
|
|
1033
|
+
"guardrail": {
|
|
1034
|
+
"summary": "调整边界",
|
|
1035
|
+
"detail": "只保留用户需要知道的限制、影响和下一步。"
|
|
1036
|
+
},
|
|
1037
|
+
"risk": {
|
|
1038
|
+
"summary": "修复误判",
|
|
1039
|
+
"detail": "避免把实现授权写成再次索取确认。"
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
},
|
|
960
1043
|
"sectionKeys": [
|
|
961
1044
|
"meta",
|
|
962
1045
|
"problem",
|
|
@@ -973,6 +1056,34 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
973
1056
|
],
|
|
974
1057
|
"presentationContract": {
|
|
975
1058
|
"intent": "这些限制用于反馈给 Agent 重新概括,不由 HTML 模板截断原文。",
|
|
1059
|
+
"summaryStyle": {
|
|
1060
|
+
"perspective": "从用户可感知变化出发,优先写用户现在能做什么、会看到什么、哪个问题被修好。",
|
|
1061
|
+
"preferredVerbs": [
|
|
1062
|
+
"新增",
|
|
1063
|
+
"修复",
|
|
1064
|
+
"优化",
|
|
1065
|
+
"调整",
|
|
1066
|
+
"移除"
|
|
1067
|
+
],
|
|
1068
|
+
"panelExamples": {
|
|
1069
|
+
"flow": {
|
|
1070
|
+
"summary": "新增入口",
|
|
1071
|
+
"detail": "用户现在可以直接进入对应流程,不用再自己找路径。"
|
|
1072
|
+
},
|
|
1073
|
+
"function": {
|
|
1074
|
+
"summary": "优化说明",
|
|
1075
|
+
"detail": "用户先看到新增、修复、优化这类短摘要,再决定是否继续细读。"
|
|
1076
|
+
},
|
|
1077
|
+
"guardrail": {
|
|
1078
|
+
"summary": "调整边界",
|
|
1079
|
+
"detail": "只保留用户需要知道的限制、影响和下一步。"
|
|
1080
|
+
},
|
|
1081
|
+
"risk": {
|
|
1082
|
+
"summary": "修复误判",
|
|
1083
|
+
"detail": "避免把实现授权写成再次索取确认。"
|
|
1084
|
+
}
|
|
1085
|
+
}
|
|
1086
|
+
},
|
|
976
1087
|
"expectedDataShape": {
|
|
977
1088
|
"reviewPresentation": {
|
|
978
1089
|
"diagram": {
|
|
@@ -1028,26 +1139,26 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
1028
1139
|
"panels": {
|
|
1029
1140
|
"flow": [
|
|
1030
1141
|
{
|
|
1031
|
-
"summary": "
|
|
1032
|
-
"detail": "
|
|
1142
|
+
"summary": "新增入口",
|
|
1143
|
+
"detail": "用户现在可以直接进入对应流程,不用再自己找路径。"
|
|
1033
1144
|
}
|
|
1034
1145
|
],
|
|
1035
1146
|
"function": [
|
|
1036
1147
|
{
|
|
1037
|
-
"summary": "
|
|
1038
|
-
"detail": "
|
|
1148
|
+
"summary": "优化说明",
|
|
1149
|
+
"detail": "用户先看到新增、修复、优化这类短摘要,再决定是否继续细读。"
|
|
1039
1150
|
}
|
|
1040
1151
|
],
|
|
1041
1152
|
"guardrail": [
|
|
1042
1153
|
{
|
|
1043
|
-
"summary": "
|
|
1044
|
-
"detail": "
|
|
1154
|
+
"summary": "调整边界",
|
|
1155
|
+
"detail": "只保留用户需要知道的限制、影响和下一步。"
|
|
1045
1156
|
}
|
|
1046
1157
|
],
|
|
1047
1158
|
"risk": [
|
|
1048
1159
|
{
|
|
1049
|
-
"summary": "
|
|
1050
|
-
"detail": "
|
|
1160
|
+
"summary": "修复误判",
|
|
1161
|
+
"detail": "避免把实现授权写成再次索取确认。"
|
|
1051
1162
|
}
|
|
1052
1163
|
]
|
|
1053
1164
|
}
|
|
@@ -1073,14 +1184,14 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
1073
1184
|
"area": "四个评审卡片",
|
|
1074
1185
|
"target": "重点摘要胶囊",
|
|
1075
1186
|
"maxChars": 15,
|
|
1076
|
-
"action": "
|
|
1187
|
+
"action": "请重写成短标签,优先使用 新增 / 修复 / 优化 / 调整 / 移除 这类用户能一眼看懂的动作词,再补必要对象。"
|
|
1077
1188
|
},
|
|
1078
1189
|
{
|
|
1079
1190
|
"id": "review-panel-detail-format",
|
|
1080
1191
|
"area": "四个评审卡片",
|
|
1081
1192
|
"target": "明细分点",
|
|
1082
1193
|
"format": "- **摘要内容**:明细一句话",
|
|
1083
|
-
"action": "请写入 reviewPresentation.panels.<kind>[],把每个明细改写为“加粗短摘要 +
|
|
1194
|
+
"action": "请写入 reviewPresentation.panels.<kind>[],把每个明细改写为“加粗短摘要 + 一句话说明”,短摘要优先使用 新增 / 修复 / 优化 / 调整 / 移除。"
|
|
1084
1195
|
}
|
|
1085
1196
|
]
|
|
1086
1197
|
},
|
|
@@ -1132,7 +1243,7 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
1132
1243
|
"jsonPath": "reviewPresentation.panels.flow[0]",
|
|
1133
1244
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1134
1245
|
"currentText": "维护者运行 openprd run . --context 或 openprd run . --verify 时,只看到当前项目主验证状态;仓库中存在 research、toolkit-sources、marketplace-candidates 等参考目录时,默认不会被当成本项目源码说明书缺口直接淹没结果;维护者可以继续按需显式 classify-external。",
|
|
1135
|
-
"action": "请写入 reviewPresentation.panels.flow[0]
|
|
1246
|
+
"action": "请写入 reviewPresentation.panels.flow[0],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
1136
1247
|
},
|
|
1137
1248
|
{
|
|
1138
1249
|
"ruleId": "review-panel-detail-format",
|
|
@@ -1141,7 +1252,7 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
1141
1252
|
"jsonPath": "reviewPresentation.panels.flow[1]",
|
|
1142
1253
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1143
1254
|
"currentText": "reference discovery 仍然混入 run context 或 run verify",
|
|
1144
|
-
"action": "请写入 reviewPresentation.panels.flow[1]
|
|
1255
|
+
"action": "请写入 reviewPresentation.panels.flow[1],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
1145
1256
|
},
|
|
1146
1257
|
{
|
|
1147
1258
|
"ruleId": "review-panel-detail-format",
|
|
@@ -1150,7 +1261,7 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
1150
1261
|
"jsonPath": "reviewPresentation.panels.flow[2]",
|
|
1151
1262
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1152
1263
|
"currentText": "standards verify 继续被 research 或 toolkit-sources 之类参考目录的说明书缺口淹没",
|
|
1153
|
-
"action": "请写入 reviewPresentation.panels.flow[2]
|
|
1264
|
+
"action": "请写入 reviewPresentation.panels.flow[2],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
1154
1265
|
},
|
|
1155
1266
|
{
|
|
1156
1267
|
"ruleId": "review-panel-detail-format",
|
|
@@ -1159,52 +1270,7 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
1159
1270
|
"jsonPath": "reviewPresentation.panels.flow[3]",
|
|
1160
1271
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1161
1272
|
"currentText": "fleet 更新后历史项目仍保留旧的 verify 噪音行为",
|
|
1162
|
-
"action": "请写入 reviewPresentation.panels.flow[3]
|
|
1163
|
-
},
|
|
1164
|
-
{
|
|
1165
|
-
"ruleId": "review-panel-detail-format",
|
|
1166
|
-
"area": "主流程与边界情况",
|
|
1167
|
-
"target": "明细 1",
|
|
1168
|
-
"jsonPath": "reviewPresentation.panels.flow[0]",
|
|
1169
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1170
|
-
"currentText": "维护者运行 openprd run . --context 或 openprd run . --verify 时,只看到当前项目主验证状态;仓库中存在 research、toolkit-sources、marketplace-candidates 等参考目录时,默认不会被当成本项目源码说明书缺口直接淹没结果;维护者可以继续按需显式 classify-external。",
|
|
1171
|
-
"action": "请写入 reviewPresentation.panels.flow[0],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
1172
|
-
},
|
|
1173
|
-
{
|
|
1174
|
-
"ruleId": "review-panel-detail-format",
|
|
1175
|
-
"area": "主流程与边界情况",
|
|
1176
|
-
"target": "明细 2",
|
|
1177
|
-
"jsonPath": "reviewPresentation.panels.flow[1]",
|
|
1178
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1179
|
-
"currentText": "reference discovery 仍然混入 run context 或 run verify",
|
|
1180
|
-
"action": "请写入 reviewPresentation.panels.flow[1],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
1181
|
-
},
|
|
1182
|
-
{
|
|
1183
|
-
"ruleId": "review-panel-detail-format",
|
|
1184
|
-
"area": "主流程与边界情况",
|
|
1185
|
-
"target": "明细 3",
|
|
1186
|
-
"jsonPath": "reviewPresentation.panels.flow[2]",
|
|
1187
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1188
|
-
"currentText": "standards verify 继续被 research 或 toolkit-sources 之类参考目录的说明书缺口淹没",
|
|
1189
|
-
"action": "请写入 reviewPresentation.panels.flow[2],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
1190
|
-
},
|
|
1191
|
-
{
|
|
1192
|
-
"ruleId": "review-panel-detail-format",
|
|
1193
|
-
"area": "主流程与边界情况",
|
|
1194
|
-
"target": "明细 4",
|
|
1195
|
-
"jsonPath": "reviewPresentation.panels.flow[3]",
|
|
1196
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1197
|
-
"currentText": "fleet 更新后历史项目仍保留旧的 verify 噪音行为",
|
|
1198
|
-
"action": "请写入 reviewPresentation.panels.flow[3],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
1199
|
-
},
|
|
1200
|
-
{
|
|
1201
|
-
"ruleId": "review-panel-detail-format",
|
|
1202
|
-
"area": "开放问题与风险",
|
|
1203
|
-
"target": "明细 1",
|
|
1204
|
-
"jsonPath": "reviewPresentation.panels.risk[0]",
|
|
1205
|
-
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1206
|
-
"currentText": "本次只收敛默认边界,不自动猜测每个历史项目全部 external reference 清单;如果某些项目还需要更细的目录级归类,仍由维护者显式确认和补充",
|
|
1207
|
-
"action": "请写入 reviewPresentation.panels.risk[0],格式为 { \"summary\": \"15 字内标签\", \"detail\": \"一句话说明\" }。"
|
|
1273
|
+
"action": "请写入 reviewPresentation.panels.flow[3],格式例如 { \"summary\": \"新增入口\", \"detail\": \"用户现在可以直接进入对应流程,不用再自己找路径。\" }。"
|
|
1208
1274
|
},
|
|
1209
1275
|
{
|
|
1210
1276
|
"ruleId": "review-panel-detail-format",
|
|
@@ -1213,12 +1279,12 @@ openprd review . --mark confirmed --version 'v0001' --digest 'dc988d
|
|
|
1213
1279
|
"jsonPath": "reviewPresentation.panels.risk[0]",
|
|
1214
1280
|
"expectedFormat": "- **摘要内容**:明细一句话",
|
|
1215
1281
|
"currentText": "本次只收敛默认边界,不自动猜测每个历史项目全部 external reference 清单;如果某些项目还需要更细的目录级归类,仍由维护者显式确认和补充",
|
|
1216
|
-
"action": "请写入 reviewPresentation.panels.risk[0]
|
|
1282
|
+
"action": "请写入 reviewPresentation.panels.risk[0],格式例如 { \"summary\": \"修复误判\", \"detail\": \"避免把实现授权写成再次索取确认。\" }。"
|
|
1217
1283
|
}
|
|
1218
1284
|
],
|
|
1219
|
-
"exportedAt": "2026-
|
|
1285
|
+
"exportedAt": "2026-06-05T00:44:22.419Z"
|
|
1220
1286
|
}" title="openprd review . --mark confirmed --version 'v0001' --digest 'dc988d7a94c07d2a8070968a71ddacffb374eaeee12aa85eb93231e06dd7b077' --work-unit 'wu-20260524015648-6d33ded7'">
|
|
1221
|
-
|
|
1287
|
+
认可并继续
|
|
1222
1288
|
</button>
|
|
1223
1289
|
</div>
|
|
1224
1290
|
</nav>
|