@fantasticit/sumi 0.7.6 → 0.9.0

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 (161) hide show
  1. package/README.md +18 -17
  2. package/dist/adapters.d.ts +3 -0
  3. package/dist/adapters.js +30 -4
  4. package/dist/adapters.js.map +1 -1
  5. package/dist/agent-hooks.d.ts +4 -1
  6. package/dist/agent-hooks.js +157 -12
  7. package/dist/agent-hooks.js.map +1 -1
  8. package/dist/cli.js +41 -2
  9. package/dist/cli.js.map +1 -1
  10. package/dist/context.js +4 -4
  11. package/dist/context.js.map +1 -1
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/instructions.js +3 -1
  16. package/dist/instructions.js.map +1 -1
  17. package/dist/trace.d.ts +16 -0
  18. package/dist/trace.js +30 -0
  19. package/dist/trace.js.map +1 -0
  20. package/dist/visualize-page.d.ts +1 -0
  21. package/dist/visualize-page.js +49 -0
  22. package/dist/visualize-page.js.map +1 -0
  23. package/dist/visualize.d.ts +5 -0
  24. package/dist/visualize.js +176 -0
  25. package/dist/visualize.js.map +1 -0
  26. package/node_modules/@sumi/create/dist/scaffold.js +6 -0
  27. package/node_modules/@sumi/create/dist/scaffold.js.map +1 -1
  28. package/node_modules/@sumi/create/package.json +1 -1
  29. package/node_modules/@sumi/create/template/AGENTS.md +2 -0
  30. package/node_modules/@sumi/create/template/control/config.yaml +2 -0
  31. package/node_modules/@sumi/create/template/control/flows/change.flow.yaml +6 -0
  32. package/node_modules/@sumi/create/template/control/flows/check.flow.yaml +24 -0
  33. package/node_modules/@sumi/create/template/control/rubrics/behavior.yaml +17 -0
  34. package/node_modules/@sumi/create/template/control/rubrics/business-impact.yaml +6 -0
  35. package/node_modules/@sumi/create/template/control/rubrics/omission.yaml +13 -0
  36. package/node_modules/@sumi/create/template/control/rules/development.md +61 -0
  37. package/node_modules/@sumi/create/template/init/AGENTS.md +2 -0
  38. package/node_modules/@sumi/create/template/init/control/flows/check.flow.yaml +2 -0
  39. package/node_modules/@sumi/kernel/dist/brief.d.ts +1 -0
  40. package/node_modules/@sumi/kernel/dist/brief.js +1 -0
  41. package/node_modules/@sumi/kernel/dist/brief.js.map +1 -1
  42. package/node_modules/@sumi/kernel/dist/engine.js +1 -0
  43. package/node_modules/@sumi/kernel/dist/engine.js.map +1 -1
  44. package/node_modules/@sumi/kernel/package.json +2 -2
  45. package/node_modules/@sumi/plugin-sdk/README.md +2 -2
  46. package/node_modules/@sumi/plugin-sdk/dist/index.d.ts +1 -0
  47. package/node_modules/@sumi/plugin-sdk/dist/index.js +1 -0
  48. package/node_modules/@sumi/plugin-sdk/dist/index.js.map +1 -1
  49. package/node_modules/@sumi/plugin-sdk/dist/protocol.d.ts +6 -0
  50. package/node_modules/@sumi/plugin-sdk/dist/protocol.js.map +1 -1
  51. package/node_modules/@sumi/plugin-sdk/dist/trace.d.ts +16 -0
  52. package/node_modules/@sumi/plugin-sdk/dist/trace.js +58 -0
  53. package/node_modules/@sumi/plugin-sdk/dist/trace.js.map +1 -0
  54. package/node_modules/@sumi/plugin-sdk/dist/validate.js +15 -3
  55. package/node_modules/@sumi/plugin-sdk/dist/validate.js.map +1 -1
  56. package/node_modules/@sumi/plugin-sdk/package.json +1 -1
  57. package/node_modules/@sumi/plugins-core/dist/agent-rules.d.ts +5 -0
  58. package/node_modules/@sumi/plugins-core/dist/agent-rules.js +66 -0
  59. package/node_modules/@sumi/plugins-core/dist/agent-rules.js.map +1 -0
  60. package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.d.ts +1 -0
  61. package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.js +10 -0
  62. package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.js.map +1 -0
  63. package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.d.ts +1 -0
  64. package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.js +8 -0
  65. package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.js.map +1 -0
  66. package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.d.ts +1 -0
  67. package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.js +19 -0
  68. package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.js.map +1 -0
  69. package/node_modules/@sumi/plugins-core/dist/plugins/test-affected.js +107 -15
  70. package/node_modules/@sumi/plugins-core/dist/plugins/test-affected.js.map +1 -1
  71. package/node_modules/@sumi/plugins-core/package.json +2 -2
  72. package/node_modules/@sumi/plugins-core/sumi-plugins.yaml +20 -0
  73. package/node_modules/@sumi/plugins-governance/README.md +3 -3
  74. package/node_modules/@sumi/plugins-governance/dist/checkout.d.ts +2 -0
  75. package/node_modules/@sumi/plugins-governance/dist/checkout.js.map +1 -1
  76. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js +2 -0
  77. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js.map +1 -1
  78. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js +3 -3
  79. package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js.map +1 -1
  80. package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.d.ts +6 -0
  81. package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js +13 -0
  82. package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js.map +1 -0
  83. package/node_modules/@sumi/plugins-governance/dist/pr-report-status.d.ts +1 -0
  84. package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js +15 -12
  85. package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js.map +1 -1
  86. package/node_modules/@sumi/plugins-governance/instructions/push.md +1 -1
  87. package/node_modules/@sumi/plugins-governance/package.json +2 -2
  88. package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.d.ts +11 -0
  89. package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.js +67 -0
  90. package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.js.map +1 -0
  91. package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.d.ts +1 -0
  92. package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.js +63 -0
  93. package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.js.map +1 -0
  94. package/node_modules/@sumi/plugins-openspec/package.json +4 -2
  95. package/node_modules/@sumi/plugins-openspec/sumi-plugins.yaml +6 -0
  96. package/node_modules/@sumi/plugins-precedent/dist/candidates.d.ts +1 -0
  97. package/node_modules/@sumi/plugins-precedent/dist/commands/context.js +6 -0
  98. package/node_modules/@sumi/plugins-precedent/dist/commands/context.js.map +1 -1
  99. package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.d.ts +1 -0
  100. package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.js +21 -0
  101. package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.js.map +1 -0
  102. package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.d.ts +6 -0
  103. package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.js +51 -0
  104. package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.js.map +1 -0
  105. package/node_modules/@sumi/plugins-precedent/dist/impact-state.d.ts +14 -0
  106. package/node_modules/@sumi/plugins-precedent/dist/impact-state.js +60 -0
  107. package/node_modules/@sumi/plugins-precedent/dist/impact-state.js.map +1 -0
  108. package/node_modules/@sumi/plugins-precedent/dist/impact.d.ts +52 -0
  109. package/node_modules/@sumi/plugins-precedent/dist/impact.js +253 -0
  110. package/node_modules/@sumi/plugins-precedent/dist/impact.js.map +1 -0
  111. package/node_modules/@sumi/plugins-precedent/dist/index.d.ts +2 -0
  112. package/node_modules/@sumi/plugins-precedent/dist/index.js +2 -0
  113. package/node_modules/@sumi/plugins-precedent/dist/index.js.map +1 -1
  114. package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js +31 -5
  115. package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js.map +1 -1
  116. package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.d.ts +1 -0
  117. package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.js +60 -0
  118. package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.js.map +1 -0
  119. package/node_modules/@sumi/plugins-precedent/package.json +3 -3
  120. package/node_modules/@sumi/plugins-precedent/sumi-plugins.yaml +9 -0
  121. package/node_modules/@sumi/plugins-review/README.md +37 -11
  122. package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.d.ts +1 -0
  123. package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js +15 -0
  124. package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js.map +1 -0
  125. package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.d.ts +1 -0
  126. package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js +71 -0
  127. package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js.map +1 -0
  128. package/node_modules/@sumi/plugins-review/dist/commands/submit.js +32 -67
  129. package/node_modules/@sumi/plugins-review/dist/commands/submit.js.map +1 -1
  130. package/node_modules/@sumi/plugins-review/dist/model-execution.d.ts +30 -0
  131. package/node_modules/@sumi/plugins-review/dist/model-execution.js +188 -0
  132. package/node_modules/@sumi/plugins-review/dist/model-execution.js.map +1 -0
  133. package/node_modules/@sumi/plugins-review/dist/model-independence.d.ts +11 -0
  134. package/node_modules/@sumi/plugins-review/dist/model-independence.js +23 -0
  135. package/node_modules/@sumi/plugins-review/dist/model-independence.js.map +1 -0
  136. package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.d.ts +1 -0
  137. package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js +108 -0
  138. package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js.map +1 -0
  139. package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js +120 -9
  140. package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js.map +1 -1
  141. package/node_modules/@sumi/plugins-review/dist/plugins/validation.d.ts +1 -0
  142. package/node_modules/@sumi/plugins-review/dist/plugins/validation.js +35 -0
  143. package/node_modules/@sumi/plugins-review/dist/plugins/validation.js.map +1 -0
  144. package/node_modules/@sumi/plugins-review/dist/recheck.d.ts +52 -0
  145. package/node_modules/@sumi/plugins-review/dist/recheck.js +154 -0
  146. package/node_modules/@sumi/plugins-review/dist/recheck.js.map +1 -0
  147. package/node_modules/@sumi/plugins-review/dist/review-evidence.d.ts +3 -0
  148. package/node_modules/@sumi/plugins-review/dist/review-evidence.js +58 -0
  149. package/node_modules/@sumi/plugins-review/dist/review-evidence.js.map +1 -0
  150. package/node_modules/@sumi/plugins-review/dist/review.d.ts +58 -1
  151. package/node_modules/@sumi/plugins-review/dist/review.js +175 -11
  152. package/node_modules/@sumi/plugins-review/dist/review.js.map +1 -1
  153. package/node_modules/@sumi/plugins-review/dist/submission.d.ts +11 -0
  154. package/node_modules/@sumi/plugins-review/dist/submission.js +115 -0
  155. package/node_modules/@sumi/plugins-review/dist/submission.js.map +1 -0
  156. package/node_modules/@sumi/plugins-review/dist/validation-receipt.d.ts +8 -0
  157. package/node_modules/@sumi/plugins-review/dist/validation-receipt.js +110 -0
  158. package/node_modules/@sumi/plugins-review/dist/validation-receipt.js.map +1 -0
  159. package/node_modules/@sumi/plugins-review/package.json +4 -3
  160. package/node_modules/@sumi/plugins-review/sumi-plugins.yaml +21 -0
  161. package/package.json +10 -10
