soloforge 1.1.68 → 1.1.70
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/dist/context/adapters/shared/integration_guide.js +1 -1
- package/dist/context/templates/observed_consumption.d.ts.map +1 -1
- package/dist/context/templates/observed_consumption.js +0 -1
- package/dist/context/templates/observed_consumption.js.map +1 -1
- package/dist/context/templates/scaffolder.js +6 -7
- package/dist/context/templates/scaffolder.js.map +1 -1
- package/dist/context/templates/standard_asset_coverage.js +2 -2
- package/dist/context/templates/standard_asset_coverage.js.map +1 -1
- package/dist/core/adversarial_review_store.d.ts +6 -0
- package/dist/core/adversarial_review_store.d.ts.map +1 -1
- package/dist/core/adversarial_review_store.js.map +1 -1
- package/dist/domain/asset_registry/template_asset_contract_registry.js +5 -5
- package/dist/domain/asset_registry/template_asset_contract_registry.js.map +1 -1
- package/dist/gate/release/gate_checks/checkMainlineConsumption.d.ts.map +1 -1
- package/dist/gate/release/gate_checks/checkMainlineConsumption.js +3 -2
- package/dist/gate/release/gate_checks/checkMainlineConsumption.js.map +1 -1
- package/dist/gate/scope_controller.d.ts.map +1 -1
- package/dist/gate/scope_controller.js +3 -4
- package/dist/gate/scope_controller.js.map +1 -1
- package/dist/server/tools/sf_doctor.d.ts +7 -0
- package/dist/server/tools/sf_doctor.d.ts.map +1 -1
- package/dist/server/tools/sf_doctor.js +43 -1
- package/dist/server/tools/sf_doctor.js.map +1 -1
- package/dist/server/tools/sf_work.d.ts +8 -0
- package/dist/server/tools/sf_work.d.ts.map +1 -1
- package/dist/server/tools/sf_work.js +87 -12
- package/dist/server/tools/sf_work.js.map +1 -1
- package/dist/verify/index.d.ts +0 -4
- package/dist/verify/index.d.ts.map +1 -1
- package/dist/verify/index.js +0 -2
- package/dist/verify/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/verify/audit/code_reviewer.d.ts +0 -78
- package/dist/verify/audit/code_reviewer.d.ts.map +0 -1
- package/dist/verify/audit/code_reviewer.js +0 -647
- package/dist/verify/audit/code_reviewer.js.map +0 -1
- package/dist/verify/audit/confidence_scorer.d.ts +0 -65
- package/dist/verify/audit/confidence_scorer.d.ts.map +0 -1
- package/dist/verify/audit/confidence_scorer.js +0 -73
- package/dist/verify/audit/confidence_scorer.js.map +0 -1
- package/dist/verify/audit/debt_tracker.d.ts +0 -85
- package/dist/verify/audit/debt_tracker.d.ts.map +0 -1
- package/dist/verify/audit/debt_tracker.js +0 -244
- package/dist/verify/audit/debt_tracker.js.map +0 -1
- package/dist/verify/audit/evolver.d.ts +0 -103
- package/dist/verify/audit/evolver.d.ts.map +0 -1
- package/dist/verify/audit/evolver.js +0 -420
- package/dist/verify/audit/evolver.js.map +0 -1
|
@@ -73,6 +73,13 @@ export interface DoctorReport {
|
|
|
73
73
|
overlaps: number;
|
|
74
74
|
message: string;
|
|
75
75
|
};
|
|
76
|
+
reviews?: {
|
|
77
|
+
total: number;
|
|
78
|
+
with_reviewer_id: number;
|
|
79
|
+
duplicate_session_reviews: number;
|
|
80
|
+
duplicate_sessions: string[];
|
|
81
|
+
message: string;
|
|
82
|
+
};
|
|
76
83
|
}
|
|
77
84
|
/** 项目探针健康(doctor 硬预检:加载错误/依赖缺失 = 需修复项,不降级) */
|
|
78
85
|
export interface ProbeHealth {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sf_doctor.d.ts","sourceRoot":"","sources":["../../../src/server/tools/sf_doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAuB/D,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnE,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtG,aAAa,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;IAEzH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9H,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAE1I,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEhF,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;IAEhH,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"sf_doctor.d.ts","sourceRoot":"","sources":["../../../src/server/tools/sf_doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ import { WaiverStore } from "../../core/waiver_store.js";
|
|
|
19
19
|
import { getFileGitHash } from "../../core/git_utils.js";
|
|
20
20
|
import { aggregateMultiSrcHash } from "../../domain/engine_helpers.js";
|
|
21
21
|
import { join } from "node:path";
|
|
22
|
-
import { existsSync, readdirSync } from "node:fs";
|
|
22
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
23
23
|
import { execa } from "execa";
|
|
24
24
|
import { Observer } from "../../core/observer.js";
|
|
25
25
|
import { ALL_CONTRACTS } from "../../domain/index.js";
|
|
@@ -55,6 +55,7 @@ export async function runDoctorCheck(projectRoot, checkType = "full") {
|
|
|
55
55
|
const knowledge = checkKnowledge(projectRoot);
|
|
56
56
|
const probeHealth = await checkProbes(projectRoot);
|
|
57
57
|
const registryHealth = checkRegistryHealth();
|
|
58
|
+
const reviewsHealth = checkReviews(projectRoot);
|
|
58
59
|
return {
|
|
59
60
|
check_type: "full",
|
|
60
61
|
success: true,
|
|
@@ -64,6 +65,7 @@ export async function runDoctorCheck(projectRoot, checkType = "full") {
|
|
|
64
65
|
scope: { project_root: scope.project_root, denied_patterns: scope.denied_patterns, message: scope.message },
|
|
65
66
|
knowledge: { ...knowledge, probe_health: probeHealth },
|
|
66
67
|
registry: registryHealth,
|
|
68
|
+
reviews: reviewsHealth,
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
71
|
catch (err) {
|
|
@@ -293,4 +295,44 @@ function checkRegistryHealth() {
|
|
|
293
295
|
message: `内置规则注册表:${report.total} 个资产,${report.zombies.length} 僵尸,${report.orphans.length} 孤儿,${report.overlaps.length} 重叠`,
|
|
294
296
|
};
|
|
295
297
|
}
|
|
298
|
+
/** 检查对抗审查独立性留痕(reviews 的 reviewer_session_id 多轮重复统计——半强制独立 doctor 可追入口)。
|
|
299
|
+
* 纯数据探测:读 .soloforge/reviews/*.json,统计每 review 多轮 reviewer_session_id 重复(疑似同 session 自审,确认偏见风险),不写盘。 */
|
|
300
|
+
function checkReviews(projectRoot) {
|
|
301
|
+
const reviewsDir = join(projectRoot, ".soloforge", "reviews");
|
|
302
|
+
if (!existsSync(reviewsDir)) {
|
|
303
|
+
return { total: 0, with_reviewer_id: 0, duplicate_session_reviews: 0, duplicate_sessions: [], message: "无对抗审查记录" };
|
|
304
|
+
}
|
|
305
|
+
let total = 0;
|
|
306
|
+
let withReviewerId = 0;
|
|
307
|
+
let duplicateReviews = 0;
|
|
308
|
+
const dupSessions = [];
|
|
309
|
+
for (const f of readdirSync(reviewsDir)) {
|
|
310
|
+
if (!f.endsWith(".json"))
|
|
311
|
+
continue;
|
|
312
|
+
let rec;
|
|
313
|
+
try {
|
|
314
|
+
rec = JSON.parse(readFileSync(join(reviewsDir, f), "utf-8"));
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
total++;
|
|
320
|
+
const sessionIds = (rec.rounds ?? []).map((r) => r?.reviewer_session_id).filter((x) => typeof x === "string");
|
|
321
|
+
if (sessionIds.length > 0)
|
|
322
|
+
withReviewerId++;
|
|
323
|
+
const dup = sessionIds.find((s, i) => sessionIds.indexOf(s) !== i);
|
|
324
|
+
if (dup) {
|
|
325
|
+
duplicateReviews++;
|
|
326
|
+
if (!dupSessions.includes(dup))
|
|
327
|
+
dupSessions.push(dup);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
const parts = [`对抗审查记录 ${total} 个`];
|
|
331
|
+
if (total > 0) {
|
|
332
|
+
parts.push(withReviewerId === 0 ? "⚠️ 均未声明 reviewer_session_id(半强制独立无追溯)" : `${withReviewerId} 个声明了 reviewer_session_id`);
|
|
333
|
+
if (duplicateReviews > 0)
|
|
334
|
+
parts.push(`⚠️ ${duplicateReviews} 个多轮 session 重复(疑似同 session 自审,确认偏见风险)`);
|
|
335
|
+
}
|
|
336
|
+
return { total, with_reviewer_id: withReviewerId, duplicate_session_reviews: duplicateReviews, duplicate_sessions: dupSessions, message: parts.join(",") };
|
|
337
|
+
}
|
|
296
338
|
//# sourceMappingURL=sf_doctor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sf_doctor.js","sourceRoot":"","sources":["../../../src/server/tools/sf_doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sf_doctor.js","sourceRoot":"","sources":["../../../src/server/tools/sf_doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -254,6 +254,7 @@ export declare function handleAdversarialReview(projectRoot: string, task: TaskC
|
|
|
254
254
|
review_mode: string;
|
|
255
255
|
artifact_count: number;
|
|
256
256
|
artifacts: string[];
|
|
257
|
+
references: string[];
|
|
257
258
|
prompt: string;
|
|
258
259
|
next_step: string;
|
|
259
260
|
error?: undefined;
|
|
@@ -264,6 +265,7 @@ export declare function handleAdversarialReview(projectRoot: string, task: TaskC
|
|
|
264
265
|
intersection_findings?: undefined;
|
|
265
266
|
retained_count?: undefined;
|
|
266
267
|
completed?: undefined;
|
|
268
|
+
independence_warning?: undefined;
|
|
267
269
|
rounds_completed?: undefined;
|
|
268
270
|
};
|
|
269
271
|
} | {
|
|
@@ -278,6 +280,7 @@ export declare function handleAdversarialReview(projectRoot: string, task: TaskC
|
|
|
278
280
|
review_mode?: undefined;
|
|
279
281
|
artifact_count?: undefined;
|
|
280
282
|
artifacts?: undefined;
|
|
283
|
+
references?: undefined;
|
|
281
284
|
prompt?: undefined;
|
|
282
285
|
review_status?: undefined;
|
|
283
286
|
sample_k?: undefined;
|
|
@@ -286,6 +289,7 @@ export declare function handleAdversarialReview(projectRoot: string, task: TaskC
|
|
|
286
289
|
intersection_findings?: undefined;
|
|
287
290
|
retained_count?: undefined;
|
|
288
291
|
completed?: undefined;
|
|
292
|
+
independence_warning?: undefined;
|
|
289
293
|
rounds_completed?: undefined;
|
|
290
294
|
};
|
|
291
295
|
} | {
|
|
@@ -304,11 +308,13 @@ export declare function handleAdversarialReview(projectRoot: string, task: TaskC
|
|
|
304
308
|
intersection_findings: ReviewFinding[];
|
|
305
309
|
retained_count: number;
|
|
306
310
|
completed: boolean;
|
|
311
|
+
independence_warning: string | undefined;
|
|
307
312
|
next_step: string;
|
|
308
313
|
mode?: undefined;
|
|
309
314
|
review_mode?: undefined;
|
|
310
315
|
artifact_count?: undefined;
|
|
311
316
|
artifacts?: undefined;
|
|
317
|
+
references?: undefined;
|
|
312
318
|
prompt?: undefined;
|
|
313
319
|
error?: undefined;
|
|
314
320
|
rounds_completed?: undefined;
|
|
@@ -326,12 +332,14 @@ export declare function handleAdversarialReview(projectRoot: string, task: TaskC
|
|
|
326
332
|
errors: number;
|
|
327
333
|
warnings: number;
|
|
328
334
|
};
|
|
335
|
+
independence_warning: string | undefined;
|
|
329
336
|
prompt: string;
|
|
330
337
|
next_step: string;
|
|
331
338
|
mode?: undefined;
|
|
332
339
|
review_mode?: undefined;
|
|
333
340
|
artifact_count?: undefined;
|
|
334
341
|
artifacts?: undefined;
|
|
342
|
+
references?: undefined;
|
|
335
343
|
error?: undefined;
|
|
336
344
|
intersection_count?: undefined;
|
|
337
345
|
intersection_findings?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sf_work.d.ts","sourceRoot":"","sources":["../../../src/server/tools/sf_work.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAML,KAAK,aAAa,EAGnB,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sf_work.d.ts","sourceRoot":"","sources":["../../../src/server/tools/sf_work.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAML,KAAK,aAAa,EAGnB,MAAM,wCAAwC,CAAC;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyC/E,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFrF;AAcD,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACzC,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAxDsE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuH3F;AAED,oBAAoB;AACpB,wBAAsB,SAAS,CAC7B,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACzC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkNjC;AAED;;;kFAGkF;AAClF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACzC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4ChC;AAED,mCAAmC;AACnC,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EACzC,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsR9B;AA0ED;;;;qDAIqD;AACrD,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmIjC"}
|
|
@@ -18,7 +18,7 @@ import { createToolRegistrar } from "./middleware.js";
|
|
|
18
18
|
import { initializeDomainEngines, ALL_CONTRACTS } from "../../domain/index.js";
|
|
19
19
|
import { DomainRegistry } from "../../domain/registry.js";
|
|
20
20
|
import { GateRecordStore } from "../../core/gate_record_store.js";
|
|
21
|
-
import { meetsUpstreamCondition } from "../../core/condition_evaluators.js";
|
|
21
|
+
import { meetsArtifactCondition, meetsUpstreamCondition } from "../../core/condition_evaluators.js";
|
|
22
22
|
import { AdversarialReviewStore, REVIEW_SAMPLE_K, checkSamplingComplete, computeIntersection, countBySeverity, } from "../../core/adversarial_review_store.js";
|
|
23
23
|
import { isTransitionAllowed, detectLoop } from "../../core/domain_transition.js";
|
|
24
24
|
import { getGlobArtifactHash } from "../../core/git_utils.js";
|
|
@@ -52,6 +52,7 @@ const sfWorkSchema = {
|
|
|
52
52
|
round: z.number().optional().describe("对抗审查轮次(1=首轮新建会话;>=2=后续轮,须带 review_id + findings)"),
|
|
53
53
|
review_id: z.string().optional().describe("对抗审查会话 ID(round>=2 必填,首轮返回)"),
|
|
54
54
|
findings: z.array(z.any()).optional().describe("对抗审查本轮发现(round>=2 客户端结构化提交:[{severity:'error|warning|info', artifact, location, quote, issue, suggestion}])"),
|
|
55
|
+
reviewer_session_id: z.string().optional().describe("审查者 session/agent 标识(round>=2 声明,半强制独立:每轮传独立 subagent/新 session 的 ID,多轮须不同 + ≠产出 session,引擎留痕可追)"),
|
|
55
56
|
};
|
|
56
57
|
// 缓存域引擎注册表(每个 projectRoot 一个)
|
|
57
58
|
const registryCache = new Map();
|
|
@@ -804,6 +805,10 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
804
805
|
if (round <= 1) {
|
|
805
806
|
const mode = artifactKind ? "per_artifact" : "cross_artifact";
|
|
806
807
|
const artifacts = await collectReviewArtifacts(projectRoot, mode, artifactKind);
|
|
808
|
+
// per 模式收集 target 的承接对照素材(requires 上游 + companion + references)——审查者对照验证承接
|
|
809
|
+
const references = mode === "per_artifact" && artifactKind
|
|
810
|
+
? collectReviewReferences(artifactKind, task, projectRoot)
|
|
811
|
+
: [];
|
|
807
812
|
const reviewId = store.generateReviewId();
|
|
808
813
|
const now = Date.now();
|
|
809
814
|
const record = {
|
|
@@ -812,6 +817,7 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
812
817
|
mode,
|
|
813
818
|
artifact_path: mode === "per_artifact" ? artifactKind : undefined, // per_artifact 模式此字段存 artifact **kind**(非文件路径);④门禁 reviewedKinds 据此比 verified_artifacts.kind——名实澄清(domain/core 审查),改存储格式需同步 ④比较+迁移旧记录
|
|
814
819
|
artifacts,
|
|
820
|
+
references,
|
|
815
821
|
rounds: [],
|
|
816
822
|
total_rounds: 0,
|
|
817
823
|
completed: false,
|
|
@@ -822,7 +828,7 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
822
828
|
updated_at: now,
|
|
823
829
|
};
|
|
824
830
|
await store.create(record);
|
|
825
|
-
const prompt = buildReviewPrompt(artifacts, mode, "");
|
|
831
|
+
const prompt = buildReviewPrompt(artifacts, mode, "", references);
|
|
826
832
|
return {
|
|
827
833
|
result: {
|
|
828
834
|
success: true,
|
|
@@ -833,8 +839,9 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
833
839
|
review_mode: mode === "per_artifact" ? "per-artifact 单产物深度对抗审查" : "cross-artifact 跨产物一致性对抗审查",
|
|
834
840
|
artifact_count: artifacts.length,
|
|
835
841
|
artifacts,
|
|
842
|
+
references,
|
|
836
843
|
prompt,
|
|
837
|
-
next_step: `用独立 session/subagent 执行上述 prompt(勿在产出产物的同一 session 审查,避免确认偏见)。审查完把 findings 结构化带回:sf_work action="adversarial_review" round=2 review_id="${reviewId}" findings=[{severity,artifact,location,quote,issue,suggestion},...]`,
|
|
844
|
+
next_step: `用独立 session/subagent 执行上述 prompt(勿在产出产物的同一 session 审查,避免确认偏见)。审查完把 findings 结构化带回:sf_work action="adversarial_review" round=2 review_id="${reviewId}" reviewer_session_id="<本轮独立 session/agent ID>" findings=[{severity,artifact,location,quote,issue,suggestion},...]`,
|
|
838
845
|
},
|
|
839
846
|
};
|
|
840
847
|
}
|
|
@@ -845,11 +852,13 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
845
852
|
}
|
|
846
853
|
const findings = normalizeFindings(args.findings);
|
|
847
854
|
const { error_count, warning_count } = countBySeverity(findings);
|
|
855
|
+
const reviewerSessionId = args.reviewer_session_id;
|
|
848
856
|
const roundRecord = {
|
|
849
857
|
round,
|
|
850
858
|
findings,
|
|
851
859
|
error_count,
|
|
852
860
|
warning_count,
|
|
861
|
+
reviewer_session_id: reviewerSessionId,
|
|
853
862
|
reviewed_at: Date.now(),
|
|
854
863
|
};
|
|
855
864
|
// 原子追加(per-reviewId 锁,防并发 reviewer 覆盖——原 read-push-write 无锁致后者覆盖前者,K-sample 交集算在子集上)
|
|
@@ -857,6 +866,14 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
857
866
|
if (!record) {
|
|
858
867
|
return { result: { success: false, error: `review_id ${reviewId} 不存在(可能跨会话丢失)`, next_step: "review_id 跨会话丢失,重新 sf_work action=\"adversarial_review\" round=1(不传 review_id)建新会话" } };
|
|
859
868
|
}
|
|
869
|
+
// 半强制独立校验:多轮 reviewer_session_id 须不同(声明独立,留痕不阻断——可伪造,纯编排边界,真独立靠客户端配合)
|
|
870
|
+
const sessionIds = record.rounds.map((r) => r.reviewer_session_id).filter((x) => Boolean(x));
|
|
871
|
+
const dup = sessionIds.find((s, i) => sessionIds.indexOf(s) !== i);
|
|
872
|
+
const independence_warning = !reviewerSessionId
|
|
873
|
+
? "⚠️ 未声明 reviewer_session_id(半强制独立:建议每轮传独立 subagent/session 标识,便于追溯独立性)"
|
|
874
|
+
: dup
|
|
875
|
+
? `⚠️ 半强制独立告警:reviewer_session_id="${dup}" 在多轮重复,疑似同 session 自审(确认偏见风险)。引擎不验真(纯编排),已留痕可追溯——每轮应用独立 subagent/新 session`
|
|
876
|
+
: undefined;
|
|
860
877
|
const k = record.sample_k ?? REVIEW_SAMPLE_K;
|
|
861
878
|
// K 次独立采样完成 → 聚合取交集,达标(findings 留痕不阻断)
|
|
862
879
|
if (checkSamplingComplete(record.rounds, k)) {
|
|
@@ -880,13 +897,14 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
880
897
|
intersection_findings: intersection,
|
|
881
898
|
retained_count: record.retained_findings.length,
|
|
882
899
|
completed: true,
|
|
900
|
+
independence_warning,
|
|
883
901
|
next_step: `对抗审查完成(${k} 次独立采样,交集 ${intersection.length} 条发现)。error 留痕不阻断,可继续下一产物或切换域。`,
|
|
884
902
|
},
|
|
885
903
|
};
|
|
886
904
|
}
|
|
887
905
|
// 未完成 K 轮 → 继续(每轮独立,不注入前轮反馈,保独立性)
|
|
888
906
|
await store.write(record);
|
|
889
|
-
const prompt = buildReviewPrompt(record.artifacts, record.mode, "");
|
|
907
|
+
const prompt = buildReviewPrompt(record.artifacts, record.mode, "", record.references);
|
|
890
908
|
return {
|
|
891
909
|
result: {
|
|
892
910
|
success: true,
|
|
@@ -897,19 +915,40 @@ export async function handleAdversarialReview(projectRoot, task, args, _taskCont
|
|
|
897
915
|
rounds_completed: record.rounds.length,
|
|
898
916
|
sample_k: k,
|
|
899
917
|
round_summary: { errors: error_count, warnings: warning_count },
|
|
918
|
+
independence_warning,
|
|
900
919
|
prompt,
|
|
901
|
-
next_step: `已完成 ${record.rounds.length}/${k} 轮独立采样。用全新独立 session 执行上述 prompt
|
|
920
|
+
next_step: `已完成 ${record.rounds.length}/${k} 轮独立采样。用全新独立 session/subagent 执行上述 prompt(不参考前轮结论,保持独立性;传 reviewer_session_id 声明本轮独立 session 标识),完成后带回 findings:sf_work action="adversarial_review" round=${round + 1} review_id="${reviewId}" reviewer_session_id="<本轮独立 session ID>" findings=[...]`,
|
|
902
921
|
},
|
|
903
922
|
};
|
|
904
923
|
}
|
|
924
|
+
/** 解析产物路径模式为实际文件相对路径列表。
|
|
925
|
+
* glob 模式(如 docs/analyze/<端>/pages/<页>-原型说明.md 多端多页)展开为全部匹配文件;
|
|
926
|
+
* 字面路径走 existsSync。照搬 loadUpstreamContent 三目——修原 collectReviewArtifacts 用 existsSync
|
|
927
|
+
* 对含 * 路径恒 false 致 prototype_spec 永不进审查清单的不一致 bug。 */
|
|
928
|
+
function resolveArtifactPaths(projectRoot, pattern) {
|
|
929
|
+
return containsGlob(pattern)
|
|
930
|
+
? resolveArtifactsByGlob(projectRoot, pattern)
|
|
931
|
+
: (existsSync(join(projectRoot, pattern)) ? [pattern] : []);
|
|
932
|
+
}
|
|
933
|
+
/** 跨域查找产物声明(去重 collectReviewArtifacts / loadUpstreamContent 等 produces.find 内联)。 */
|
|
934
|
+
function findArtifactByKind(kind) {
|
|
935
|
+
for (const c of ALL_CONTRACTS) {
|
|
936
|
+
const a = c.produces.find((p) => p.kind === kind);
|
|
937
|
+
if (a)
|
|
938
|
+
return { contract: c, artifact: a };
|
|
939
|
+
}
|
|
940
|
+
return undefined;
|
|
941
|
+
}
|
|
905
942
|
/** 收集审查产物:per=指定单产物 / cross=所有域所有已产出 docs/ 产物;二者都额外收集研讨记录(审查充分性维度) */
|
|
906
943
|
async function collectReviewArtifacts(projectRoot, mode, artifactKind) {
|
|
907
944
|
const artifacts = [];
|
|
908
945
|
if (mode === "per_artifact" && artifactKind) {
|
|
909
946
|
for (const c of ALL_CONTRACTS) {
|
|
910
947
|
const p = c.produces.find((a) => a.kind === artifactKind);
|
|
911
|
-
if (p && p.path_pattern.startsWith("docs/")
|
|
912
|
-
|
|
948
|
+
if (p && p.path_pattern.startsWith("docs/")) {
|
|
949
|
+
for (const path of resolveArtifactPaths(projectRoot, p.path_pattern)) {
|
|
950
|
+
artifacts.push(`${path}(${c.name}/${p.kind})`);
|
|
951
|
+
}
|
|
913
952
|
}
|
|
914
953
|
}
|
|
915
954
|
}
|
|
@@ -918,8 +957,8 @@ async function collectReviewArtifacts(projectRoot, mode, artifactKind) {
|
|
|
918
957
|
for (const p of c.produces) {
|
|
919
958
|
if (!p.path_pattern.startsWith("docs/"))
|
|
920
959
|
continue;
|
|
921
|
-
|
|
922
|
-
artifacts.push(`${
|
|
960
|
+
for (const path of resolveArtifactPaths(projectRoot, p.path_pattern)) {
|
|
961
|
+
artifacts.push(`${path}(${c.name}/${p.kind})`);
|
|
923
962
|
}
|
|
924
963
|
}
|
|
925
964
|
}
|
|
@@ -928,6 +967,38 @@ async function collectReviewArtifacts(projectRoot, mode, artifactKind) {
|
|
|
928
967
|
await collectDeliberationRecords(projectRoot, artifacts);
|
|
929
968
|
return artifacts;
|
|
930
969
|
}
|
|
970
|
+
/** per 模式收集 target 产物的承接对照素材(requires 上游 + companion_files + references)。
|
|
971
|
+
* 审查者据此对照验证 target 是否真承接上游意图——**勿审素材本身**(承接是关系判断,需两端对照)。
|
|
972
|
+
* requires.when 用 meetsArtifactCondition 评估(scope 缺失=false:旧任务/无 scope 不带条件上游,
|
|
973
|
+
* 与 observer/design engine 同源)。路径走 resolveArtifactPaths 展开 glob。 */
|
|
974
|
+
function collectReviewReferences(target, task, projectRoot) {
|
|
975
|
+
const found = findArtifactByKind(target);
|
|
976
|
+
if (!found)
|
|
977
|
+
return [];
|
|
978
|
+
const { artifact } = found;
|
|
979
|
+
const refs = [];
|
|
980
|
+
for (const req of artifact.requires ?? []) {
|
|
981
|
+
if (!meetsArtifactCondition({ condition: req.when }, task.scope))
|
|
982
|
+
continue;
|
|
983
|
+
const up = findArtifactByKind(req.kind);
|
|
984
|
+
if (!up)
|
|
985
|
+
continue;
|
|
986
|
+
for (const path of resolveArtifactPaths(projectRoot, up.artifact.path_pattern)) {
|
|
987
|
+
refs.push(`${path}(上游·承接对照)`);
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
for (const comp of artifact.companion_files ?? []) {
|
|
991
|
+
for (const path of resolveArtifactPaths(projectRoot, comp)) {
|
|
992
|
+
refs.push(`${path}(附件·对照)`);
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
for (const ref of artifact.references ?? []) {
|
|
996
|
+
for (const path of resolveArtifactPaths(projectRoot, ref)) {
|
|
997
|
+
refs.push(`${path}(引用·对照)`);
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
return refs;
|
|
1001
|
+
}
|
|
931
1002
|
/** 扫描 docs/deliberation/ 收集研讨记录(条件触发的研讨留痕,cross 审查复核充分性) */
|
|
932
1003
|
async function collectDeliberationRecords(projectRoot, artifacts) {
|
|
933
1004
|
const { readdirSync, statSync } = await import("node:fs");
|
|
@@ -951,7 +1022,7 @@ async function collectDeliberationRecords(projectRoot, artifacts) {
|
|
|
951
1022
|
/** 组装多利益方独立对抗审查 prompt。
|
|
952
1023
|
* 5 方(用户/攻击者/维护者/性能/合规)各自独立目标函数,审查前不得互参,最后交叉汇总。
|
|
953
1024
|
* K 次独立采样语义写进 prompt:每轮独立不互参,完成后取多数交集。 */
|
|
954
|
-
function buildReviewPrompt(artifacts, mode, prevFeedback) {
|
|
1025
|
+
function buildReviewPrompt(artifacts, mode, prevFeedback, references) {
|
|
955
1026
|
const modeLabel = mode === "per_artifact" ? "per-artifact 单产物深度" : "cross-artifact 跨产物一致性";
|
|
956
1027
|
const extraDim = mode === "cross_artifact"
|
|
957
1028
|
? `### 跨产物一致性(cross 专项)
|
|
@@ -963,7 +1034,11 @@ function buildReviewPrompt(artifacts, mode, prevFeedback) {
|
|
|
963
1034
|
- **研讨记录充分性**:复杂产物的研讨记录(docs/deliberation/)若全是"无疑问一行举证"——质疑:这个点真无疑问吗?产出是否真承接研讨结论?`
|
|
964
1035
|
: `### 单产物内部深度(per 专项)
|
|
965
1036
|
- 该产物内部逻辑自洽、章节完整、无空章节/TODO/占位符
|
|
966
|
-
- 按产物类型重点关注:API 文档→字段映射与 schema 对齐;架构→决策依据/回滚/兼容;测试→REQ
|
|
1037
|
+
- 按产物类型重点关注:API 文档→字段映射与 schema 对齐;架构→决策依据/回滚/兼容;测试→REQ 覆盖/可执行性
|
|
1038
|
+
- **承接对照**:对照下方"承接对照素材"验证 target 是否真承接上游意图(需求覆盖 / 原型 UI 约束 / 数据契约 / 附件一致),勿审素材本身`;
|
|
1039
|
+
const referencesSection = references && references.length > 0
|
|
1040
|
+
? `\n## 承接对照素材(用于验证承接,**勿审素材本身**)\n对照下列上游 / 附件 / 引用,验证 target 是否真承接(未承接 / 承接错位 / 凭空发挥 → 记 error)。**不要挑这些素材自身的毛病**——它们各自的 per 审查负责。\n${references.map((r) => `- \`${r}\``).join("\n")}\n`
|
|
1041
|
+
: "";
|
|
967
1042
|
const feedbackSection = prevFeedback
|
|
968
1043
|
? `\n## ⚠️ 上轮审查发现(必须先验证是否已修复,再继续找新问题)\n${prevFeedback}\n`
|
|
969
1044
|
: "";
|
|
@@ -973,7 +1048,7 @@ function buildReviewPrompt(artifacts, mode, prevFeedback) {
|
|
|
973
1048
|
|
|
974
1049
|
## 审查范围
|
|
975
1050
|
${artifacts.length > 0 ? artifacts.map((a) => `- \`${a}\``).join("\n") : "(暂无已产出产物,先产出再审查,本轮返回空 findings)"}
|
|
976
|
-
|
|
1051
|
+
${referencesSection}
|
|
977
1052
|
## 多利益方独立对抗(每方独立审查,审查前不得参考他方结论,最后才交叉汇总)
|
|
978
1053
|
|
|
979
1054
|
### 用户方审查
|