fix: align report technique audit evidence
Staging Backend Quality Gate / validate (push) Successful in 10m37s
Staging Backend Quality Gate / publish (push) Has been cancelled

This commit is contained in:
Jesse_Chen
2026-08-10 17:18:52 +08:00
parent 455917a870
commit 07ea504e91
2 changed files with 68 additions and 25 deletions
@@ -452,6 +452,40 @@ test("assembled document passes the canonical server parse with a D1 of 12 house
);
});
test("technique audit reflects final evidence status and narrative usage", () => {
const workflow = pythonStyleChartPayload() as Record<string, unknown>;
const machinePacket = workflow.machine_evidence_packet as Record<string, unknown>;
const sections = machinePacket.sections as Record<string, Record<string, unknown>>;
sections.external_oracle_status.status = "official_blocked";
const packet = buildPacket({ workflow });
assert.deepEqual(packet.blockedTechniques, []);
const output = agentOutput();
const blockedRef = packet.evidenceRefs.find((ref) => ref.technique === "D2");
assert.ok(blockedRef);
output.thematicNarrative[0].evidenceRefs.push(blockedRef.id);
const document = assembleReportDocument({
reportId: "22222222-2222-4222-8222-222222222222",
generatedAt: "2026-08-06T00:00:00.000Z",
packet,
agentOutput: output,
});
const auditById = new Map(document.evidenceAppendix.techniqueAudit.map((row) => [row.id, row]));
const referencedIds = new Set(document.thematicNarrative.flatMap((section) => section.evidenceRefs));
assert.ok([...referencedIds].every((id) => auditById.get(id)?.used === true));
assert.equal(document.evidenceAppendix.techniqueAudit.find((row) => row.techniqueName === "D1")?.status, "verified");
assert.equal(document.evidenceAppendix.techniqueAudit.find((row) => row.techniqueName === "D2")?.status, "blocked");
assert.match(
document.evidenceAppendix.techniqueAudit.find((row) => row.techniqueName === "D2")?.notes ?? "",
/未返回本次计算数据/,
);
const external = document.evidenceAppendix.techniqueAudit.find(
(row) => row.techniqueName === "external_oracle_status",
);
assert.equal(external?.status, "blocked");
assert.match(external?.notes ?? "", /官方外部引擎本次未验证或不可用/);
});
test("D9/D10 charts are omitted when no real divisional houses exist", () => {
const workflow = pythonStyleChartPayload() as Record<string, unknown>;
const chart = workflow.chart as Record<string, unknown>;