audit-tools 0.42.0 → 0.43.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 (261) hide show
  1. package/dispatch/merge-results.mjs +229 -140
  2. package/dispatch/validate-result.mjs +98 -40
  3. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  4. package/dist/audit/cli/conceptualDispatch.js +35 -3
  5. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  6. package/dist/audit/cli/dispatch/hostHandoff.d.ts +9 -1
  7. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  8. package/dist/audit/cli/dispatch/hostHandoff.js +94 -38
  9. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  10. package/dist/audit/cli/nextStepCommand.d.ts +64 -0
  11. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  12. package/dist/audit/cli/nextStepCommand.js +877 -783
  13. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  14. package/dist/audit/cli/nextStepHelpers.d.ts +12 -0
  15. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  16. package/dist/audit/cli/nextStepHelpers.js +34 -1
  17. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  18. package/dist/audit/cli/steps.d.ts +2 -2
  19. package/dist/audit/extractors/graph.d.ts +28 -2
  20. package/dist/audit/extractors/graph.d.ts.map +1 -1
  21. package/dist/audit/extractors/graph.js +122 -11
  22. package/dist/audit/extractors/graph.js.map +1 -1
  23. package/dist/audit/extractors/graphRoutes.d.ts +8 -0
  24. package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
  25. package/dist/audit/extractors/graphRoutes.js +71 -4
  26. package/dist/audit/extractors/graphRoutes.js.map +1 -1
  27. package/dist/audit/io/artifacts.d.ts +55 -0
  28. package/dist/audit/io/artifacts.d.ts.map +1 -1
  29. package/dist/audit/io/artifacts.js +189 -12
  30. package/dist/audit/io/artifacts.js.map +1 -1
  31. package/dist/audit/io/toolingManifest.d.ts +11 -0
  32. package/dist/audit/io/toolingManifest.d.ts.map +1 -1
  33. package/dist/audit/io/toolingManifest.js +13 -3
  34. package/dist/audit/io/toolingManifest.js.map +1 -1
  35. package/dist/audit/orchestrator/advance.d.ts +64 -0
  36. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  37. package/dist/audit/orchestrator/advance.js +191 -57
  38. package/dist/audit/orchestrator/advance.js.map +1 -1
  39. package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -1
  40. package/dist/audit/orchestrator/charterClarificationExecutor.js +55 -21
  41. package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -1
  42. package/dist/audit/orchestrator/flowCoverage.d.ts.map +1 -1
  43. package/dist/audit/orchestrator/flowCoverage.js +7 -10
  44. package/dist/audit/orchestrator/flowCoverage.js.map +1 -1
  45. package/dist/audit/orchestrator/flowPlanning.d.ts +54 -1
  46. package/dist/audit/orchestrator/flowPlanning.d.ts.map +1 -1
  47. package/dist/audit/orchestrator/flowPlanning.js +77 -18
  48. package/dist/audit/orchestrator/flowPlanning.js.map +1 -1
  49. package/dist/audit/orchestrator/flowRequeue.d.ts.map +1 -1
  50. package/dist/audit/orchestrator/flowRequeue.js +6 -10
  51. package/dist/audit/orchestrator/flowRequeue.js.map +1 -1
  52. package/dist/audit/orchestrator/partitionTaskGraph.d.ts.map +1 -1
  53. package/dist/audit/orchestrator/partitionTaskGraph.js +2 -2
  54. package/dist/audit/orchestrator/partitionTaskGraph.js.map +1 -1
  55. package/dist/audit/orchestrator/requeueFold.d.ts.map +1 -1
  56. package/dist/audit/orchestrator/requeueFold.js +18 -5
  57. package/dist/audit/orchestrator/requeueFold.js.map +1 -1
  58. package/dist/audit/orchestrator/staleness.d.ts +24 -1
  59. package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
  60. package/dist/audit/orchestrator/staleness.js +147 -16
  61. package/dist/audit/orchestrator/staleness.js.map +1 -1
  62. package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts +26 -0
  63. package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts.map +1 -1
  64. package/dist/audit/orchestrator/syntaxResolutionExecutor.js +97 -12
  65. package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
  66. package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
  67. package/dist/audit/orchestrator/taskBuilder.js +111 -21
  68. package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
  69. package/dist/audit/orchestrator/trivialAudit.d.ts +17 -1
  70. package/dist/audit/orchestrator/trivialAudit.d.ts.map +1 -1
  71. package/dist/audit/orchestrator/trivialAudit.js +31 -4
  72. package/dist/audit/orchestrator/trivialAudit.js.map +1 -1
  73. package/dist/audit/reporting/synthesis.d.ts.map +1 -1
  74. package/dist/audit/reporting/synthesis.js +2 -3
  75. package/dist/audit/reporting/synthesis.js.map +1 -1
  76. package/dist/audit/reporting/workBlocks.d.ts.map +1 -1
  77. package/dist/audit/reporting/workBlocks.js +4 -38
  78. package/dist/audit/reporting/workBlocks.js.map +1 -1
  79. package/dist/audit/types/analyzerCapability.d.ts +6 -6
  80. package/dist/audit/types/charterRegister.d.ts +30 -12
  81. package/dist/audit/types/charterRegister.d.ts.map +1 -1
  82. package/dist/audit/types/charterRegister.js +22 -9
  83. package/dist/audit/types/charterRegister.js.map +1 -1
  84. package/dist/audit/validation/anchorGrounding.d.ts.map +1 -1
  85. package/dist/audit/validation/anchorGrounding.js +17 -0
  86. package/dist/audit/validation/anchorGrounding.js.map +1 -1
  87. package/dist/audit/validation/auditResults.d.ts +17 -0
  88. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  89. package/dist/audit/validation/auditResults.js +50 -17
  90. package/dist/audit/validation/auditResults.js.map +1 -1
  91. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts +48 -0
  92. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +1 -1
  93. package/dist/remediate/contractPipeline/cyclicSeamResolution.js +128 -0
  94. package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +1 -1
  95. package/dist/remediate/contractPipeline/derive.d.ts +8 -5
  96. package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
  97. package/dist/remediate/contractPipeline/derive.js +8 -16
  98. package/dist/remediate/contractPipeline/derive.js.map +1 -1
  99. package/dist/remediate/index.d.ts.map +1 -1
  100. package/dist/remediate/index.js +43 -2
  101. package/dist/remediate/index.js.map +1 -1
  102. package/dist/remediate/intent/intentOrdering.d.ts +13 -5
  103. package/dist/remediate/intent/intentOrdering.d.ts.map +1 -1
  104. package/dist/remediate/intent/intentOrdering.js +56 -25
  105. package/dist/remediate/intent/intentOrdering.js.map +1 -1
  106. package/dist/remediate/phases/close.d.ts +57 -2
  107. package/dist/remediate/phases/close.d.ts.map +1 -1
  108. package/dist/remediate/phases/close.js +260 -36
  109. package/dist/remediate/phases/close.js.map +1 -1
  110. package/dist/remediate/state/disposition.d.ts +26 -4
  111. package/dist/remediate/state/disposition.d.ts.map +1 -1
  112. package/dist/remediate/state/itemStatus.d.ts +33 -6
  113. package/dist/remediate/state/itemStatus.d.ts.map +1 -1
  114. package/dist/remediate/state/itemStatus.js +154 -39
  115. package/dist/remediate/state/itemStatus.js.map +1 -1
  116. package/dist/remediate/state/types.d.ts +41 -2
  117. package/dist/remediate/state/types.d.ts.map +1 -1
  118. package/dist/remediate/state/types.js.map +1 -1
  119. package/dist/remediate/steps/contractPipeline.d.ts +287 -15
  120. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  121. package/dist/remediate/steps/contractPipeline.js +1664 -987
  122. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  123. package/dist/remediate/steps/contractPipelinePrompts.js +1 -1
  124. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  125. package/dist/remediate/steps/dispatch/hostHandoff.d.ts +137 -2
  126. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  127. package/dist/remediate/steps/dispatch/hostHandoff.js +713 -59
  128. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  129. package/dist/remediate/steps/finalGate.d.ts +136 -37
  130. package/dist/remediate/steps/finalGate.d.ts.map +1 -1
  131. package/dist/remediate/steps/finalGate.js +120 -86
  132. package/dist/remediate/steps/finalGate.js.map +1 -1
  133. package/dist/remediate/steps/gateCommands.d.ts +8 -0
  134. package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
  135. package/dist/remediate/steps/gateCommands.js +40 -11
  136. package/dist/remediate/steps/gateCommands.js.map +1 -1
  137. package/dist/remediate/steps/nextStep.d.ts +96 -5
  138. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  139. package/dist/remediate/steps/nextStep.js +668 -147
  140. package/dist/remediate/steps/nextStep.js.map +1 -1
  141. package/dist/remediate/steps/types.d.ts +4 -1
  142. package/dist/remediate/steps/types.d.ts.map +1 -1
  143. package/dist/remediate/steps/types.js +10 -0
  144. package/dist/remediate/steps/types.js.map +1 -1
  145. package/dist/remediate/validation/artifacts.d.ts +20 -0
  146. package/dist/remediate/validation/artifacts.d.ts.map +1 -1
  147. package/dist/remediate/validation/artifacts.js +239 -13
  148. package/dist/remediate/validation/artifacts.js.map +1 -1
  149. package/dist/remediate/validation/contractPipelineGates.d.ts +58 -0
  150. package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
  151. package/dist/remediate/validation/contractPipelineGates.js +167 -43
  152. package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
  153. package/dist/shared/analyzers/acquisitionEngine.d.ts +72 -25
  154. package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
  155. package/dist/shared/analyzers/acquisitionEngine.js +149 -15
  156. package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
  157. package/dist/shared/analyzers/binaryAcquisition.d.ts +27 -2
  158. package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
  159. package/dist/shared/analyzers/binaryAcquisition.js +149 -43
  160. package/dist/shared/analyzers/binaryAcquisition.js.map +1 -1
  161. package/dist/shared/analyzers/candidates.d.ts +9 -8
  162. package/dist/shared/analyzers/candidates.d.ts.map +1 -1
  163. package/dist/shared/analyzers/candidates.js +96 -64
  164. package/dist/shared/analyzers/candidates.js.map +1 -1
  165. package/dist/shared/analyzers/normalizeExternal.d.ts +40 -12
  166. package/dist/shared/analyzers/normalizeExternal.d.ts.map +1 -1
  167. package/dist/shared/analyzers/normalizeExternal.js +74 -18
  168. package/dist/shared/analyzers/normalizeExternal.js.map +1 -1
  169. package/dist/shared/analyzers/rubocop.d.ts +14 -13
  170. package/dist/shared/analyzers/rubocop.d.ts.map +1 -1
  171. package/dist/shared/analyzers/rubocop.js +29 -6
  172. package/dist/shared/analyzers/rubocop.js.map +1 -1
  173. package/dist/shared/analyzers/types.d.ts +196 -13
  174. package/dist/shared/analyzers/types.d.ts.map +1 -1
  175. package/dist/shared/analyzers/types.js +122 -9
  176. package/dist/shared/analyzers/types.js.map +1 -1
  177. package/dist/shared/decompose/charterClarification.d.ts +12 -1
  178. package/dist/shared/decompose/charterClarification.d.ts.map +1 -1
  179. package/dist/shared/decompose/charterClarification.js +11 -4
  180. package/dist/shared/decompose/charterClarification.js.map +1 -1
  181. package/dist/shared/decompose/charterExtraction.d.ts +20 -10
  182. package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
  183. package/dist/shared/decompose/charterExtraction.js +52 -23
  184. package/dist/shared/decompose/charterExtraction.js.map +1 -1
  185. package/dist/shared/decompose/contentCoherence.d.ts +43 -2
  186. package/dist/shared/decompose/contentCoherence.d.ts.map +1 -1
  187. package/dist/shared/decompose/contentCoherence.js +109 -5
  188. package/dist/shared/decompose/contentCoherence.js.map +1 -1
  189. package/dist/shared/decompose/modularity.d.ts +17 -0
  190. package/dist/shared/decompose/modularity.d.ts.map +1 -1
  191. package/dist/shared/decompose/modularity.js +78 -3
  192. package/dist/shared/decompose/modularity.js.map +1 -1
  193. package/dist/shared/decompose/workBlockSeams.d.ts +45 -0
  194. package/dist/shared/decompose/workBlockSeams.d.ts.map +1 -0
  195. package/dist/shared/decompose/workBlockSeams.js +82 -0
  196. package/dist/shared/decompose/workBlockSeams.js.map +1 -0
  197. package/dist/shared/index.d.ts +4 -3
  198. package/dist/shared/index.d.ts.map +1 -1
  199. package/dist/shared/index.js +4 -2
  200. package/dist/shared/index.js.map +1 -1
  201. package/dist/shared/intent/freeFormIntentInterpreter.d.ts +12 -2
  202. package/dist/shared/intent/freeFormIntentInterpreter.d.ts.map +1 -1
  203. package/dist/shared/intent/freeFormIntentInterpreter.js +27 -22
  204. package/dist/shared/intent/freeFormIntentInterpreter.js.map +1 -1
  205. package/dist/shared/intent/pathScope.d.ts +12 -1
  206. package/dist/shared/intent/pathScope.d.ts.map +1 -1
  207. package/dist/shared/intent/pathScope.js +56 -19
  208. package/dist/shared/intent/pathScope.js.map +1 -1
  209. package/dist/shared/intent/sharedIntentData.d.ts +19 -1
  210. package/dist/shared/intent/sharedIntentData.d.ts.map +1 -1
  211. package/dist/shared/intent/sharedIntentData.js +33 -8
  212. package/dist/shared/intent/sharedIntentData.js.map +1 -1
  213. package/dist/shared/io/fileLock.d.ts +12 -0
  214. package/dist/shared/io/fileLock.d.ts.map +1 -1
  215. package/dist/shared/io/fileLock.js +48 -5
  216. package/dist/shared/io/fileLock.js.map +1 -1
  217. package/dist/shared/io/json.d.ts +13 -0
  218. package/dist/shared/io/json.d.ts.map +1 -1
  219. package/dist/shared/io/json.js +19 -1
  220. package/dist/shared/io/json.js.map +1 -1
  221. package/dist/shared/reporting/auditDeliverable.d.ts.map +1 -1
  222. package/dist/shared/reporting/auditDeliverable.js +8 -3
  223. package/dist/shared/reporting/auditDeliverable.js.map +1 -1
  224. package/dist/shared/steps/stepEmissionScaffold.d.ts +69 -0
  225. package/dist/shared/steps/stepEmissionScaffold.d.ts.map +1 -0
  226. package/dist/shared/steps/stepEmissionScaffold.js +83 -0
  227. package/dist/shared/steps/stepEmissionScaffold.js.map +1 -0
  228. package/dist/shared/submission/handRecovery.d.ts.map +1 -1
  229. package/dist/shared/submission/handRecovery.js +69 -4
  230. package/dist/shared/submission/handRecovery.js.map +1 -1
  231. package/dist/shared/submission/submissionIdentity.d.ts +10 -1
  232. package/dist/shared/submission/submissionIdentity.d.ts.map +1 -1
  233. package/dist/shared/submission/submissionIdentity.js +12 -3
  234. package/dist/shared/submission/submissionIdentity.js.map +1 -1
  235. package/dist/shared/submission/submissionLedger.d.ts +43 -2
  236. package/dist/shared/submission/submissionLedger.d.ts.map +1 -1
  237. package/dist/shared/submission/submissionLedger.js +50 -7
  238. package/dist/shared/submission/submissionLedger.js.map +1 -1
  239. package/dist/shared/tooling/allowlistedExec.d.ts +9 -0
  240. package/dist/shared/tooling/allowlistedExec.d.ts.map +1 -1
  241. package/dist/shared/tooling/allowlistedExec.js +19 -2
  242. package/dist/shared/tooling/allowlistedExec.js.map +1 -1
  243. package/dist/shared/types/charter.d.ts +24 -0
  244. package/dist/shared/types/charter.d.ts.map +1 -1
  245. package/dist/shared/types/charter.js +9 -0
  246. package/dist/shared/types/charter.js.map +1 -1
  247. package/dist/shared/types/finding.d.ts +105 -53
  248. package/dist/shared/types/finding.d.ts.map +1 -1
  249. package/dist/shared/types/finding.js +38 -11
  250. package/dist/shared/types/finding.js.map +1 -1
  251. package/dist/shared/types/remediationOutcome.d.ts +282 -9
  252. package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
  253. package/dist/shared/types/remediationOutcome.js +174 -1
  254. package/dist/shared/types/remediationOutcome.js.map +1 -1
  255. package/dist/shared/validation/findingsReport.d.ts.map +1 -1
  256. package/dist/shared/validation/findingsReport.js +19 -1
  257. package/dist/shared/validation/findingsReport.js.map +1 -1
  258. package/package.json +2 -1
  259. package/remediate-code.mjs +15 -0
  260. package/wrapper/remediate-code-wrapper-install-hosts.mjs +45 -4
  261. package/wrapper/remediate-code-wrapper-install-renderers.mjs +12 -2