@@ -1,5 +1,25 @@
1
1
  # 通用检查插件。工具(prettier、eslint、tsc、vitest)由项目安装,插件不自带。
2
2
  plugins:
3
+ - id: core/agent-rules
4
+ version: 0.1.0
5
+ description: 开发前送达项目通用规则
6
+ kind: check
7
+ command: [node, ./dist/plugins/agent-rules.js]
8
+ timeout: 30
9
+ agentSettings:
10
+ - path: agentContext.rules
11
+ values: [off, inject]
12
+ default: off
13
+ event: onPrompt
14
+ group: 上下文模式
15
+ label: rules
16
+ hooks:
17
+ agent:
18
+ onPrompt: { command: agent-rules-prompt, when: { path: agentContext.rules, equals: inject } }
19
+ beforeTool: { command: agent-rules-before-edit, tools: edit, failure: open, when: { path: agentContext.rules, equals: inject } }
20
+ commands:
21
+ - { name: agent-rules-prompt, argv: [node, ./dist/commands/agent-rules-prompt.js], description: 送达通用规则全文 }
22
+ - { name: agent-rules-before-edit, argv: [node, ./dist/commands/agent-rules-before-edit.js], description: 编辑前兜底送达通用规则 }
3
23
  - id: core/format
4
24
  version: 0.1.0
