@fantasticit/sumi 0.8.0 → 0.9.1
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/README.md +18 -18
- package/dist/adapters.d.ts +1 -0
- package/dist/adapters.js +83 -5
- package/dist/adapters.js.map +1 -1
- package/dist/fix.js +10 -3
- package/dist/fix.js.map +1 -1
- package/dist/trace.d.ts +16 -0
- package/dist/trace.js +30 -0
- package/dist/trace.js.map +1 -0
- package/dist/visualize-page.d.ts +1 -1
- package/dist/visualize-page.js +2 -2
- package/dist/visualize.js +52 -8
- package/dist/visualize.js.map +1 -1
- package/node_modules/@sumi/create/dist/bin.d.ts +2 -0
- package/node_modules/@sumi/create/dist/bin.js +52 -0
- package/node_modules/@sumi/create/dist/bin.js.map +1 -0
- package/node_modules/@sumi/create/package.json +1 -1
- package/node_modules/@sumi/create/template/control/flows/check.flow.yaml +28 -0
- package/node_modules/@sumi/create/template/control/rubrics/behavior.yaml +17 -0
- package/node_modules/@sumi/create/template/control/rubrics/clean-code.yaml +9 -0
- package/node_modules/@sumi/create/template/control/rubrics/device-acceptance.yaml +10 -0
- package/node_modules/@sumi/create/template/control/rubrics/domain.yaml +9 -0
- package/node_modules/@sumi/create/template/control/rubrics/omission.yaml +13 -0
- package/node_modules/@sumi/kernel/dist/brief.d.ts +2 -0
- package/node_modules/@sumi/kernel/dist/brief.js.map +1 -1
- package/node_modules/@sumi/kernel/dist/engine.js +29 -13
- package/node_modules/@sumi/kernel/dist/engine.js.map +1 -1
- package/node_modules/@sumi/kernel/dist/registry.d.ts +6 -0
- package/node_modules/@sumi/kernel/dist/registry.js +7 -1
- package/node_modules/@sumi/kernel/dist/registry.js.map +1 -1
- package/node_modules/@sumi/kernel/dist/scope.d.ts +4 -2
- package/node_modules/@sumi/kernel/dist/scope.js +12 -39
- package/node_modules/@sumi/kernel/dist/scope.js.map +1 -1
- package/node_modules/@sumi/kernel/dist/step-cache.d.ts +19 -0
- package/node_modules/@sumi/kernel/dist/step-cache.js +185 -0
- package/node_modules/@sumi/kernel/dist/step-cache.js.map +1 -0
- package/node_modules/@sumi/kernel/package.json +2 -2
- package/node_modules/@sumi/plugin-sdk/README.md +3 -1
- package/node_modules/@sumi/plugin-sdk/dist/git.d.ts +16 -1
- package/node_modules/@sumi/plugin-sdk/dist/git.js +45 -5
- package/node_modules/@sumi/plugin-sdk/dist/git.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/index.d.ts +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/index.js +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/index.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/protocol.d.ts +7 -0
- package/node_modules/@sumi/plugin-sdk/dist/protocol.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/snapshot.d.ts +2 -0
- package/node_modules/@sumi/plugin-sdk/dist/snapshot.js +60 -0
- package/node_modules/@sumi/plugin-sdk/dist/snapshot.js.map +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/trace.d.ts +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/trace.js +15 -5
- package/node_modules/@sumi/plugin-sdk/dist/trace.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/validate.js +11 -1
- package/node_modules/@sumi/plugin-sdk/dist/validate.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/package.json +1 -1
- package/node_modules/@sumi/plugins-core/README.md +14 -10
- package/node_modules/@sumi/plugins-core/dist/fix/lint.js +3 -3
- package/node_modules/@sumi/plugins-core/dist/fix/lint.js.map +1 -1
- package/node_modules/@sumi/plugins-core/dist/lib.d.ts +6 -2
- package/node_modules/@sumi/plugins-core/dist/lib.js +12 -7
- package/node_modules/@sumi/plugins-core/dist/lib.js.map +1 -1
- package/node_modules/@sumi/plugins-core/dist/plugins/test-affected.js +198 -29
- package/node_modules/@sumi/plugins-core/dist/plugins/test-affected.js.map +1 -1
- package/node_modules/@sumi/plugins-core/dist/test-batches.d.ts +16 -0
- package/node_modules/@sumi/plugins-core/dist/test-batches.js +83 -0
- package/node_modules/@sumi/plugins-core/dist/test-batches.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/test-checkpoints.d.ts +27 -0
- package/node_modules/@sumi/plugins-core/dist/test-checkpoints.js +121 -0
- package/node_modules/@sumi/plugins-core/dist/test-checkpoints.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/tool-batches.d.ts +11 -0
- package/node_modules/@sumi/plugins-core/dist/tool-batches.js +41 -0
- package/node_modules/@sumi/plugins-core/dist/tool-batches.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/vitest-runner.js +20 -4
- package/node_modules/@sumi/plugins-core/dist/vitest-runner.js.map +1 -1
- package/node_modules/@sumi/plugins-core/package.json +2 -2
- package/node_modules/@sumi/plugins-core/sumi-plugins.yaml +4 -0
- package/node_modules/@sumi/plugins-governance/README.md +9 -6
- package/node_modules/@sumi/plugins-governance/dist/checkout.d.ts +1 -2
- package/node_modules/@sumi/plugins-governance/dist/checkout.js +6 -6
- package/node_modules/@sumi/plugins-governance/dist/checkout.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/gate.js +61 -5
- package/node_modules/@sumi/plugins-governance/dist/commands/gate.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js +20 -11
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/gate-cache.js +42 -5
- package/node_modules/@sumi/plugins-governance/dist/gate-cache.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/hooks.d.ts +2 -0
- package/node_modules/@sumi/plugins-governance/dist/hooks.js +4 -0
- package/node_modules/@sumi/plugins-governance/dist/hooks.js.map +1 -0
- package/node_modules/@sumi/plugins-governance/dist/plugins/protected-paths.js +7 -4
- package/node_modules/@sumi/plugins-governance/dist/plugins/protected-paths.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/pr-base.d.ts +9 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-base.js +28 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-base.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/pr-report-publish.d.ts +16 -4
- package/node_modules/@sumi/plugins-governance/dist/pr-report-publish.js +47 -9
- package/node_modules/@sumi/plugins-governance/dist/pr-report-publish.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js +3 -1
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/protected.js +7 -9
- package/node_modules/@sumi/plugins-governance/dist/protected.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/semantic.js +2 -17
- package/node_modules/@sumi/plugins-governance/dist/semantic.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/instructions/push.md +6 -4
- package/node_modules/@sumi/plugins-governance/package.json +2 -2
- package/node_modules/@sumi/plugins-openspec/package.json +4 -4
- package/node_modules/@sumi/plugins-precedent/dist/model.js +2 -15
- package/node_modules/@sumi/plugins-precedent/dist/model.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js +28 -3
- package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/package.json +3 -3
- package/node_modules/@sumi/plugins-review/README.md +18 -11
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js +4 -1
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js +25 -10
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js +8 -1
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/dispute.d.ts +9 -0
- package/node_modules/@sumi/plugins-review/dist/dispute.js +91 -0
- package/node_modules/@sumi/plugins-review/dist/dispute.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/index.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/index.js +1 -0
- package/node_modules/@sumi/plugins-review/dist/index.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/model-execution.d.ts +2 -1
- package/node_modules/@sumi/plugins-review/dist/model-execution.js +49 -18
- package/node_modules/@sumi/plugins-review/dist/model-execution.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/model-independence.d.ts +2 -1
- package/node_modules/@sumi/plugins-review/dist/model-independence.js +13 -4
- package/node_modules/@sumi/plugins-review/dist/model-independence.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js +77 -20
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js +131 -22
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/plugins/validation.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/validation.js +35 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/validation.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/recheck.d.ts +10 -5
- package/node_modules/@sumi/plugins-review/dist/recheck.js +51 -10
- package/node_modules/@sumi/plugins-review/dist/recheck.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/review-evidence.d.ts +3 -0
- package/node_modules/@sumi/plugins-review/dist/review-evidence.js +58 -0
- package/node_modules/@sumi/plugins-review/dist/review-evidence.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/review.d.ts +74 -1
- package/node_modules/@sumi/plugins-review/dist/review.js +320 -9
- package/node_modules/@sumi/plugins-review/dist/review.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/submission.js +45 -4
- package/node_modules/@sumi/plugins-review/dist/submission.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/upgrade-command.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-command.js +14 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-command.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-flow-plan.d.ts +13 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-flow-plan.js +531 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-flow-plan.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-flow-render.d.ts +33 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-flow-render.js +187 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade-flow-render.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade.d.ts +26 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade.js +68 -0
- package/node_modules/@sumi/plugins-review/dist/upgrade.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/validation-receipt.d.ts +8 -0
- package/node_modules/@sumi/plugins-review/dist/validation-receipt.js +210 -0
- package/node_modules/@sumi/plugins-review/dist/validation-receipt.js.map +1 -0
- package/node_modules/@sumi/plugins-review/package.json +5 -4
- package/node_modules/@sumi/plugins-review/sumi-plugins.yaml +8 -1
- package/package.json +10 -10
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { realpathSync, statSync } from 'node:fs';
|
|
2
2
|
import { isAbsolute, relative, resolve } from 'node:path';
|
|
3
|
-
import { spawnCommandSync } from '@sumi/plugin-sdk';
|
|
4
3
|
import { PR_REPORT_MARKER } from './pr-report-markers.js';
|
|
5
4
|
/** gh pr comment 单次最多接受的附件数。 */
|
|
6
5
|
export const MAX_ATTACHMENTS = 50;
|
|
7
|
-
export const PR_REPORT_USAGE = '用法:sumi pr-report <PR 号> [--attach <文件>[#说明]]...';
|
|
6
|
+
export const PR_REPORT_USAGE = '用法:sumi pr-report <PR 号> [--force] [--attach <文件>[#说明]]...';
|
|
8
7
|
/** 解析 pr-report 的参数:一个 PR 号,任意个 --attach <值> / --attach=<值>,位置不限。出错时返回错误说明。 */
|
|
9
8
|
export function parsePrReportArgs(argv) {
|
|
10
9
|
const attach = [];
|
|
10
|
+
let force = false;
|
|
11
11
|
let pr;
|
|
12
12
|
for (let i = 0; i < argv.length; i++) {
|
|
13
13
|
const arg = argv[i];
|
|
14
|
-
if (arg === '--
|
|
14
|
+
if (arg === '--force') {
|
|
15
|
+
force = true;
|
|
16
|
+
}
|
|
17
|
+
else if (arg === '--attach') {
|
|
15
18
|
const value = argv[i + 1];
|
|
16
19
|
if (value === undefined || value === '' || value.startsWith('--'))
|
|
17
20
|
return { error: `--attach 缺少文件\n${PR_REPORT_USAGE}` };
|
|
@@ -36,7 +39,7 @@ export function parsePrReportArgs(argv) {
|
|
|
36
39
|
}
|
|
37
40
|
if (pr === undefined)
|
|
38
41
|
return { error: PR_REPORT_USAGE };
|
|
39
|
-
return { pr, attach };
|
|
42
|
+
return { pr, attach, force };
|
|
40
43
|
}
|
|
41
44
|
/**
|
|
42
45
|
* 调用者所在目录。插件命令由 CLI 在项目根目录下启动,调用者的目录只能从 shell 维护的 PWD 得知;
|
|
@@ -95,11 +98,46 @@ export function resolveAttachments(specs, cwd) {
|
|
|
95
98
|
}
|
|
96
99
|
return { attach };
|
|
97
100
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
/** 后置服务验收:发布命令成功后,必须从 GitHub 重新读到当前 head 上的本次完整报告。 */
|
|
102
|
+
export function verifyPublishedReport(options) {
|
|
103
|
+
const { pr, head, body, attachments, gh } = options;
|
|
104
|
+
const headArgs = ['pr', 'view', pr, '--json', 'headRefOid'];
|
|
105
|
+
const viewed = gh(headArgs);
|
|
106
|
+
if (viewed.error || viewed.status !== 0)
|
|
107
|
+
return { ok: false, message: `报告已发布,但回读失败:${failure(headArgs, viewed)}` };
|
|
108
|
+
let current;
|
|
109
|
+
try {
|
|
110
|
+
current = JSON.parse(viewed.stdout).headRefOid;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return { ok: false, message: '报告已发布,但 GitHub 回读返回无效 JSON' };
|
|
114
|
+
}
|
|
115
|
+
if (current !== head)
|
|
116
|
+
return { ok: false, message: '报告发布期间 PR 头提交已变化,请核对当前 head 并重新运行' };
|
|
117
|
+
// 与发布时查找报告评论一样分页读取全部评论:评论很多时被原地更新的早期报告也能读到。
|
|
118
|
+
const listArgs = [
|
|
119
|
+
'api',
|
|
120
|
+
`repos/{owner}/{repo}/issues/${pr}/comments`,
|
|
121
|
+
'--paginate',
|
|
122
|
+
'--jq',
|
|
123
|
+
`.[] | select(.body | startswith("${PR_REPORT_MARKER}")) | .body | @json`,
|
|
124
|
+
];
|
|
125
|
+
const listed = gh(listArgs);
|
|
126
|
+
if (listed.error || listed.status !== 0)
|
|
127
|
+
return { ok: false, message: `报告已发布,但回读失败:${failure(listArgs, listed)}` };
|
|
128
|
+
let bodies;
|
|
129
|
+
try {
|
|
130
|
+
bodies = listed.stdout
|
|
131
|
+
.split('\n')
|
|
132
|
+
.filter((line) => line.trim())
|
|
133
|
+
.map((line) => JSON.parse(line));
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return { ok: false, message: '报告已发布,但 GitHub 回读返回无效 JSON' };
|
|
137
|
+
}
|
|
138
|
+
if (!bodies.some((comment) => (attachments ? typeof comment === 'string' && comment.startsWith(`${body}\n`) : comment === body)))
|
|
139
|
+
return { ok: false, message: '报告发布后未读到绑定当前 head 的本次完整评论,请核对 GitHub 并重新运行' };
|
|
140
|
+
return { ok: true };
|
|
103
141
|
}
|
|
104
142
|
const GH_MISSING = '未找到 gh:PR 报告通过 GitHub CLI 读写 PR,请安装并登录 gh(gh auth login)';
|
|
105
143
|
function failure(args, r) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-report-publish.js","sourceRoot":"","sources":["../src/pr-report-publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pr-report-publish.js","sourceRoot":"","sources":["../src/pr-report-publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/** 固定业务影响段落单独呈现;其余步骤报告继续放入通用评审区。 */
|
|
2
2
|
export function reportSections(steps) {
|
|
3
|
+
const validation = steps.find((step) => step.use === 'review/validation' && step.report?.startsWith('### 关键验证'));
|
|
3
4
|
const impactStep = steps.find((step) => (step.use === 'prec/impact' || (!step.use && step.id === 'prec/impact')) && step.report?.startsWith('### 业务约束变化'));
|
|
4
5
|
const impact = impactStep?.report;
|
|
5
|
-
const others = steps.filter((step) => step.report && step !== impactStep).map((step) => step.report);
|
|
6
|
+
const others = steps.filter((step) => step.report && step !== impactStep && step !== validation).map((step) => step.report);
|
|
6
7
|
return [
|
|
7
8
|
...(impact ? ['', impact] : []),
|
|
9
|
+
...(validation?.report ? ['', validation.report] : []),
|
|
8
10
|
...(others.length ? ['', '### 评审与报告', '', ...others.flatMap((report) => [report, ''])] : []),
|
|
9
11
|
];
|
|
10
12
|
}
|
|
@@ -1 +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,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,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;
|
|
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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { execFileSync } from 'node:child_process';
|
|
2
1
|
import { readFileSync } from 'node:fs';
|
|
3
2
|
import { join } from 'node:path';
|
|
4
|
-
import { CONFIG_FILES, configFile } from '@sumi/plugin-sdk';
|
|
3
|
+
import { CONFIG_FILES, configFile, gitShowFile } from '@sumi/plugin-sdk';
|
|
5
4
|
import picomatch from 'picomatch';
|
|
6
5
|
import { parse } from 'yaml';
|
|
7
6
|
/** 默认受保护路径:control 层、判例层、配置、入口文档、AI 工具适配、工具配置、包清单与锁文件。 */
|
|
@@ -36,16 +35,15 @@ export function configAt(root, ref) {
|
|
|
36
35
|
return rel ? parseConfig(readFileSync(join(root, rel), 'utf8')) : null;
|
|
37
36
|
}
|
|
38
37
|
for (const rel of CONFIG_FILES) {
|
|
38
|
+
// 该提交中没有这个位置的配置、或配置无法解析时尝试下一个;都不可用时视为未接入,由门禁要求首次接入确认。
|
|
39
|
+
const text = gitShowFile(root, ref, rel);
|
|
40
|
+
if (text === null)
|
|
41
|
+
continue;
|
|
39
42
|
try {
|
|
40
|
-
return parseConfig(
|
|
41
|
-
cwd: root,
|
|
42
|
-
encoding: 'utf8',
|
|
43
|
-
stdio: ['ignore', 'pipe', 'ignore'],
|
|
44
|
-
windowsHide: true,
|
|
45
|
-
}));
|
|
43
|
+
return parseConfig(text);
|
|
46
44
|
}
|
|
47
45
|
catch {
|
|
48
|
-
//
|
|
46
|
+
// 无法解析的配置不能作为保护范围依据。
|
|
49
47
|
}
|
|
50
48
|
}
|
|
51
49
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protected.js","sourceRoot":"","sources":["../src/protected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"protected.js","sourceRoot":"","sources":["../src/protected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,WAAW;CACZ,CAAC;AAQF,MAAM,UAAU,WAAW,CAAC,IAAmB;IAC7C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,CAAE,KAAK,CAAC,IAAI,CAAsB,IAAI,EAAE,CAAqB,CAAC;AACvE,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAkB;IACvD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,sDAAsD;QACtD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC5B,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA+B;IAC5D,2CAA2C;IAC3C,OAAO,CAAC,GAAG,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,gBAAgB,CAAC,GAAG,OAAoC;IACtE,OAAO,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAClC,OAAoC,EACpC,WAA4B,OAAO,CAAC,QAAQ;IAE5C,OAAO,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC,CAAC;AACxI,CAAC"}
|
|
@@ -1,22 +1,7 @@
|
|
|
1
|
-
import { CONFIG_FILES } from '@sumi/plugin-sdk';
|
|
2
|
-
import { execFileSync } from 'node:child_process';
|
|
1
|
+
import { CONFIG_FILES, gitShowFile } from '@sumi/plugin-sdk';
|
|
3
2
|
import { parse } from 'yaml';
|
|
4
3
|
import { configAt, protectedGlobs } from './protected.js';
|
|
5
|
-
|
|
6
|
-
if (ref === null)
|
|
7
|
-
return null;
|
|
8
|
-
try {
|
|
9
|
-
return execFileSync('git', ['show', `${ref}:${path}`], {
|
|
10
|
-
cwd: root,
|
|
11
|
-
encoding: 'utf8',
|
|
12
|
-
stdio: ['ignore', 'pipe', 'ignore'],
|
|
13
|
-
windowsHide: true,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
4
|
+
const show = (root, ref, path) => (ref === null ? null : gitShowFile(root, ref, path));
|
|
20
5
|
function flowSteps(text) {
|
|
21
6
|
const steps = new Map();
|
|
22
7
|
if (!text)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,18 +4,20 @@ description: 推送前使用:按推送门禁的档位在工作区运行检查
|
|
|
4
4
|
|
|
5
5
|
# 推送前(推送门禁)
|
|
6
6
|
|
|
7
|
-
推送时 pre-push hook 运行 `sumi gate`:先判断这次推送是否需要人工确认(control 变更、删除或强制更新 ref 等),需要而未确认时立即拒绝、不运行检查;确认后重新推送,在被推送提交的独立检出中运行检查,或复用本机同 head、base、档位的推送门禁成功缓存。`SUMI_GATE_NO_CACHE=1 git push` 可强制现场重跑;项目可配置 `gate.cache: false` 永久关闭复用。PR
|
|
7
|
+
推送时 pre-push hook 运行 `sumi gate`:先判断这次推送是否需要人工确认(control 变更、删除或强制更新 ref 等),需要而未确认时立即拒绝、不运行检查;确认后重新推送,在被推送提交的独立检出中运行检查,或复用本机同 head、base、档位的推送门禁成功缓存。`SUMI_GATE_NO_CACHE=1 git push` 可强制现场重跑;项目可配置 `gate.cache: false` 永久关闭复用。PR 报告在同范围有成功门禁缓存时复用并标注来源;需要现场重跑时使用 `sumi pr-report <PR 号> --force`。门禁不派发评审、不做人工确认,所以评审要在推送前于工作区完成,人工确认由用户完成。
|
|
8
8
|
|
|
9
9
|
1. 读 `control/config.yaml` 的 `gate.tier`(未配置时为最低档位)。
|
|
10
|
-
2. 运行 `sumi run check --tier
|
|
11
|
-
3. 简报中的评审派发动作(`sumi submit <运行> <步骤> --ticket <t>`):用全新上下文的子代理,按派发动作给出的评审请求逐条评审(只评审、不修改代码),结果写入指定文件,再运行给出的 `sumi submit` 命令;然后重跑第 2
|
|
10
|
+
2. 运行 `sumi run check --tier <该档位>`。分支还没有上游时,工作区与门禁都以与远端默认分支的合并基础为基准;已有开放 PR 时,推送门禁使用 PR 合并基础,与 `pr-report` 的完整 PR 范围一致。门禁提示带 `--base` 的工作区命令时,以该基准完成评审。
|
|
11
|
+
3. 简报中的评审派发动作(`sumi submit <运行> <步骤> --ticket <t>`):用全新上下文的子代理,按派发动作给出的评审请求逐条评审(只评审、不修改代码),结果写入指定文件,再运行给出的 `sumi submit` 命令;然后重跑第 2 步。相同 HEAD、源码快照、测试计划和配置下,`core/test-affected` 会复用已通过的测试批次;这些条件变化或批次未通过时才重跑对应批次。评审不通过时,按 findings 修改代码后重跑。
|
|
12
12
|
4. 第 2 步通过后再 `git push`。门禁拒绝时按它的提示处理:
|
|
13
13
|
- 提示在工作区运行某条 `sumi run …`(带 `--base <基准>` 或 `--all`)时,原样运行并完成待处理项,再推送同一提交;
|
|
14
14
|
- 需要人工确认(`sumi approve <请求 id>`)时停下,请用户在自己的终端执行,确认后再推送同一提交(此时才运行检查)。
|
|
15
15
|
5. 用户要求创建 PR 或向已有 PR 分支推送时,当前 PR 头提交的 Sumi 审查报告是工作流的必需产物:PR 可访问后直接运行 `sumi pr-report <PR 号>`,无需为同一 PR 工作流再次请求评论发布授权。同一 PR 再次运行会更新原评论。
|
|
16
16
|
- 命令提示有待处理项时,按提示在工作区运行给出的命令(带 `--base <合并基础>`)完成评审,再重新运行;
|
|
17
|
-
-
|
|
17
|
+
- 设备验收分两阶段:推送前的独立评审核查当时可取得的证据,明确列出需要推送后验收的真实服务路径;推送后由 `pr-report` 校验 GitHub 当前 head/base、发布报告并从 GitHub 回读本次完整评论。只有报告结论通过、回读成功且报告绑定当前 PR head 后才可宣告 PR 工作流完成;报告缺失、过期、未通过、发布或回读失败时不得结束;
|
|
18
18
|
- PR 头提交变化后,旧报告立即过期,必须对新 head 重新运行 `sumi pr-report`;
|
|
19
19
|
- 只在用户要求或确有必要(例如需要展示 UI 改动效果)时用 `--attach <文件>[#说明]` 附加截图或录屏,需要 gh ≥ 2.100;
|
|
20
20
|
- Claude Code、Codex 与 Cursor 的停止阶段 hook 仅在本地 HEAD 与开放 PR head 一致且报告缺失或过期时给一次自动补救提醒,不会代替代理发布。`gh` 登录/网络故障、同名 PR 头提交不符或自动补救失败时,停下并向用户报告具体未完成项;不要反复回复或擅自切换、推送提交。
|
|
21
21
|
6. 不要替用户运行 `sumi approve` 或 `sumi unlock`,不要用 `--no-verify`、`HUSKY=0` 等方式绕过 hook。
|
|
22
|
+
|
|
23
|
+
OpenSpec `tasks.md` 的“已运行测试”勾选只记录历史完成状态,不代表当前 HEAD 的验证回执。评审只把本次流程 `review/validation` 中通过的套件写入 `testEvidence`;任务清单需要证明当前执行时,以该回执为准。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumi/plugins-governance",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
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.
|
|
16
|
+
"@sumi/plugin-sdk": "0.9.1",
|
|
17
17
|
"yaml": "2.9.1",
|
|
18
18
|
"picomatch": "4.0.7"
|
|
19
19
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumi/plugins-openspec",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "OpenSpec 插件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/plugin-sdk": "0.
|
|
17
|
-
"@sumi/plugins-governance": "0.
|
|
18
|
-
"@sumi/plugins-precedent": "0.
|
|
16
|
+
"@sumi/plugin-sdk": "0.9.1",
|
|
17
|
+
"@sumi/plugins-governance": "0.9.1",
|
|
18
|
+
"@sumi/plugins-precedent": "0.9.1"
|
|
19
19
|
},
|
|
20
20
|
"files": [
|
|
21
21
|
"dist",
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { execFileSync } from 'node:child_process';
|
|
2
1
|
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
3
2
|
import { dirname, join } from 'node:path';
|
|
4
3
|
import { parse } from 'yaml';
|
|
5
|
-
import { commandFileNames, spawnCommandSync } from '@sumi/plugin-sdk';
|
|
4
|
+
import { commandFileNames, gitShowFile, spawnCommandSync } from '@sumi/plugin-sdk';
|
|
6
5
|
export const PRECEDENT_DIR = 'precedents';
|
|
7
6
|
export const REGISTRY_FILE = 'precedents/registry.yaml';
|
|
8
7
|
export function readRegistryText(text) {
|
|
@@ -15,19 +14,7 @@ export function readRegistry(root) {
|
|
|
15
14
|
return readRegistryText(existsSync(path) ? readFileSync(path, 'utf8') : null);
|
|
16
15
|
}
|
|
17
16
|
export function gitShow(root, ref, path) {
|
|
18
|
-
|
|
19
|
-
return null;
|
|
20
|
-
try {
|
|
21
|
-
return execFileSync('git', ['show', `${ref}:${path}`], {
|
|
22
|
-
cwd: root,
|
|
23
|
-
encoding: 'utf8',
|
|
24
|
-
stdio: ['ignore', 'pipe', 'ignore'],
|
|
25
|
-
windowsHide: true,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
17
|
+
return ref ? gitShowFile(root, ref, path) : null;
|
|
31
18
|
}
|
|
32
19
|
export function precedentDirs(root) {
|
|
33
20
|
const dir = join(root, PRECEDENT_DIR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { definePlugin, gitPaths, result } from '@sumi/plugin-sdk';
|
|
4
|
+
import { definePlugin, gitOutput, gitPaths, result } from '@sumi/plugin-sdk';
|
|
5
5
|
import { requireApproval, unlockActive } from '@sumi/plugins-governance';
|
|
6
6
|
import { candidatesPath, readCandidates, shortHash, writeCandidates } from '../candidates.js';
|
|
7
7
|
import { readImpact } from '../impact-state.js';
|
|
@@ -72,9 +72,34 @@ function specCandidates(root, change) {
|
|
|
72
72
|
}
|
|
73
73
|
return out;
|
|
74
74
|
}
|
|
75
|
+
/** 基准中已删除的决策记录的对象名。-z 的 raw 输出为「:模式 模式 对象 对象 状态\0路径\0」交替出现,第三段是基准侧对象名。 */
|
|
76
|
+
function removedBlobs(root, base) {
|
|
77
|
+
const tokens = gitOutput(root, [
|
|
78
|
+
'diff',
|
|
79
|
+
'--raw',
|
|
80
|
+
'-z',
|
|
81
|
+
'--no-abbrev',
|
|
82
|
+
'--no-renames',
|
|
83
|
+
'--diff-filter=D',
|
|
84
|
+
base,
|
|
85
|
+
'--',
|
|
86
|
+
'control/decisions',
|
|
87
|
+
]).split('\0');
|
|
88
|
+
const blobs = new Set();
|
|
89
|
+
for (let i = 0; i + 1 < tokens.length; i += 2)
|
|
90
|
+
blobs.add(tokens[i].split(' ')[2]);
|
|
91
|
+
return blobs;
|
|
92
|
+
}
|
|
75
93
|
function adrCandidates(root, base, change) {
|
|
76
|
-
|
|
77
|
-
|
|
94
|
+
// 只把内容完全不变的重命名排除在新增之外:默认 50% 相似度会把「删旧记录、按同一模板写新记录」配成重命名而漏收新决策。
|
|
95
|
+
// 显式给出阈值,结果也不随 diff.renames 等本地配置变化。
|
|
96
|
+
const args = base
|
|
97
|
+
? ['diff', '--name-only', '--diff-filter=A', '--find-renames=100%', base, '--', 'control/decisions']
|
|
98
|
+
: ['ls-files', 'control/decisions'];
|
|
99
|
+
// 未暂存的普通 mv:新路径是未跟踪文件,diff 无法配对;内容与基准中已删除的记录完全相同时同样视为重命名。
|
|
100
|
+
const removed = base ? removedBlobs(root, base) : new Set();
|
|
101
|
+
const untracked = gitPaths(root, ['ls-files', '--others', '--exclude-standard', 'control/decisions']).filter((adr) => !removed.size || !removed.has(gitOutput(root, ['hash-object', '--', adr]).trim()));
|
|
102
|
+
const added = new Set([...gitPaths(root, args), ...untracked]);
|
|
78
103
|
return [...added]
|
|
79
104
|
.filter(Boolean)
|
|
80
105
|
.map((adr) => ({ id: `a-${shortHash(adr)}`, summary: `新增的决策记录:${adr}`, source: { adr, change } }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harvest.js","sourceRoot":"","sources":["../../src/plugins/harvest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"harvest.js","sourceRoot":"","sources":["../../src/plugins/harvest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumi/plugins-precedent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "判例插件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/plugin-sdk": "0.
|
|
16
|
+
"@sumi/plugin-sdk": "0.9.1",
|
|
17
17
|
"yaml": "2.9.1",
|
|
18
18
|
"picomatch": "4.0.7",
|
|
19
|
-
"@sumi/plugins-governance": "0.
|
|
19
|
+
"@sumi/plugins-governance": "0.9.1"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"dist",
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# @sumi/plugins-review
|
|
2
2
|
|
|
3
|
-
评审插件:按 `control/rubrics/` 下的结构化准则确定适用条目,派发给全新上下文的代理逐条评审,经 `sumi submit`
|
|
3
|
+
评审插件:按 `control/rubrics/` 下的结构化准则确定适用条目,派发给全新上下文的代理逐条评审,经 `sumi submit` 校验后接受结果,并在请求键一致时复用。
|
|
4
4
|
|
|
5
5
|
依赖 `@sumi/plugins-governance`(共享状态目录与人工确认)。
|
|
6
6
|
|
|
7
7
|
## 插件
|
|
8
8
|
|
|
9
|
-
| id | kind | 作用
|
|
10
|
-
| ---------------------------- | ----- |
|
|
11
|
-
| `review/rubric` | check | 按一个准则集合评审本次改动涉及的文件
|
|
12
|
-
| `review/
|
|
9
|
+
| id | kind | 作用 | 触发条件 / 档位 | `with` 配置项 |
|
|
10
|
+
| ---------------------------- | ----- | -------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| `review/rubric` | check | 按一个准则集合评审本次改动涉及的文件 | 插件本身不声明触发条件;在哪个档位运行由流程步骤的 `when` 决定(例如 `when: tier >= runtime`) | `rubric`:准则集合 id(对应 `control/rubrics/<rubric>.yaml`);`mode`:`advisory`(默认)或 `human-confirmed` |
|
|
12
|
+
| `review/validation` | check | 核对同次运行中关键验证步骤及其执行证据 | 应排在被引用的验证步骤之后、行为评审之前 | `suites`:`{ id, step, required }` 清单 |
|
|
13
|
+
| `review/independent-recheck` | check | 在独立模型或独立上下文中逐项复核失败 finding | 应排在源评审步骤之后 | `source`:源步骤;`vendor` 和 `model`:目标模型;`policy`:`different-model`(默认)、`different-vendor` 或 `independent-context` |
|
|
13
14
|
|
|
14
15
|
每个准则集合在流程中作为一个 `review/rubric` 步骤实例:
|
|
15
16
|
|
|
@@ -23,6 +24,8 @@ steps:
|
|
|
23
24
|
|
|
24
25
|
`advisory` 评审的步骤若在流程中声明 `required: false`,评审待完成(pending)不影响运行结论。
|
|
25
26
|
|
|
27
|
+
`review/rubric` 可用 `validationStep` 引用本次的 `review/validation`,并用 `auditOf` 引用已接受的首轮通过评审,派发专门寻找漏报的第二轮审查。第二轮请求绑定首轮结果;通过结论须按准则设置提供核查证据。
|
|
28
|
+
|
|
26
29
|
## 命令
|
|
27
30
|
|
|
28
31
|
| 命令 | 作用 |
|
|
@@ -85,6 +88,8 @@ items:
|
|
|
85
88
|
| `contentDigest` | 被评审文件的内容摘要(按路径排序的路径与 git blob id) |
|
|
86
89
|
| `repoRoot` | 仓库根目录 |
|
|
87
90
|
| `items` | 适用条目:准则条目的全部字段,加上本次的评审范围 `files` |
|
|
91
|
+
| `validation` | 可选;关键验证的本次状态、摘要与执行证据范围 |
|
|
92
|
+
| `priorReview` | 可选;被审查的首轮已接受结论及其摘要 |
|
|
88
93
|
|
|
89
94
|
### 结果文件(`review-result.json`)
|
|
90
95
|
|
|
@@ -101,9 +106,9 @@ items:
|
|
|
101
106
|
|
|
102
107
|
## 结果复用
|
|
103
108
|
|
|
104
|
-
|
|
109
|
+
请求键至少绑定准则文件摘要、被评审文件内容摘要、每个适用条目的 id 与文件及区域列表;启用关键验证时还绑定验证步骤、状态及执行范围,启用 `auditOf` 时绑定首轮已接受结果。`core/test-affected` 以结构化用例范围生成跨次运行的执行摘要,原始报告和辅助文件另有同次运行的完整性摘要,提交时会重新核对。比较基准不进键,因此内容与上述证据一致时,推送门禁可以复用工作区评审。准则文件、被评审内容、验证范围或首轮结论变化时,旧结论不能按原键复用。内容摘要取 git blob id(经 clean 过滤),准则摘要按 LF 计算,因此同一提交在 LF 与 CRLF 检出(如 Windows 的 `core.autocrlf=true`)中得到相同的键。
|
|
105
110
|
|
|
106
|
-
|
|
111
|
+
键不一致时,旧版简单准则请求仍可查找覆盖本次范围的已接受评审:同一准则内容,本次每个适用条目的文件都在原评审同一条目的文件列表内,内容一致且条目全部通过,才复用。绑定关键验证、首轮结果、逐区域或通过证据要求的请求禁止这种覆盖复用,只能精确匹配请求键;因此 PR 完整范围与推送增量范围不同可能需要分别评审。不通过的结果不按覆盖复用。覆盖记录与其键绑定:由记录内容重算的请求键必须等于记录的键,否则(以及记录或结果文件损坏时)跳过该记录。`sumi submit` 会核对请求键与 ticket 一致、由请求内容重算的键与准则摘要都未变,否则拒绝提交。
|
|
107
112
|
|
|
108
113
|
已接受的结果保存在共享状态目录(`git rev-parse --git-common-dir` 下的 `sumi/`)中:
|
|
109
114
|
|
|
@@ -115,11 +120,11 @@ items:
|
|
|
115
120
|
|
|
116
121
|
该目录由所有 worktree 共用,不在工作树中,也不随提交传播。
|
|
117
122
|
|
|
118
|
-
采用结果的每次步骤还在自身证据目录写入 `accepted-review.json`(实际采用的 `key`、`resultDigest`)。覆盖复用时这是被复用的原键,不是本次请求键;下游应重新计算共享结果摘要。`sumi submit` 在未加载宿主 hook
|
|
123
|
+
采用结果的每次步骤还在自身证据目录写入 `accepted-review.json`(实际采用的 `key`、`resultDigest`)。覆盖复用时这是被复用的原键,不是本次请求键;下游应重新计算共享结果摘要。`sumi submit` 在未加载宿主 hook 时仍可用于普通评审。报告会标明“宿主模型未记录(普通评审有效;模型与上下文独立性未核验)”。这类结果不能用于不同模型或跨厂商策略,但可按显式的 `independent-context` 策略派发复核。
|
|
119
124
|
|
|
120
|
-
##
|
|
125
|
+
## 独立复核
|
|
121
126
|
|
|
122
|
-
|
|
127
|
+
使用不同模型或跨厂商策略时,先运行 `sumi update` 安装项目 hook,并从 Codex、Claude Code 或 Cursor 的独立代理会话完成原评审及 `sumi submit`。Sumi 只从代理宿主的 hook 输入取模型身份,绑定提交 ticket 和结果摘要;不查找模型 CLI、不执行自报模型的适配器,也不采纳结果正文里的模型名。Codex 与 Cursor 提供逐工具调用模型;Claude Code 通过 `SessionStart` 和 `PostModelSwitch` 跟踪会话模型,缺失时不记录来源。然后在流程中加入复核步骤:
|
|
123
128
|
|
|
124
129
|
```yaml
|
|
125
130
|
- id: review/architecture
|
|
@@ -130,7 +135,9 @@ items:
|
|
|
130
135
|
with: { source: review/architecture, vendor: openai, model: gpt-b }
|
|
131
136
|
```
|
|
132
137
|
|
|
133
|
-
|
|
138
|
+
允许同模型的独立上下文复核时,将步骤配置为 `with: { source: review/architecture, vendor: openai, model: gpt-a, policy: independent-context }`。
|
|
139
|
+
|
|
140
|
+
使用期望模型开启全新代理上下文,按 `recheck-request.json` 对每个 finding 给出 `{ "findingId", "verdict": "confirm|reject", "reason" }`,写入派发给出的 `recheck-result.json`,再在该会话执行 `sumi model-recheck`。默认 `different-model` 要求双方有可核验的不同模型;`different-vendor` 还要求厂商不同。若项目接受以全新代理上下文作为复核条件,可显式设置 `policy: independent-context`:Cursor、Claude Code、Codex 都可用同厂商同模型的子代理,原评审或复核没有宿主模型记录时也可提交。Claude Code 的同会话子代理通过工具 hook 的 `agent_id` 区分:两次代理 ID 不同则核验通过,相同则拒绝;双方都没有代理 ID 时仍允许提交,但不能由宿主核验上下文独立性。Codex 子代理沿用父会话 ID,Cursor 工具 hook 没有稳定的子代理 ID;它们同会话时允许提交,但 Sumi 无法从宿主核验上下文独立性,报告会明确标注,派发方必须实际使用全新子代理。任一来源缺失或代理 ID 不足时也会标注未核验。该策略下 `vendor` / `model` 是目标模型配置,有宿主记录时仍须一致;缺失时不能据此宣称实际执行模型。复核缓存绑定原评审键/摘要、受检内容、来源、策略和每条 finding 身份;无宿主来源时还核对一次性 ticket 的使用记录。`confirm` 保留原失败;`reject` 给出逐 finding 的 `ask-human`,包含正式请求 ID 和 `sumi approve <请求 id>`。人应在自己的终端查看原 finding 与复核理由,确认采纳 reject 后重跑流程。源评审只解除该 finding 的当前阻断,原 fail、复核和批准记录全部保留;其他失败仍阻断。旧版 0.9.0 已接受且可验证的复核缓存可在升级后生成这一请求,不需修改缓存或重做相同内容的 9 项初审。宿主 hook 是本机来源证据,不是厂商服务端签名。Cursor 通过 `preToolUse` 的 `model_id` 记录工具调用模型;Claude Code 自动 fallback 可能不报告实际请求模型,因此其会话模型作为“会话模型记录(非强证明)”参与比较,结果摘要和证据均显式标注,不能声称为服务端实际模型。
|
|
134
141
|
|
|
135
142
|
## 结论与报告
|
|
136
143
|
|