@@ -4,13 +4,159 @@
4
4
  // calibration pass) can see how findings of each lens / file type fared. The
5
5
  // auditor does not consume it automatically.
6
6
  import { z } from "zod";
7
+ // CDC-25: the run's terminal-disposition vocabulary is
8
+ // T = { fixed, verified-already-fixed-at-HEAD, refuted-against-HEAD }. `fixed`
9
+ // already had two persisted encodings (`resolved` / `verified_no_change`);
10
+ // `verified_already_fixed` and `refuted` give the other two members of T their
11
+ // OWN persisted forms, so the distinction the run turns on is expressible in
12
+ // the machine contract itself rather than told apart only by free text (never
13
+ // collapsed onto `verified_no_change` and disambiguated in prose).
7
14
  export const RemediationOutcomeStatusSchema = z.enum([
8
15
  "resolved",
9
16
  "verified_no_change",
10
17
  "inappropriate",
11
18
  "ignored",
12
19
  "blocked",
20
+ "verified_already_fixed",
21
+ "refuted",
13
22
  ]);
23
+ // CDC-28: `evidence.mechanism` is a structural enum, not free text, so RED
24
+ // condition (4)'s second leg — a persisted member CONTRADICTING the recorded
25
+ // mechanism — is a structural comparison (see `mechanismContradictsOutcome`
26
+ // below), never a substring match on English. `read_at_head_verification` is
27
+ // the mechanism that CONFIRMS a finding is already fixed at HEAD;
28
+ // `read_at_head_refutation` is the mechanism that determines a finding is not
29
+ // a real problem. The two are each other's contradiction for exactly the two
30
+ // outcome members (`verified_already_fixed` / `refuted`) that need one.
31
+ export const EVIDENCE_MECHANISM_KINDS = [
32
+ "red_green_test",
33
+ "build_lint_gate",
34
+ "read_at_head_verification",
35
+ "read_at_head_refutation",
36
+ ];
37
+ export const EvidenceMechanismKindSchema = z.enum(EVIDENCE_MECHANISM_KINDS);
38
+ /**
39
+ * The per-finding verification-evidence TRIPLE (INV-ISC-EVIDENCE-EMITTED):
40
+ * `file` (a repo-relative path), `line` (a line or line range), and
41
+ * `mechanism` (the structural enum above). This is the FLOOR of the widened
42
+ * outcome record — a minimum the record must carry for a terminal disposition,
43
+ * not a closed shape that excludes further fields later.
44
+ */
45
+ export const EvidenceSchema = z
46
+ .object({
47
+ file: z.string().min(1),
48
+ line: z.string().min(1),
49
+ mechanism: EvidenceMechanismKindSchema,
50
+ /** Optional human-readable elaboration; never load-bearing for the mechanism-contradiction check. */
51
+ mechanism_detail: z.string().optional(),
52
+ })
53
+ .strict();
54
+ /**
55
+ * Whether `evidence` carries a complete triple (all three of file/line/
56
+ * mechanism present and non-empty). The writer (`buildRemediationOutcomesReport`
57
+ * in `src/remediate/phases/close.ts`) REFUSES to emit a terminal disposition
58
+ * for a finding whose evidence fails this check.
59
+ */
60
+ export function isCompleteEvidence(evidence) {
61
+ return (evidence !== undefined &&
62
+ typeof evidence.file === "string" &&
63
+ evidence.file.length > 0 &&
64
+ typeof evidence.line === "string" &&
65
+ evidence.line.length > 0 &&
66
+ typeof evidence.mechanism === "string" &&
67
+ EVIDENCE_MECHANISM_KINDS.includes(evidence.mechanism));
68
+ }
69
+ /** Names of the evidence-triple parts missing or empty on `evidence` (diagnostic only). */
70
+ export function missingEvidenceParts(evidence) {
71
+ const missing = [];
72
+ if (!evidence || typeof evidence.file !== "string" || evidence.file.length === 0) {
73
+ missing.push("file");
74
+ }
75
+ if (!evidence || typeof evidence.line !== "string" || evidence.line.length === 0) {
76
+ missing.push("line");
77
+ }
78
+ if (!evidence ||
79
+ typeof evidence.mechanism !== "string" ||
80
+ !EVIDENCE_MECHANISM_KINDS.includes(evidence.mechanism)) {
81
+ missing.push("mechanism");
82
+ }
83
+ return missing;
84
+ }
85
+ /**
86
+ * RED condition (4)'s mechanism-contradiction leg (CDC-25 / the W4 witness): a
87
+ * `refuted` outcome whose mechanism is a read-at-HEAD VERIFICATION (confirms
88
+ * already-fixed, not refuted), or a `verified_already_fixed` outcome whose
89
+ * mechanism is a read-at-HEAD REFUTATION, is a WRONG VALUE — not a matter of
90
+ * interpretation. Every other outcome/mechanism pairing is unconstrained by
91
+ * this check (a red-green test or a build/lint gate is neutral evidence for
92
+ * either of the two members).
93
+ */
94
+ export function mechanismContradictsOutcome(outcome, mechanism) {
95
+ if (outcome === "refuted" && mechanism === "read_at_head_verification") {
96
+ return true;
97
+ }
98
+ if (outcome === "verified_already_fixed" && mechanism === "read_at_head_refutation") {
99
+ return true;
100
+ }
101
+ return false;
102
+ }
103
+ // ── The ONE tool-owned gate-outcome vocabulary ───────────────────────────────
104
+ //
105
+ // Declared HERE, in the shared base layer, so every gate family names the three
106
+ // outcomes with the same words and the close/report path can consume one of
107
+ // them without importing a gate implementation. `src/remediate/steps/finalGate.ts`
108
+ // imports `FinalGateOutcomeKind` from this module rather than declaring a second
109
+ // copy — a gate that ran nothing was previously indistinguishable from a green
110
+ // floor precisely because the only thing recorded was a boolean, and two
111
+ // vocabularies for the same three outcomes would reintroduce that by another
112
+ // route.
113
+ /**
114
+ * How a gate EVALUATION ended.
115
+ *
116
+ * `executed` — the command list ran; `passed` is a real verdict.
117
+ * `scoped_out` — the suite does not apply to this target; zero commands ran.
118
+ * `disabled` — a gate was DUE but did not run.
119
+ */
120
+ export const FinalGateOutcomeKindSchema = z.enum([
121
+ "executed",
122
+ "scoped_out",
123
+ "disabled",
124
+ ]);
125
+ /**
126
+ * What the outcomes contract says about the run's tool-owned gate.
127
+ *
128
+ * `outcome` widens the three gate kinds with `absent` — which is NOT a fourth
129
+ * gate kind but the report's own statement that no gate record existed for this
130
+ * run. It is stated rather than inferred: the alternative is silence, and
131
+ * silence about a gate reads as "fine".
132
+ *
133
+ * `passed` is `boolean | null`. Only an `executed` gate carries a verdict; the
134
+ * other three carry `null`, so no consumer of this contract can read a gate
135
+ * that did not run as a green floor.
136
+ */
137
+ export const FinalGateReportSchema = z
138
+ .object({
139
+ outcome: z.union([FinalGateOutcomeKindSchema, z.literal("absent")]),
140
+ passed: z.boolean().nullable(),
141
+ commands_run: z.number(),
142
+ /** Which gate produced it — a phase boundary, or the all-terminal funnel. */
143
+ scope: z.string().optional(),
144
+ /** Why a gate that did not run did not run, or why the record is absent. */
145
+ reason: z.string().optional(),
146
+ recorded_at: z.string().optional(),
147
+ })
148
+ .strict();
149
+ /**
150
+ * The report's statement when no gate record exists. A run that never reached a
151
+ * gate, and a run whose gate record could not be read, both land here — never on
152
+ * a green-shaped default.
153
+ */
154
+ export const ABSENT_FINAL_GATE_REPORT = {
155
+ outcome: "absent",
156
+ passed: null,
157
+ commands_run: 0,
158
+ reason: "no tool-owned gate outcome was recorded for this run",
159
+ };
14
160
  /**
15
161
  * Item C — result of the close-gate mechanical re-verify of an analyzer-born
16
162
  * finding. `verified_mechanically`: the finding's content-anchored lead
@@ -54,9 +200,25 @@ export const RemediationOutcomeSchema = z
54
200
  duration_ms: z.number().optional(),
55
201
  /** Item C — mechanical re-verify verdict for analyzer-born findings. */