5
25
  description: Prettier 格式
@@ -27,7 +27,7 @@
27
27
 
28
28
  - `hooks.git: { pre-push: gate }`:git 推送前运行 `sumi gate`。
29
29
  - `hooks.agent: { beforeTool: guard }`:AI 工具调用工具前运行 `sumi guard`。
30
- - `hooks.agent: { stop: pr-report-check }`:AI 工具准备结束时只读核验当前 PR head 的报告;CLI 转换为各工具原生阻断或续跑响应。检查只防“当前分支已有开放 PR 但当前 head 缺少报告”:detached HEAD、当前分支还没有提交、没有配置远端时直接通过且不调用 `gh`;`gh` 报告远端都不指向已知 GitHub 主机时也通过。配置了远端而 `gh` 缺失、未登录或查询失败时仍阻断,并给出下一步。
30
+ - `hooks.agent: { stop: pr-report-check }`:AI 工具准备结束时只读核验当前 PR head 的报告;仅本地 HEAD 与开放 PR 的 head 完全相等、且报告缺失或过期时请求一次续跑。detached HEAD、尚无提交、没有远端时不调用 `gh`;同名 PR 的 head 不一致、`gh` 缺失/未登录或查询失败时给出诊断但允许结束,由代理向用户说明。
31
31
 
32
32
  ## 与项目配置的交互
33
33
 
@@ -171,9 +171,9 @@ guard 只按工作区当前的项目配置判断受保护路径。相对路径
171
171
 
172
172
  用户要求创建 PR 或向已有 PR 分支推送时,当前 head 的报告是该工作流的必需产物;代理在 PR 可访问后直接运行 `sumi pr-report <PR 号>`,无需再次请求评论发布授权。PR 头提交变化后旧报告立即过期,必须重新发布。
173
173
 
174
- Claude Code、Codex 与 Cursor 由 `sumi update` 接入停止阶段 hook。hook 只读查询当前分支的开放 PR、完整 head OID 与报告评论:没有开放 PR 时通过;当前报告存在时通过;缺失、过期、本地尚未推送或 GitHub 状态无法可靠查询时阻断并给出 `sumi pr-report <PR 号>`。hook 本身不运行门禁,也不写 GitHub。
174
+ Claude Code、Codex 与 Cursor 由 `sumi update` 接入停止阶段 hook。hook 只读查询当前分支的开放 PR、完整 head OID 与报告评论:只有本地与 PR head 一致而报告缺失或过期时,才要求代理补报;同名分支但 head 不一致,以及登录、网络等无法自动解决的故障只诊断、不阻断。每个会话与本地 head 最多自动续跑一次;无法识别会话时不自动续跑。hook 本身不运行门禁,也不写 GitHub。它不能从分支名推断当前对话是否承担 PR 交付,不可替代上述 PR 工作流的报告要求。
175
175
 
176
- Cursor IDE 与 Cloud Agent 支持 `stop` 的 `followup_message`;生成配置把 `loop_limit` 设为 `null`,持续复查到通过。未触发项目级 stop hook 的旧版 Cursor 或部分 Cursor CLI 版本不具备运行时强制保证,升级后应运行 `sumi update` 和 `sumi doctor` 检查静态接线。
176
+ Cursor IDE 与 Cloud Agent 支持 `stop` 的 `followup_message`;生成配置把 `loop_limit` 设为 `1`,防止失败时无限续跑。已接入项目升级 runtime 后应运行 `sumi update` 刷新接线,并用 `sumi doctor` 核查;未触发项目级 stop hook 的旧版 Cursor 或部分 Cursor CLI 版本不具备运行时强制保证。
177
177
 
178
178
  这套本地流程不会替仓库配置 GitHub `required check`,因此不能单独阻止用户在网页上合并缺少当前报告的 PR。需要平台级强制时,应另行配置分支保护或 ruleset。
179
179
 