56
202
  mechanical_verification: MechanicalVerificationSchema.optional(),
203
+ /**
204
+ * The per-finding verification-evidence triple (INV-ISC-EVIDENCE-EMITTED).
205
+ * Optional at the schema level — a non-terminal (force-closed/blocked)
206
+ * outcome may carry none — but the writer refuses to emit `outcome` as
207
+ * `verified_already_fixed` or `refuted` without a complete one. FLOOR, not
208
+ * a closed shape: pinning these three fields does not exclude later ones.
209
+ */
210
+ evidence: EvidenceSchema.optional(),
211
+ /**
212
+ * The attributing-module stamp (CDC-26): which module recorded this
213
+ * finding's evidence at its own phase. Carried byte-exact from
214
+ * `RemediationItemState.recorded_by_module` through to this record (the
215
+ * ATTRIBUTION ROUND-TRIP) so the 26 INV-COVERAGE joins' condition (3) can
216
+ * still tell which module closed which id.
217
+ */
218
+ recorded_by_module: z.string().optional(),
57
219
  })
58
220
  .strict();
59
- // Full count keyed by every status (not Partial): built by summing all 5
221
+ // Full count keyed by every status (not Partial): built by summing all 7
60
222
  // statuses, so each key is always present. An explicit object literal keeps the
61
223
  // inferred type a complete `Record<RemediationOutcomeStatus, number>` rather
62
224
  // than the Partial that `z.record(enum, …)` would infer (A6 gotcha).
@@ -67,6 +229,8 @@ const RemediationOutcomeCountsSchema = z
67
229
  inappropriate: z.number(),
68
230
  ignored: z.number(),
69
231
  blocked: z.number(),
232
+ verified_already_fixed: z.number(),
233
+ refuted: z.number(),
70
234
  })
71
235
  .strict();
72
236
  // NOT strict: the on-disk remediation-outcomes.json is a superset of this shared
@@ -83,6 +247,15 @@ export const RemediationOutcomesReportSchema = z.object({
83
247
  completed_at: z.string().optional(),
84
248
  /** Milliseconds between aggregate completed_at and started_at. */
85
249
  duration_ms: z.number().optional(),
250
+ /**
251
+ * The run's tool-owned gate outcome. REQUIRED, and never omitted on a run
252
+ * that had no gate: the absent case is written as `{ outcome: "absent" }`, so
253
+ * a reader can distinguish "the floor ran green" from "nothing ran" from "we
254
+ * do not know" — which the outcomes contract previously could not express at
255
+ * all, making a scoped-out or suppressed run's report byte-identical to an
256
+ * executed-green one.
257
+ */
258
+ final_gate: FinalGateReportSchema,
86
259
  outcomes: z.array(RemediationOutcomeSchema),
87
260
  });