@@ -3,6 +3,8 @@ export interface CheckoutRecord {
3
3
  startedAt?: string;
4
4
  steps: {
5
5
  id: string;
6
+ /** 较早的缓存记录可能没有插件身份;新运行记录始终提供。 */
7
+ use?: string;
6
8
  required: boolean;
7
9
  state: string;
8
10
  summary: string;
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { checkPrReportStatus } from '../pr-report-status.js';
2
2
  const root = process.env.SUMI_ROOT ?? process.cwd();
3
3
  const status = checkPrReportStatus(root);
4
+ if (status.warning)
5
+ process.stderr.write(`Sumi Stop 提醒:${status.warning}\n`);
4
6
  if (!status.pass) {
5
7
  process.stderr.write(`${status.message}\n`);
6
8
  process.exitCode = 2;
@@ -1 +1 @@
1
- {"version":3,"file":"pr-report-check.js","sourceRoot":"","sources":["../../src/commands/pr-report-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AACpD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"pr-report-check.js","sourceRoot":"","sources":["../../src/commands/pr-report-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AACpD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,OAAO;IAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
@@ -5,6 +5,7 @@ import { guardCommandArgs, PROJECT_SUMI, spawnCommandSync } from '@sumi/plugin-s
5
5
  import { retainedNotice, runGateFlow, workspaceCommand } from '../checkout.js';
6
6
  import { resolvePrBase } from '../pr-base.js';
7
7
  import { PR_REPORT_MARKER, prReportHeadMarker } from '../pr-report-markers.js';
8
+ import { reportSections } from '../pr-report-sections.js';
8
9
  import { callerDir, ghRunner, parsePrReportArgs, PR_REPORT_USAGE, publishReport, resolveAttachments } from '../pr-report-publish.js';
9
10
  /**
10
11
  * sumi pr-report <PR 号>:以 PR 的完整范围(与目标分支的合并基础..头提交)在头提交的独立检出中
@@ -65,6 +66,7 @@ function compose(run, url, base, oid, baseBranch) {
65
66
  '',
66
67
  // 与门禁口径一致:有问题(例如门禁过程中受检文件被改写)时不算通过
67
68
  `- 结论:${run.problem ? STATE.blocked : (STATE[run.conclusion ?? 'blocked'] ?? run.conclusion)}`,
69
+ '- 结论范围:仅覆盖本项目在本次流程和档位中配置且执行的检查步骤;未接入流程的测试不在此结论内。',
68
70
  `- 范围:\`${base.slice(0, 8)}..${oid.slice(0, 8)}\`(与 GitHub ${baseBranch} 当前 head 的合并基础 → PR 头提交),流程 \`${run.flow}\`${run.tier ? `,档位 \`${run.tier}\`` : ''}`,
69
71
  `- 方式:在头提交的独立检出中现场运行,评审复用工作区已接受的结果(${new Date().toISOString()})`,
70
72
  ...(run.problem ? [`- 问题:${run.problem}`] : []),
@@ -76,9 +78,7 @@ function compose(run, url, base, oid, baseBranch) {
76
78
  ...shown.map((s) => `| \`${s.id}\` | ${s.required ? '是' : '否'} | ${STATE[s.state] ?? s.state} | ${cell(s.summary).slice(0, 200)} |`),
77
79
  ...(steps.length > shown.length ? ['', `另有 ${steps.length - shown.length} 个步骤不适用于本次范围。`] : []),
78
80
  ];
79
- const reports = shown.filter((s) => s.report);
80
- if (reports.length)
81
- lines.push('', '### 评审与报告', '', ...reports.flatMap((s) => [s.report, '']));
81
+ lines.push(...reportSections(shown));
82
82
  if (findings.length) {
83
83
  lines.push('', `### 问题(共 ${findings.length} 条${findings.length > 30 ? ',展示前 30 条' : ''})`, '');
84
84
  for (const f of findings.slice(0, 30)) {
@@ -1 +1 @@
1
- {"version":3,"file":"pr-report.js","sourceRoot":"","sources":["../../src/commands/pr-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr-report.js","sourceRoot":"","sources":["../../src/commands/pr-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAkB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAErI;;;;;;GAMG;AACH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAEpD,SAAS,IAAI,CAAC,OAAe,EAAE,IAAI,GAAG,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAS,EAAE,CAAC,IAAc;IACxB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,KAAK;QAAE,IAAI,CAAC,0DAA0D,EAAE,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,MAAM,GAAc,CAAC,IAAI,EAAE,EAAE;IACjC,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AAC9E,CAAC,CAAC;AACF,MAAM,GAAG,GAAG,CAAC,IAAc,EAAE,EAAE;IAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE;IAChC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,KAAK,GAA2B;IACpC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,MAAM;IACf,gBAAgB,EAAE,OAAO;CAC1B,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEpF,SAAS,OAAO,CAAC,GAAgB,EAAE,GAAW,EAAE,IAAY,EAAE,GAAW,EAAE,UAAkB;IAC3F,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,KAAK,GAAG;QACZ,gBAAgB;QAChB,kBAAkB,CAAC,GAAG,CAAC;QACvB,cAAc;QACd,EAAE;QACF,mCAAmC;QACnC,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE;QAC9F,kDAAkD;QAClD,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,UAAU,iCAAiC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5J,qCAAqC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG;QAChE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,EAAE;QACF,UAAU;QACV,EAAE;QACF,uBAAuB;QACvB,2BAA2B;QAC3B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;QACpI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/F,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/F,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,8CAA8C,GAAG,QAAQ,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,sBAAsB;AACtB,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5F,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,OAAO,IAAI,MAAM;IAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AACrB,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,IAAI,OAAO,IAAI,WAAW;IAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,uCAAuC,CAAC,CAAC,CAKhG,CAAC;AACF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3C,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,WAAW,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,aAAa,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC5G,CAAC;AACD,IAAI,IAAY,CAAC;AACjB,IAAI,CAAC;IACH,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,IAAI,CAAE,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAClI,CAAC;AACF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACpH,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AACrC,IAAI,QAAQ;IAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC;AACpD,8CAA8C;AAC9C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChG,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IACnD,IAAI,CACF,cAAc,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,mBAAmB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,YAAY,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAClM,CAAC;AACJ,CAAC;AACD,IAAI,CAAC,GAAG,CAAC,UAAU;IAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AAEvE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7E,iEAAiE;AACjE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAC/D,IAAI,SAA2C,CAAC;AAChD,IAAI,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,SAAS,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,CAAC;QAAS,CAAC;IACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AACD,IAAI,CAAC,SAAS,CAAC,EAAE;IAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,SAAS,CAAC,OAAO;IAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;AACzE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,IAAI,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CACzK,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** 固定业务影响段落单独呈现;其余步骤报告继续放入通用评审区。 */
2
+ export declare function reportSections(steps: {
3
+ id: string;
4
+ use?: string;
5
+ report?: string;
6
+ }[]): string[];
@@ -0,0 +1,13 @@
1
+ /** 固定业务影响段落单独呈现;其余步骤报告继续放入通用评审区。 */
2
+ export function reportSections(steps) {
3
+ const validation = steps.find((step) => step.use === 'review/validation' && step.report?.startsWith('### 关键验证'));
4
+ const impactStep = steps.find((step) => (step.use === 'prec/impact' || (!step.use && step.id === 'prec/impact')) && step.report?.startsWith('### 业务约束变化'));
5
+ const impact = impactStep?.report;
6
+ const others = steps.filter((step) => step.report && step !== impactStep && step !== validation).map((step) => step.report);
7
+ return [
8
+ ...(impact ? ['', impact] : []),
9
+ ...(validation?.report ? ['', validation.report] : []),
10
+ ...(others.length ? ['', '### 评审与报告', '', ...others.flatMap((report) => [report, ''])] : []),
11
+ ];
12
+ }
13
+ //# sourceMappingURL=pr-report-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-report-sections.js","sourceRoot":"","sources":["../src/pr-report-sections.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,MAAM,UAAU,cAAc,CAAC,KAAsD;IACnF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,mBAAmB,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACjH,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAC5H,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;IAC7H,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7F,CAAC;AACJ,CAAC"}
@@ -8,6 +8,7 @@ export type CommandRunner = (command: string, args: string[], cwd: string) => Co
8
8
  export interface PrReportStatus {
9
9
  pass: boolean;
10
10
  message?: string;
11
+ warning?: string;
11
12
  pr?: number;
12
13
  }
13
14
  /**
@@ -23,6 +23,9 @@ function json(result, action) {
23
23
  function block(message, pr) {
24
24
  return { pass: false, message, ...(pr === undefined ? {} : { pr }) };
25
25
  }
26
+ function warn(message, pr) {
27
+ return { pass: true, warning: message, ...(pr === undefined ? {} : { pr }) };
28
+ }
26
29
  /** gh 判定没有任何远端指向已知 GitHub 主机时的固定提示(gh 的 FindRepos 错误)。 */
27
30
  const NO_GITHUB_REMOTE = /none of the git remotes configured for this repository point to a known GitHub host/i;
28
31
  /**
@@ -38,23 +41,23 @@ export function checkPrReportStatus(root, run = defaultRunner) {
38
41
  if (branchResult.status === 1 && !branchResult.error)
39
42
  return { pass: true };
40
43
  if (branchResult.status !== 0)
41
- return block(`无法读取当前分支:${detail(branchResult)}`);
44
+ return warn(`无法读取当前分支:${detail(branchResult)}`);
42
45
  const branch = branchResult.stdout.trim();
43
46
  // rev-parse --verify --quiet:引用不存在时以退出码 1 静默结束;分支已确定,说明它还没有提交。
44
47
  const headResult = run('git', ['rev-parse', '--verify', '--quiet', 'HEAD'], root);
45
48
  if (headResult.status === 1 && !headResult.error && !headResult.stdout.trim())
46
49
  return { pass: true };
47
50
  if (headResult.status !== 0)
48
- return block(`无法读取本地 HEAD:${detail(headResult)}`);
51
+ return warn(`无法读取本地 HEAD:${detail(headResult)}`);
49
52
  const head = headResult.stdout.trim().toLowerCase();
50
53
  const remotes = run('git', ['remote'], root);
51
54
  if (remotes.status !== 0)
52
- return block(`无法读取 git 远端:${detail(remotes)}`);
55
+ return warn(`无法读取 git 远端:${detail(remotes)}`);
53
56
  if (!remotes.stdout.trim())
54
57
  return { pass: true };
55
58
  const auth = run('gh', ['auth', 'status'], root);
56
59
  if (auth.status !== 0)
57
- return block(`无法验证 GitHub 登录状态:${detail(auth)}。请先运行 gh auth login`);
60
+ return warn(`无法验证 GitHub 登录状态:${detail(auth)}。请人在终端运行 gh auth login 后重试 PR 报告检查`);
58
61
  const fields = 'number,headRefOid,url,comments,state';
59
62
  let view = run('gh', ['pr', 'view', '--json', fields], root);
60
63
  let pr = null;
@@ -66,7 +69,7 @@ export function checkPrReportStatus(root, run = defaultRunner) {
66
69
  pr = candidate;
67
70
  }
68
71
  catch (error) {
69
- return block(error.message);
72
+ return warn(error.message);
70
73
  }
71
74
  }
72
75
  else {
@@ -74,35 +77,35 @@ export function checkPrReportStatus(root, run = defaultRunner) {
74
77
  return { pass: true };
75
78
  const listed = run('gh', ['pr', 'list', '--state', 'open', '--head', branch, '--json', 'number,headRefOid,url'], root);
76
79
  if (listed.status !== 0)
77
- return block(`无法查询当前分支的开放 PR:${detail(listed)}`);
80
+ return warn(`无法查询当前分支的开放 PR:${detail(listed)}`);
78
81
  let candidates;
79
82
  try {
80
83
  candidates = json(listed, 'gh pr list');
81
84
  }
82
85
  catch (error) {
83
- return block(error.message);
86
+ return warn(error.message);
84
87
  }
85
88
  if (candidates.length === 0)
86
89
  return { pass: true };
87
90
  if (candidates.length > 1)
88
- return block(`分支 ${branch} 对应 ${candidates.length} 个开放 PR,无法唯一判断报告状态`);
91
+ return warn(`分支 ${branch} 对应 ${candidates.length} 个开放 PR,无法唯一判断报告状态`);
89
92
  const candidate = candidates[0];
90
93
  view = run('gh', ['pr', 'view', String(candidate.number), '--json', fields], root);
91
94
  if (view.status !== 0)
92
- return block(`无法读取 PR #${candidate.number}:${detail(view)}`, candidate.number);
95
+ return warn(`无法读取 PR #${candidate.number}:${detail(view)}`, candidate.number);
93
96
  try {
94
97
  pr = json(view, `gh pr view ${candidate.number}`);
95
98
  }
96
99
  catch (error) {
97
- return block(error.message, candidate.number);
100
+ return warn(error.message, candidate.number);
98
101
  }
99
102
  }
100
103
  if (!pr || !Number.isInteger(pr.number) || !/^[0-9a-f]{40}$/i.test(pr.headRefOid ?? '')) {
101
- return block('GitHub 返回的 PR 信息不完整,无法可靠判断报告状态');
104
+ return warn('GitHub 返回的 PR 信息不完整,无法可靠判断报告状态');
102
105
  }
103
106
  const prHead = pr.headRefOid.toLowerCase();
104
107
  if (head !== prHead) {
105
- return block(`PR #${pr.number} 的头提交是 ${prHead.slice(0, 8)},本地 HEAD 是 ${head.slice(0, 8)}。请先推送当前提交或切回 PR 头提交`, pr.number);
108
+ return warn(`PR #${pr.number} 的头提交是 ${prHead.slice(0, 8)},本地 HEAD 是 ${head.slice(0, 8)};无法确认当前会话负责该 PR,停止检查不阻断`, pr.number);
106
109
  }
107
110
  // 通常只有一条报告;带附件重新发布时若删除旧评论失败会残留多条,此时以绑定当前 head 的那条为准,
108
111
  // 都不绑定时取最新一条(评论按时间升序返回;与 pr-report 更新最新一条的口径一致)
@@ -1 +1 @@
1
- {"version":3,"file":"pr-report-status.js","sourceRoot":"","sources":["../src/pr-report-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAwBlE,MAAM,aAAa,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,MAAqB;IACnC,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,IAAI,CAAI,MAAqB,EAAE,MAAc;IACpD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAM,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,aAAa,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,OAAe,EAAE,EAAW;IACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,0DAA0D;AAC1D,MAAM,gBAAgB,GAAG,sFAAsF,CAAC;AAEhH;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,MAAqB,aAAa;IAClF,uEAAuE;IACvE,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACtF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1C,+DAA+D;IAC/D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAElD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAE3F,MAAM,MAAM,GAAG,sCAAsC,CAAC;IACtD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,IAAI,EAAE,GAAuB,IAAI,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAmC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC7E,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACzE,EAAE,GAAG,SAAS,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC;QACvH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,kBAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,UAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAgB,MAAM,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM,MAAM,OAAO,UAAU,CAAC,MAAM,oBAAoB,CAAC,CAAC;QAClG,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QACjC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,YAAY,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACtG,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,CAAc,IAAI,EAAE,cAAc,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAE,KAAe,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,KAAK,CACV,OAAO,EAAE,CAAC,MAAM,UAAU,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,qBAAqB,EAC/F,EAAE,CAAC,MAAM,CACV,CAAC;IACJ,CAAC;IACD,qDAAqD;IACrD,gDAAgD;IAChD,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,qBAAqB,YAAY,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACjH,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU;QACb,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,mCAAmC,YAAY,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACpH,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CACV,OAAO,EAAE,CAAC,MAAM,gBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,YAAY,cAAc,EAAE,CAAC,MAAM,EAAE,EACzI,EAAE,CAAC,MAAM,CACV,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"pr-report-status.js","sourceRoot":"","sources":["../src/pr-report-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAyBlE,MAAM,aAAa,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,MAAqB;IACnC,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,IAAI,CAAI,MAAqB,EAAE,MAAc;IACpD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAM,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,aAAa,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,OAAe,EAAE,EAAW;IACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,IAAI,CAAC,OAAe,EAAE,EAAW;IACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,0DAA0D;AAC1D,MAAM,gBAAgB,GAAG,sFAAsF,CAAC;AAEhH;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,MAAqB,aAAa;IAClF,uEAAuE;IACvE,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACtF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1C,+DAA+D;IAC/D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAElD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAEzG,MAAM,MAAM,GAAG,sCAAsC,CAAC;IACtD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,IAAI,EAAE,GAAuB,IAAI,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAmC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC7E,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACzE,EAAE,GAAG,SAAS,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC;QACvH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,UAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAgB,MAAM,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,MAAM,OAAO,UAAU,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACjG,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QACjC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,YAAY,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACrG,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,CAAc,IAAI,EAAE,cAAc,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAE,KAAe,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACxF,OAAO,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CACT,OAAO,EAAE,CAAC,MAAM,UAAU,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,yBAAyB,EACnG,EAAE,CAAC,MAAM,CACV,CAAC;IACJ,CAAC;IACD,qDAAqD;IACrD,gDAAgD;IAChD,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,qBAAqB,YAAY,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACjH,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU;QACb,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,mCAAmC,YAAY,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACpH,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CACV,OAAO,EAAE,CAAC,MAAM,gBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,YAAY,cAAc,EAAE,CAAC,MAAM,EAAE,EACzI,EAAE,CAAC,MAAM,CACV,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;AACvC,CAAC"}
@@ -17,5 +17,5 @@ description: 推送前使用:按推送门禁的档位在工作区运行检查
17
17
  - 只有报告成功发布并绑定当前 PR head 后才可宣告 PR 工作流完成;报告缺失、过期或发布失败时不得结束;
18
18
  - PR 头提交变化后,旧报告立即过期,必须对新 head 重新运行 `sumi pr-report`;
19
19
  - 只在用户要求或确有必要(例如需要展示 UI 改动效果)时用 `--attach <文件>[#说明]` 附加截图或录屏,需要 gh ≥ 2.100;
20
- - Claude Code、Codex 与 Cursor 的停止阶段 hook 会只读复查当前 PR head 的报告;它不会代替代理发布,但会在缺失或过期时强制继续处理。
20
+ - Claude Code、Codex 与 Cursor 的停止阶段 hook 仅在本地 HEAD 与开放 PR head 一致且报告缺失或过期时给一次自动补救提醒,不会代替代理发布。`gh` 登录/网络故障、同名 PR 头提交不符或自动补救失败时,停下并向用户报告具体未完成项;不要反复回复或擅自切换、推送提交。
21
21
  6. 不要替用户运行 `sumi approve` 或 `sumi unlock`,不要用 `--no-verify`、`HUSKY=0` 等方式绕过 hook。
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sumi/plugins-governance",
3
- "version": "0.7.6",
3
+ "version": "0.9.0",
4
4
  "description": "治理插件",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,7 +13,7 @@
13
13
  "./package.json": "./package.json"
14
14
  },
15
15
  "dependencies": {
16
- "@sumi/plugin-sdk": "0.7.6",
16
+ "@sumi/plugin-sdk": "0.9.0",
17
17
  "yaml": "2.9.1",
18
18
  "picomatch": "4.0.7"
19
19
  },
@@ -0,0 +1,11 @@
1
+ import { type ChangedImpact, type ImpactRecord } from '@sumi/plugins-precedent';
2
+ export interface ImpactDisposition {
3
+ index: number;
4
+ kind: ChangedImpact['kind'];
5
+ statement: string;
6
+ previous?: ChangedImpact['previous'];
7
+ exclusionReason?: string;
8
+ problems: string[];
9
+ }
10
+ /** 只核对可证明的规格关联;语义对应关系仍由独立评审判断。 */
11
+ export declare function impactDispositions(root: string, impact: ImpactRecord, change: string | undefined): ImpactDisposition[];
@@ -0,0 +1,67 @@
1
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { requirementsIn } from '@sumi/plugins-precedent';
4
+ const allowedSections = {
5
+ added: ['ADDED'],
6
+ modified: ['MODIFIED'],
7
+ removed: ['REMOVED'],
8
+ superseded: ['MODIFIED', 'REMOVED', 'RENAMED'],
9
+ };
10
+ function changeDirectory(root, change) {
11
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(change))
12
+ return null;
13
+ const active = join(root, 'openspec', 'changes', change);
14
+ if (existsSync(join(active, 'tasks.md')))
15
+ return { dir: active, archived: false };
16
+ const archive = join(root, 'openspec', 'changes', 'archive');
17
+ if (!existsSync(archive))
18
+ return null;
19
+ const matches = readdirSync(archive).filter((name) => name.endsWith(`-${change}`) && existsSync(join(archive, name, 'tasks.md')));
20
+ return matches.length === 1 ? { dir: join(archive, matches[0]), archived: true } : null;
21
+ }
22
+ /** 只核对可证明的规格关联;语义对应关系仍由独立评审判断。 */
23
+ export function impactDispositions(root, impact, change) {
24
+ return impact.items.flatMap((item, position) => {
25
+ if (item.kind === 'none')
26
+ return [];
27
+ const problems = [];
28
+ const exclusionReason = item.exclusionReason?.trim();
29
+ const linked = item.change ?? change;
30
+ const location = linked ? changeDirectory(root, linked) : null;
31
+ if (!location)
32
+ problems.push('约束变化未关联进行中或已归档的 OpenSpec change');
33
+ if (change && linked !== change)
34
+ problems.push(`影响记录关联的 change ${linked} 与当前 change ${change} 不一致`);
35
+ if (item.spec && exclusionReason)
36
+ problems.push('规格关联与排除理由不能同时填写');
37
+ if (item.spec) {
38
+ const [capability, requirement, extra] = item.spec.split('#');
39
+ if (!capability || !/^[a-z0-9][a-z0-9-]*$/.test(capability) || !requirement || extra)
40
+ problems.push(`规格引用格式无效:${item.spec}`);
41
+ else if (location) {
42
+ const path = join(location.dir, 'specs', capability, 'spec.md');
43
+ const section = existsSync(path) ? requirementsIn(readFileSync(path, 'utf8')).get(requirement) : undefined;
44
+ if (!section || !allowedSections[item.kind].includes(section))
45
+ problems.push(`关联 change 缺少对应 ${allowedSections[item.kind].join('/')} 需求:${item.spec}`);
46
+ if (location.archived) {
47
+ const canonical = join(root, 'openspec', 'specs', capability, 'spec.md');
48
+ const exists = existsSync(canonical) && requirementsIn(readFileSync(canonical, 'utf8')).has(requirement);
49
+ if (item.kind === 'removed' ? exists : section !== 'REMOVED' && !exists)
50
+ problems.push(`归档后的正式规格与 ${item.kind} 处置不一致:${item.spec}`);
51
+ }
52
+ }
53
+ }
54
+ else if (!exclusionReason) {
55
+ problems.push('缺少 delta 规格关联或不进入规格的具体理由');
56
+ }
57
+ if (item.kind === 'removed' || item.kind === 'superseded') {
58
+ const oldSpec = item.previous?.spec;
59
+ if (oldSpec && item.spec && item.kind === 'removed' && item.spec !== oldSpec)
60
+ problems.push(`移除项关联的规格 ${item.spec} 与旧需求 ${oldSpec} 不一致`);
61
+ if (item.kind === 'superseded' && item.previous?.precedent && !item.precedent)
62
+ problems.push(`旧判例 ${item.previous.precedent} 缺少退役或替代后的判例引用`);
63
+ }
64
+ return [{ index: position + 1, kind: item.kind, statement: item.statement, previous: item.previous, exclusionReason, problems }];
65
+ });
66
+ }
67
+ //# sourceMappingURL=impact-consistency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impact-consistency.js","sourceRoot":"","sources":["../src/impact-consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAyC,MAAM,yBAAyB,CAAC;AAWhG,MAAM,eAAe,GAA4C;IAC/D,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;CAC/C,CAAC;AAEF,SAAS,eAAe,CAAC,IAAY,EAAE,MAAc;IACnD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAClI,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3F,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAoB,EAAE,MAA0B;IAC/F,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,IAAI,CAAC,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChE,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,MAAM,eAAe,MAAM,MAAM,CAAC,CAAC;QACpG,IAAI,IAAI,CAAC,IAAI,IAAI,eAAe;YAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;iBACxH,IAAI,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,UAAW,EAAE,SAAS,CAAC,CAAC;gBACjE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5G,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC3D,QAAQ,CAAC,IAAI,CAAC,kBAAkB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1F,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAW,EAAE,SAAS,CAAC,CAAC;oBAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,WAAY,CAAC,CAAC;oBAC1G,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM;wBACrE,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;YACpC,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAC1E,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,SAAS,OAAO,MAAM,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS;gBAC3E,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,gBAAgB,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnI,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { definePlugin, result } from '@sumi/plugin-sdk';
2
+ import { requireApproval } from '@sumi/plugins-governance';
3
+ import { impactKey, impactScope, readImpact } from '@sumi/plugins-precedent';
4
+ import { impactDispositions } from '../impact-consistency.js';
5
+ await definePlugin((ctx) => {
6
+ const scope = impactScope(ctx.repoRoot, ctx.all ? null : ctx.base, ctx.files, ctx.base);
7
+ if (!scope)
8
+ return result({ status: 'pass', summary: '本次没有业务范围改动', checked: [] });
9
+ const impact = readImpact(ctx.repoRoot, scope);
10
+ if (!impact)
11
+ return result({ status: 'pending', summary: '请先完成业务约束影响判断' });
12
+ const items = impactDispositions(ctx.repoRoot, impact, ctx.labels.change);
13
+ if (!items.length)
14
+ return result({ status: 'pass', summary: '无正式规格变化', checked: scope.files.map((f) => f.path) });
15
+ const findings = [];
16
+ const next = [];
17
+ for (const item of items) {
18
+ for (const problem of item.problems)
19
+ findings.push({
20
+ id: `F${findings.length + 1}`,
21
+ rule: 'impact-disposition',
22
+ severity: 'error',
23
+ message: `业务约束变化第 ${item.index} 项(${item.kind}):${problem}`,
24
+ });
25
+ if (!item.problems.length && item.exclusionReason) {
26
+ const approval = requireApproval(ctx.repoRoot, 'impact-spec-exclusion', {
27
+ scope: impactKey(scope),
28
+ change: ctx.labels.change,
29
+ item: item.index,
30
+ kind: item.kind,
31
+ statement: item.statement,
32
+ reason: item.exclusionReason,
33
+ }, [
34
+ `业务约束变化第 ${item.index} 项(${item.kind}):${item.statement}`,
35
+ `旧规则:${item.previous?.spec ?? item.previous?.precedent ?? '无'}`,
36
+ `影响范围:${scope.files.map((f) => f.path).join('、')}`,
37
+ `不进入正式规格的理由:${item.exclusionReason}`,
38
+ ]);
39
+ if (approval) {
40
+ findings.push({
41
+ id: `F${findings.length + 1}`,
42
+ rule: 'impact-exclusion-unconfirmed',
43
+ severity: 'error',
44
+ message: `第 ${item.index} 项的规格排除理由尚未获用户确认`,
45
+ });
46
+ next.push({
47
+ type: 'ask-human',
48
+ question: `请核对第 ${item.index} 项业务约束变化及不进入规格的理由`,
49
+ argv: ['sumi', 'approve', approval],
50
+ why: '正式规格排除必须由用户确认',
51
+ });
52
+ }
53
+ }
54
+ }
55
+ return result({
56
+ status: findings.length ? 'fail' : 'pass',
57
+ summary: findings.length ? `${findings.length} 项业务规格处置问题` : `${items.length} 项业务规格处置已核对`,
58
+ findings,
59
+ checked: scope.files.map((f) => f.path),
60
+ next: next.length ? next : undefined,
61
+ });
62
+ });
63
+ //# sourceMappingURL=impact-consistency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impact-consistency.js","sourceRoot":"","sources":["../../src/plugins/impact-consistency.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sumi/plugins-openspec",
3
- "version": "0.7.6",
3
+ "version": "0.9.0",
4
4
  "description": "OpenSpec 插件",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,7 +13,9 @@
13
13
  "./package.json": "./package.json"
14
14
  },
15
15
  "dependencies": {
16
- "@sumi/plugin-sdk": "0.7.6"
16
+ "@sumi/plugin-sdk": "0.9.0",
17
+ "@sumi/plugins-governance": "0.9.0",
18
+ "@sumi/plugins-precedent": "0.9.0"
17
19
  },
18
20
  "files": [
19
21
  "dist",
@@ -20,3 +20,9 @@ plugins:
20
20
  kind: check
21
21
  command: [node, ./dist/plugins/change-tasks.js]
22
22
  timeout: 120
23
+ - id: openspec/impact-consistency
24
+ version: 0.1.0
25
+ description: 业务约束影响与 OpenSpec delta 的一致性
26
+ kind: check
27
+ command: [node, ./dist/plugins/impact-consistency.js]
28
+ timeout: 120
@@ -6,6 +6,7 @@ export interface Candidate {
6
6
  spec?: string;
7
7
  change?: string;
8
8
  adr?: string;
9
+ impact?: string;
9
10
  };
10
11
  decision?: 'promoted' | 'rejected';
11
12
  precedent?: string;