88
261
  //# sourceMappingURL=remediationOutcome.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remediationOutcome.js","sourceRoot":"","sources":["../../../src/shared/types/remediationOutcome.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,6EAA6E;AAC7E,6CAA6C;AAE7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IACnD,UAAU;IACV,oBAAoB;IACpB,eAAe;IACf,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAKH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IACrE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,2EAA2E;IAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,+EAA+E;IAC/E,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,8BAA8B;IACvC,4EAA4E;IAC5E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,kEAAkE;IAClE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,mEAAmE;IACnE,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,oEAAoE;IACpE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,oEAAoE;IACpE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,8EAA8E;IAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,wEAAwE;IACxE,uBAAuB,EAAE,4BAA4B,CAAC,QAAQ,EAAE;CACjE,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,yEAAyE;AACzE,gFAAgF;AAChF,6EAA6E;AAC7E,qEAAqE;AACrE,MAAM,8BAA8B,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,iFAAiF;AACjF,mFAAmF;AACnF,gFAAgF;AAChF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,8BAA8B;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,8BAA8B,CAAC,OAAO,EAAE,CAAC;IACvE,oDAAoD;IACpD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,oDAAoD;IACpD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,kEAAkE;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"remediationOutcome.js","sourceRoot":"","sources":["../../../src/shared/types/remediationOutcome.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"findingsReport.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/findingsReport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,eAAO,MAAM,+BAA+B,EAC1C,qCAA8C,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,GAAG,qBAAqB,CAAC;IAC3C,MAAM,EAAE,UAAU,GAAG,sBAAsB,CAAC;IAC5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,qBAAqB,CAAC;IACtC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CAC1D;AAwWD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,IAAI,SAAK,GACR,eAAe,EAAE,CAEnB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAUlF;AAqBD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,gBAAgB,EAAE,SAAS,OAAO,EAAE,GACnC,mBAAmB,CAiJrB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAE9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMnE"}
1
+ {"version":3,"file":"findingsReport.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/findingsReport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,eAAO,MAAM,+BAA+B,EAC1C,qCAA8C,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,GAAG,qBAAqB,CAAC;IAC3C,MAAM,EAAE,UAAU,GAAG,sBAAsB,CAAC;IAC5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,qBAAqB,CAAC;IACtC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CAC1D;AAwWD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,IAAI,SAAK,GACR,eAAe,EAAE,CAEnB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAUlF;AAqBD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,gBAAgB,EAAE,SAAS,OAAO,EAAE,GACnC,mBAAmB,CAoKrB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAE9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMnE"}
@@ -3,6 +3,7 @@
3
3
  * audit-findings.json contract.
4
4
  */
5
5
  import { AuditFindingsReportSchema, } from "../types/finding.js";
6
+ import { workBlockSeamRationale } from "../decompose/workBlockSeams.js";
6
7
  import { severityRank } from "../types/lens.js";
7
8
  import { isRecord, pushValidationIssue } from "./basic.js";
8
9
  export const AUDIT_FINDINGS_CONTRACT_VERSION = "audit-tools/audit-findings/v1alpha1";
@@ -340,7 +341,24 @@ export function projectAuditFindingsReportSubset(value, selectedFindings) {
340
341
  components: componentBlocks.map(({ component }) => component),
341
342
  },
342
343
  work_blocks: workBlocks,
343
- work_block_seams: report.work_block_seams.filter((seam) => seam.block_ids.every((id) => survivingBlockIds.has(id))),
344
+ // A per-file seam narrows to the blocks that survived the projection, and
345
+ // stops being a conflict once fewer than two of them remain. The rationale
346
+ // states the block COUNT, so it is re-derived from the narrowed list rather
347
+ // than carried over — a persisted seam must not contradict itself.
348
+ work_block_seams: report.work_block_seams.flatMap((seam) => {
349
+ const blockIds = [
350
+ ...new Set(seam.block_ids.filter((id) => survivingBlockIds.has(id))),
351
+ ];
352
+ return blockIds.length < 2
353
+ ? []
354
+ : [
355
+ {
356
+ ...seam,
357
+ block_ids: blockIds,
358
+ rationale: workBlockSeamRationale(seam.file, blockIds.length, seam.kind),
359
+ },
360
+ ];
361
+ }),
344
362
  ...(themes === undefined ? {} : { themes }),
345
363
  summary: {
346
364
  ...report.summary,
@@ -1 +1 @@
1
- {"version":3,"file":"findingsReport.js","sourceRoot":"","sources":["../../../src/shared/validation/findingsReport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findingsReport.js","sourceRoot":"","sources":["../../../src/shared/validation/findingsReport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-tools",
3
- "version": "0.42.0",
3
+ "version": "0.43.0",
4
4
  "private": false,
5
5
  "license": "ISC",
6
6
  "description": "Provider-neutral code auditing and remediation workflows for arbitrary repositories.",
@@ -52,6 +52,7 @@
52
52
  "verify:release": "npm run verify:checks && node scripts/shared/run-vitest-gate.mjs && npm run smoke:linked-audit-code && npm run smoke:linked-remediate-code",
53
53
  "check:control-bytes": "node scripts/check-control-bytes.mjs",
54
54
  "check:guard-reach": "node scripts/check-guard-reach.mjs",
55
+ "closeout": "node scripts/render-closeout.mjs",
55
56
  "check:ci-trigger-paths": "node scripts/shared/generate-ci-trigger-paths.mjs --check",
56
57
  "check:deadcode": "knip --no-config-hints",
57
58
  "check:lint": "eslint .",
@@ -82,12 +82,27 @@ function runNpmBuild() {
82
82
  // run its blocking spawnSync and forward the command against a stale/absent
83
83
  // dist before the fallback ever fires (CE-002). The exit-code branch terminates
84
84
  // synchronously, so it never reaches the `return false`.
85
+ /**
86
+ * Emitted on stderr the moment a build is ATTEMPTED, before the build runs.
87
+ *
88
+ * Exported so a test can assert "a build was attempted" against the wrapper's
89
+ * own signal instead of a literal copied into the test. The two signals below it
90
+ * cannot serve that purpose: the spawn-failure message fires only when the spawn
91
+ * itself errors (not when a build runs and fails), and the dist-not-found
92
+ * advisory says "Run: npm run build" on the path where NO build was attempted —
93
+ * so any regex loose enough to match a real build matched the no-build guard too.
94
+ */
95
+ export const BUILD_ATTEMPT_MARKER = "remediate-code: auto-building dist";
96
+
85
97
  export function ensureBuilt({
86
98
  shouldBuild = shouldBuildDist,
87
99
  runBuild = runNpmBuild,
88
100
  applyExit = applyWrapperExitAction,
89
101
  } = {}) {
90
102
  if (!shouldBuild()) return true;
103
+ // UNCONDITIONAL, and before the build: this marks the ATTEMPT, so it must not
104
+ // be conditional on the attempt's outcome.
105
+ process.stderr.write(`${BUILD_ATTEMPT_MARKER}\n`);
91
106
  const result = runBuild();
92
107
  if (result.stdout) process.stderr.write(result.stdout);
93
108
  if (result.stderr) process.stderr.write(result.stderr);
@@ -739,12 +739,29 @@ export async function runHostVerifyChecks(hostKey, { root, assetPaths, hostEntry
739
739
  };
740
740
  }
741
741
 
742
+ // A fixture that matches looksLikeRemediateCodePrompt (legacy.mjs) — seeded
743
+ // into the isolated root below so removeLegacyRemediateCodeSurfaceFiles's
744
+ // unlink branch is actually exercised by this gate, not just by the deploy's
745
+ // own no-op path over an empty root. CP-NODE-21/22: before this fixture, the
746
+ // ONLY automated caller of removeLegacyRemediateCodeSurfaceFiles always
747
+ // deployed into a brand-new root where no legacy surface could exist, so the
748
+ // destructive branch had zero reach from any gate (TST-4c1e8a96 family).
749
+ const LEGACY_SURFACE_FIXTURE_RELATIVE_PATH = join('.claude', 'commands', 'remediate-code.md');
750
+ const LEGACY_SURFACE_FIXTURE_CONTENT =
751
+ '# `/remediate-code`\n\n' +
752
+ 'Conversation-first remediation fixture seeded by verifyHostsIsolated to prove ' +
753
+ 'removeLegacyRemediateCodeSurfaceFiles actually deletes a matching legacy surface ' +
754
+ 'inside this isolated gate, not only in a unit test.\n';
755
+
742
756
  /**
743
757
  * Deploy every host's assets into an ISOLATED throwaway repo root under a
744
758
  * redirected `$HOME`/`USERPROFILE` (so the real user config is never touched),
745
759
  * then re-run each host's `verify()` handler from the SAME INSTALL_HOST_DEFINITIONS
746
760
  * table that drives the deploy. The set of hosts verified is derived from
747
761
  * INSTALL_HOST_ORDER, so adding a host to the table auto-extends verification.
762
+ * Also seeds one legacy-surface fixture before the deploy so the deploy's own
763
+ * call to removeLegacyRemediateCodeSurfaceFiles has something real to delete —
764
+ * see `general_checks` in the returned report.
748
765
  *
749
766
  * Returns a structured report; callers (the `verify:hosts` script, tests) decide
750
767
  * how to surface it. Never mutates the caller's environment beyond restoring the
@@ -758,6 +775,7 @@ export async function runHostVerifyChecks(hostKey, { root, assetPaths, hostEntry
758
775
  * home_dir: string,
759
776
  * repo_root: string,
760
777
  * hosts: { host: string, status: 'ok' | 'error', checks: object[] }[],
778
+ * general_checks: { id: string, status: 'ok' | 'error', summary?: string }[],
761
779
  * }>}
762
780
  */
763
781
  export async function verifyHostsIsolated(options = {}) {
@@ -773,9 +791,29 @@ export async function verifyHostsIsolated(options = {}) {
773
791
 
774
792
  try {
775
793
  await mkdir(isolatedRepoRoot, { recursive: true });
794
+
795
+ const legacyFixturePath = join(isolatedRepoRoot, LEGACY_SURFACE_FIXTURE_RELATIVE_PATH);
796
+ await writeGeneratedMarkdown(legacyFixturePath, LEGACY_SURFACE_FIXTURE_CONTENT);
797
+
776
798
  // Deploy every host surface into the throwaway root from the canonical assets.
799
+ // writeCoreInstallAssets (inside installBootstrap) calls
800
+ // removeLegacyRemediateCodeSurfaceFiles as its last step, so the fixture
801
+ // seeded above is what makes that call's destructive branch fire here.
777
802
  await installBootstrap(['--host', 'all', '--root', isolatedRepoRoot], { quiet: true });
778
803
 
804
+ const generalChecks = [];
805
+ await collectVerifyCheck(generalChecks, 'legacy_surface_cleanup', async () => {
806
+ if (await fileExists(legacyFixturePath)) {
807
+ throw new Error(
808
+ `Seeded legacy-surface fixture was not removed by removeLegacyRemediateCodeSurfaceFiles: ${legacyFixturePath}`,
809
+ );
810
+ }
811
+ return {
812
+ summary: 'The seeded legacy-surface fixture was removed by the deploy, as looksLikeRemediateCodePrompt requires.',
813
+ path: legacyFixturePath,
814
+ };
815
+ });
816
+
779
817
  // Derive expectations from the SAME table the deploy uses: profile → asset
780
818
  // paths → per-host verify(). INSTALL_HOST_ORDER is the source of truth for the
781
819
  // verified host set.
@@ -798,10 +836,12 @@ export async function verifyHostsIsolated(options = {}) {
798
836
  );
799
837
  }
800
838
 
801
- const issueCount = hosts.reduce(
802
- (sum, host) => sum + host.checks.filter((check) => check.status === 'error').length,
803
- 0,
804
- );
839
+ const issueCount =
840
+ generalChecks.filter((check) => check.status === 'error').length +
841
+ hosts.reduce(
842
+ (sum, host) => sum + host.checks.filter((check) => check.status === 'error').length,
843
+ 0,
844
+ );
805
845
 
806
846
  return {
807
847
  status: issueCount > 0 ? 'error' : 'ok',
@@ -810,6 +850,7 @@ export async function verifyHostsIsolated(options = {}) {
810
850
  home_dir: homeDir,
811
851
  repo_root: isolatedRepoRoot,
812
852
  hosts,
853
+ general_checks: generalChecks,
813
854
  };
814
855
  } finally {
815
856
  if (previousHome === undefined) delete process.env.HOME;
@@ -5,8 +5,18 @@
5
5
  * shared `renderHostAsset` helper (`audit-tools/shared`). These functions are
6
6
  * thin wrappers that pass the canonical body through with the right `kind` and
7
7
  * `toolName`; they do NOT re-author per-host loader prose. That makes it
8
- * impossible for a host asset to drift out of sync with the canonical body or
9
- * to embed a wrong in-repo entrypoint. A no-drift guard test enforces this.
8
+ * structurally impossible for an asset RENDERED THIS WAY to drift out of sync
9
+ * with the canonical body or to embed a wrong in-repo entrypoint
10
+ * renderHostAsset is the single source, never a per-host copy.
11
+ *
12
+ * A no-drift guard test enforces that the COMMITTED assets stay in sync with a
13
+ * fresh render of that body, but today it exists only for the audit-code twin
14
+ * (tests/audit/host-asset-renderer-drift.test.ts, which imports
15
+ * wrapper/audit-code-wrapper-install-renderers.mjs — never this file). No
16
+ * equivalent committed-asset drift guard exists yet on the remediate-code side
17
+ * (CP-NODE-22 / OBL-remediate-wrapper-test-reach-inv-3): the render-time
18
+ * structural guarantee above holds regardless, but nothing yet re-checks a
19
+ * committed remediate-code host asset against a fresh render of it.
10
20
  */
11
21
 
12
22
  import { renderHostAsset } from 'audit-tools/shared';