audit-tools 0.52.0 → 0.52.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.
Files changed (258) hide show
  1. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  2. package/dist/audit/cli/auditStep.js +2 -2
  3. package/dist/audit/cli/auditStep.js.map +1 -1
  4. package/dist/audit/cli/charterClarificationPrompt.d.ts +16 -8
  5. package/dist/audit/cli/charterClarificationPrompt.d.ts.map +1 -1
  6. package/dist/audit/cli/charterClarificationPrompt.js +95 -42
  7. package/dist/audit/cli/charterClarificationPrompt.js.map +1 -1
  8. package/dist/audit/cli/charterComparisonPrompt.d.ts +16 -6
  9. package/dist/audit/cli/charterComparisonPrompt.d.ts.map +1 -1
  10. package/dist/audit/cli/charterComparisonPrompt.js +76 -29
  11. package/dist/audit/cli/charterComparisonPrompt.js.map +1 -1
  12. package/dist/audit/cli/charterExtractionPrompt.d.ts +5 -4
  13. package/dist/audit/cli/charterExtractionPrompt.d.ts.map +1 -1
  14. package/dist/audit/cli/charterExtractionPrompt.js +64 -42
  15. package/dist/audit/cli/charterExtractionPrompt.js.map +1 -1
  16. package/dist/audit/cli/charterFidelityPrompt.d.ts +17 -4
  17. package/dist/audit/cli/charterFidelityPrompt.d.ts.map +1 -1
  18. package/dist/audit/cli/charterFidelityPrompt.js +72 -21
  19. package/dist/audit/cli/charterFidelityPrompt.js.map +1 -1
  20. package/dist/audit/cli/dispatch/hostHandoff.d.ts +23 -1
  21. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  22. package/dist/audit/cli/dispatch/hostHandoff.js +204 -41
  23. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  24. package/dist/audit/cli/dispatch/packetFilter.d.ts +8 -0
  25. package/dist/audit/cli/dispatch/packetFilter.d.ts.map +1 -1
  26. package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
  27. package/dist/audit/cli/fanoutLanes.js +20 -4
  28. package/dist/audit/cli/fanoutLanes.js.map +1 -1
  29. package/dist/audit/cli/laneValidators.d.ts +19 -7
  30. package/dist/audit/cli/laneValidators.d.ts.map +1 -1
  31. package/dist/audit/cli/laneValidators.js +73 -18
  32. package/dist/audit/cli/laneValidators.js.map +1 -1
  33. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  34. package/dist/audit/cli/nextStepCommand.js +13 -6
  35. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  36. package/dist/audit/cli/nextStepHelpers.d.ts +25 -2
  37. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  38. package/dist/audit/cli/nextStepHelpers.js +105 -35
  39. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  40. package/dist/audit/cli/recoverSubmissionCommand.d.ts.map +1 -1
  41. package/dist/audit/cli/recoverSubmissionCommand.js +89 -4
  42. package/dist/audit/cli/recoverSubmissionCommand.js.map +1 -1
  43. package/dist/audit/cli/sampleRunCommand.d.ts +10 -0
  44. package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -1
  45. package/dist/audit/cli/semanticReviewStep.d.ts +4 -4
  46. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  47. package/dist/audit/cli/semanticReviewStep.js +35 -71
  48. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  49. package/dist/audit/contracts/findingContractPrompt.d.ts.map +1 -1
  50. package/dist/audit/contracts/findingContractPrompt.js +7 -1
  51. package/dist/audit/contracts/findingContractPrompt.js.map +1 -1
  52. package/dist/audit/contracts/workerSchemas.d.ts +280 -4
  53. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  54. package/dist/audit/contracts/workerSchemas.js +24 -2
  55. package/dist/audit/contracts/workerSchemas.js.map +1 -1
  56. package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -1
  57. package/dist/audit/orchestrator/charterClarificationExecutor.js +39 -0
  58. package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -1
  59. package/dist/audit/orchestrator/charterExtractionExecutor.d.ts +12 -5
  60. package/dist/audit/orchestrator/charterExtractionExecutor.d.ts.map +1 -1
  61. package/dist/audit/orchestrator/charterExtractionExecutor.js +39 -9
  62. package/dist/audit/orchestrator/charterExtractionExecutor.js.map +1 -1
  63. package/dist/audit/orchestrator/designReviewPrompt.d.ts +7 -0
  64. package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
  65. package/dist/audit/orchestrator/designReviewPrompt.js +174 -19
  66. package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
  67. package/dist/audit/orchestrator/intentCheckpointGate.d.ts.map +1 -1
  68. package/dist/audit/orchestrator/intentCheckpointGate.js +1 -5
  69. package/dist/audit/orchestrator/intentCheckpointGate.js.map +1 -1
  70. package/dist/audit/orchestrator/requeueCommand.d.ts +8 -0
  71. package/dist/audit/orchestrator/requeueCommand.d.ts.map +1 -1
  72. package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts.map +1 -1
  73. package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js +94 -71
  74. package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js.map +1 -1
  75. package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts +0 -2
  76. package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts.map +1 -1
  77. package/dist/audit/orchestrator/selectiveDeepening/shared.js +9 -2
  78. package/dist/audit/orchestrator/selectiveDeepening/shared.js.map +1 -1
  79. package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.d.ts.map +1 -1
  80. package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js +28 -4
  81. package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js.map +1 -1
  82. package/dist/audit/reporting/synthesis.d.ts +16 -3
  83. package/dist/audit/reporting/synthesis.d.ts.map +1 -1
  84. package/dist/audit/reporting/synthesis.js +40 -11
  85. package/dist/audit/reporting/synthesis.js.map +1 -1
  86. package/dist/audit/reporting/synthesisNarrativePrompt.d.ts +26 -1
  87. package/dist/audit/reporting/synthesisNarrativePrompt.d.ts.map +1 -1
  88. package/dist/audit/reporting/synthesisNarrativePrompt.js +53 -13
  89. package/dist/audit/reporting/synthesisNarrativePrompt.js.map +1 -1
  90. package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -1
  91. package/dist/audit/systemic/secondOrderAdversaryPrompt.js +67 -40
  92. package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -1
  93. package/dist/audit/systemic/systemicChallengeLoop.d.ts.map +1 -1
  94. package/dist/audit/systemic/systemicChallengeLoop.js +13 -1
  95. package/dist/audit/systemic/systemicChallengeLoop.js.map +1 -1
  96. package/dist/audit/types/conceptualAdjudication.d.ts +26 -2
  97. package/dist/audit/types/conceptualAdjudication.d.ts.map +1 -1
  98. package/dist/audit/types/conceptualAdjudication.js +26 -7
  99. package/dist/audit/types/conceptualAdjudication.js.map +1 -1
  100. package/dist/audit/types.d.ts +279 -0
  101. package/dist/audit/types.d.ts.map +1 -1
  102. package/dist/audit/types.js +52 -0
  103. package/dist/audit/types.js.map +1 -1
  104. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  105. package/dist/audit/validation/auditResults.js +51 -6
  106. package/dist/audit/validation/auditResults.js.map +1 -1
  107. package/dist/audit/validation/ingestIssueCodes.d.ts +3 -1
  108. package/dist/audit/validation/ingestIssueCodes.d.ts.map +1 -1
  109. package/dist/audit/validation/ingestIssueCodes.js +27 -15
  110. package/dist/audit/validation/ingestIssueCodes.js.map +1 -1
  111. package/dist/remediate/contractPipeline/sketchSource.d.ts +13 -3
  112. package/dist/remediate/contractPipeline/sketchSource.d.ts.map +1 -1
  113. package/dist/remediate/contractPipeline/sketchSource.js +14 -8
  114. package/dist/remediate/contractPipeline/sketchSource.js.map +1 -1
  115. package/dist/remediate/intake.d.ts +140 -36
  116. package/dist/remediate/intake.d.ts.map +1 -1
  117. package/dist/remediate/intake.js +159 -38
  118. package/dist/remediate/intake.js.map +1 -1
  119. package/dist/remediate/intent/checkpointFilter.d.ts +1 -2
  120. package/dist/remediate/intent/checkpointFilter.d.ts.map +1 -1
  121. package/dist/remediate/intent/checkpointFilter.js +1 -5
  122. package/dist/remediate/intent/checkpointFilter.js.map +1 -1
  123. package/dist/remediate/phases/close.d.ts.map +1 -1
  124. package/dist/remediate/phases/close.js +2 -2
  125. package/dist/remediate/phases/close.js.map +1 -1
  126. package/dist/remediate/phases/plan.d.ts +1 -1
  127. package/dist/remediate/review/reviewGate.d.ts +68 -39
  128. package/dist/remediate/review/reviewGate.d.ts.map +1 -1
  129. package/dist/remediate/review/reviewGate.js +133 -50
  130. package/dist/remediate/review/reviewGate.js.map +1 -1
  131. package/dist/remediate/state/store.d.ts +1 -2
  132. package/dist/remediate/state/store.d.ts.map +1 -1
  133. package/dist/remediate/state/store.js +124 -3
  134. package/dist/remediate/state/store.js.map +1 -1
  135. package/dist/remediate/state/types.d.ts +28 -4
  136. package/dist/remediate/state/types.d.ts.map +1 -1
  137. package/dist/remediate/state/types.js.map +1 -1
  138. package/dist/remediate/steps/contractPipeline.d.ts +17 -1
  139. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  140. package/dist/remediate/steps/contractPipeline.js +100 -52
  141. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  142. package/dist/remediate/steps/contractPipelinePrompts.d.ts +32 -8
  143. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  144. package/dist/remediate/steps/contractPipelinePrompts.js +145 -131
  145. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  146. package/dist/remediate/steps/dispatch/hostHandoff.d.ts +6 -4
  147. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  148. package/dist/remediate/steps/dispatch/hostHandoff.js +291 -155
  149. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  150. package/dist/remediate/steps/intakeResolver.d.ts +1 -1
  151. package/dist/remediate/steps/intakeResolver.d.ts.map +1 -1
  152. package/dist/remediate/steps/intakeResolver.js +50 -49
  153. package/dist/remediate/steps/intakeResolver.js.map +1 -1
  154. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  155. package/dist/remediate/steps/nextStep.js +315 -288
  156. package/dist/remediate/steps/nextStep.js.map +1 -1
  157. package/dist/remediate/steps/prompts.d.ts +10 -3
  158. package/dist/remediate/steps/prompts.d.ts.map +1 -1
  159. package/dist/remediate/steps/prompts.js +191 -228
  160. package/dist/remediate/steps/prompts.js.map +1 -1
  161. package/dist/remediate/steps/types.d.ts +2 -2
  162. package/dist/remediate/steps/types.d.ts.map +1 -1
  163. package/dist/remediate/steps/types.js +10 -3
  164. package/dist/remediate/steps/types.js.map +1 -1
  165. package/dist/remediate/validation/artifacts.d.ts.map +1 -1
  166. package/dist/remediate/validation/artifacts.js +5 -22
  167. package/dist/remediate/validation/artifacts.js.map +1 -1
  168. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  169. package/dist/remediate/validation/contractPipeline.js +25 -8
  170. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  171. package/dist/remediate/validation/remediationState.d.ts +0 -1
  172. package/dist/remediate/validation/remediationState.d.ts.map +1 -1
  173. package/dist/remediate/validation/remediationState.js +1 -20
  174. package/dist/remediate/validation/remediationState.js.map +1 -1
  175. package/dist/shared/decompose/charterClarification.d.ts +7 -0
  176. package/dist/shared/decompose/charterClarification.d.ts.map +1 -1
  177. package/dist/shared/decompose/charterClarification.js +8 -1
  178. package/dist/shared/decompose/charterClarification.js.map +1 -1
  179. package/dist/shared/decompose/charterExtraction.d.ts +204 -16
  180. package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
  181. package/dist/shared/decompose/charterExtraction.js +70 -13
  182. package/dist/shared/decompose/charterExtraction.js.map +1 -1
  183. package/dist/shared/decompose/systemicChallenge.d.ts +42 -1
  184. package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -1
  185. package/dist/shared/decompose/systemicChallenge.js +51 -0
  186. package/dist/shared/decompose/systemicChallenge.js.map +1 -1
  187. package/dist/shared/index.d.ts +14 -11
  188. package/dist/shared/index.d.ts.map +1 -1
  189. package/dist/shared/index.js +16 -9
  190. package/dist/shared/index.js.map +1 -1
  191. package/dist/shared/io/stepContractWriter.d.ts.map +1 -1
  192. package/dist/shared/io/stepContractWriter.js +13 -4
  193. package/dist/shared/io/stepContractWriter.js.map +1 -1
  194. package/dist/shared/submission/hostHandoffCore.d.ts +7 -0
  195. package/dist/shared/submission/hostHandoffCore.d.ts.map +1 -1
  196. package/dist/shared/submission/hostHandoffCore.js +15 -2
  197. package/dist/shared/submission/hostHandoffCore.js.map +1 -1
  198. package/dist/shared/submission/hostResultOutcomes.d.ts +60 -10
  199. package/dist/shared/submission/hostResultOutcomes.d.ts.map +1 -1
  200. package/dist/shared/submission/hostResultOutcomes.js +42 -10
  201. package/dist/shared/submission/hostResultOutcomes.js.map +1 -1
  202. package/dist/shared/submission/ingestReport.d.ts +54 -0
  203. package/dist/shared/submission/ingestReport.d.ts.map +1 -0
  204. package/dist/shared/submission/ingestReport.js +44 -0
  205. package/dist/shared/submission/ingestReport.js.map +1 -0
  206. package/dist/shared/submission/ingestionChecks.d.ts +8 -13
  207. package/dist/shared/submission/ingestionChecks.d.ts.map +1 -1
  208. package/dist/shared/submission/ingestionChecks.js +9 -14
  209. package/dist/shared/submission/ingestionChecks.js.map +1 -1
  210. package/dist/shared/submission/submissionClassifier.d.ts +6 -0
  211. package/dist/shared/submission/submissionClassifier.d.ts.map +1 -1
  212. package/dist/shared/submission/submissionClassifier.js +16 -0
  213. package/dist/shared/submission/submissionClassifier.js.map +1 -1
  214. package/dist/shared/submission/workerPromptBinding.d.ts +18 -0
  215. package/dist/shared/submission/workerPromptBinding.d.ts.map +1 -0
  216. package/dist/shared/submission/workerPromptBinding.js +38 -0
  217. package/dist/shared/submission/workerPromptBinding.js.map +1 -0
  218. package/dist/shared/tooling/exec.d.ts +24 -0
  219. package/dist/shared/tooling/exec.d.ts.map +1 -1
  220. package/dist/shared/tooling/exec.js +30 -0
  221. package/dist/shared/tooling/exec.js.map +1 -1
  222. package/dist/shared/types/charter.d.ts +143 -7
  223. package/dist/shared/types/charter.d.ts.map +1 -1
  224. package/dist/shared/types/charter.js +63 -7
  225. package/dist/shared/types/charter.js.map +1 -1
  226. package/dist/shared/types/charterPacket.d.ts +13 -0
  227. package/dist/shared/types/charterPacket.d.ts.map +1 -1
  228. package/dist/shared/types/charterPacket.js.map +1 -1
  229. package/dist/shared/types/contractPipeline/obligations.d.ts +30 -11
  230. package/dist/shared/types/contractPipeline/obligations.d.ts.map +1 -1
  231. package/dist/shared/types/contractPipeline/obligations.js +6 -1
  232. package/dist/shared/types/contractPipeline/obligations.js.map +1 -1
  233. package/dist/shared/types/contractPropertyShapes.d.ts.map +1 -1
  234. package/dist/shared/types/contractPropertyShapes.js +13 -0
  235. package/dist/shared/types/contractPropertyShapes.js.map +1 -1
  236. package/dist/shared/types/finding.d.ts +154 -15
  237. package/dist/shared/types/finding.d.ts.map +1 -1
  238. package/dist/shared/types/finding.js +41 -5
  239. package/dist/shared/types/finding.js.map +1 -1
  240. package/dist/shared/types/intentCheckpoint.d.ts +26 -40
  241. package/dist/shared/types/intentCheckpoint.d.ts.map +1 -1
  242. package/dist/shared/types/intentCheckpoint.js +30 -33
  243. package/dist/shared/types/intentCheckpoint.js.map +1 -1
  244. package/dist/shared/types/remediationOutcome.d.ts +8 -8
  245. package/dist/shared/validation/citationGrounding.d.ts +29 -5
  246. package/dist/shared/validation/citationGrounding.d.ts.map +1 -1
  247. package/dist/shared/validation/citationGrounding.js +56 -9
  248. package/dist/shared/validation/citationGrounding.js.map +1 -1
  249. package/dist/shared/validation/designFindingGrounding.d.ts +30 -9
  250. package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -1
  251. package/dist/shared/validation/designFindingGrounding.js +32 -12
  252. package/dist/shared/validation/designFindingGrounding.js.map +1 -1
  253. package/docs/audit-pkg/contracts.md +4 -5
  254. package/package.json +1 -1
  255. package/schemas/audit_result.schema.json +51 -0
  256. package/schemas/audit_results.schema.json +51 -0
  257. package/schemas/audit_task.schema.json +44 -0
  258. package/schemas/finding.schema.json +4 -0
@@ -3,9 +3,11 @@
3
3
  // contract — `toHostTask` is where the lane tags were being dropped, so this is
4
4
  // the site whose revert makes the prompt branch unreachable)
5
5
  import { resolve } from "node:path";
6
- import { deriveLaneDemand, isMissingObservation, linkFrictionRunIds, readJsonFile, } from "audit-tools/shared";
6
+ import { deriveLaneDemand, linkFrictionRunIds, readJsonFile, } from "audit-tools/shared";
7
7
  import { AUDIT_FRICTION_RUN_ID } from "../orchestrator/nextStep.js";
8
8
  import { derivePendingTaskPartition } from "../orchestrator/pendingTasks.js";
9
+ import { auditIngestRemedy, } from "../validation/ingestIssueCodes.js";
10
+ import { renderIngestReportLines } from "audit-tools/shared";
9
11
  import { prepareAuditHostHandoff, } from "./dispatch/hostHandoff.js";
10
12
  import { nextStepCommand } from "./prompts.js";
11
13
  import { writeCurrentStep } from "./steps.js";
@@ -42,70 +44,21 @@ function toHostTask(task) {
42
44
  // boundary that cannot see the lane cannot render a lane-aware contract, and
43
45
  // this mapper is where that signal was being dropped.
44
46
  ...(Array.isArray(task.tags) ? { tags: task.tags } : {}),
47
+ // The coverage policy and the surface metrics ride the harness for the same
48
+ // reason the tags do: the boundary decides from them whether the result must
49
+ // cover every assigned file, and what the lane is told about the surface it
50
+ // chooses from. Dropped here, a steward would be dispatched its whole
51
+ // surface under the COMPLETE gate and refused for not reading all of it.
52
+ ...(task.coverage_policy === undefined
53
+ ? {}
54
+ : { coverage_policy: task.coverage_policy }),
55
+ ...(task.file_metrics === undefined ? {} : { file_metrics: task.file_metrics }),
45
56
  };
46
57
  }
47
58
  /**
48
- * The classified failures of the ingest that just ran, stated to the host that
49
- * has to repair them. Same section the remediate draw already renders from the
50
- * same shared vocabulary a work item whose result never arrived, would not
51
- * parse, or failed the contract is NAMED here instead of silently reappearing
52
- * in an identical workload.
53
- */
54
- function renderIngestIssueLines(issues) {
55
- // MISSING and REJECTED are stated under their OWN headings. They shared one
56
- // before, which forced a host parser to special-case the message text — the
57
- // measured friction — and told the reader the same thing about two situations
58
- // whose remedies are opposite: one is patience, the other is a repair. The
59
- // split is on the CODE, so rewording a message cannot move an item between
60
- // the two.
61
- const missing = issues.filter(isMissingObservation);
62
- const rejected = issues.filter((issue) => !isMissingObservation(issue));
63
- const section = (heading, lines) => lines.length === 0 ? [] : [heading, "", ...lines, ""];
64
- return [
65
- ...section("## Results not yet written", missing.map((issue) => `- ${describeIssue(issue)}`)),
66
- ...section("## Result status requiring attention", rejected.map((issue) => `- ${describeIssue(issue)}`)),
67
- ...(issues.length === 0
68
- ? []
69
- : [
70
- // NOT "the bindings are unchanged": the run id is derived from the review
71
- // obligation, so a partial ingest does NOT re-mint the run and the bound
72
- // paths of carried-over items are stable. What still moves is the ASK — a
73
- // re-planned task's prompt digest, and therefore its bound path, is
74
- // different, and a result written against the old ask is correctly refused.
75
- // So the workload published below is the authority for what to write, and a
76
- // path quoted above is only guaranteed current for an item whose ask the
77
- // ingest did not change.
78
- "Each named work item is still pending and is republished in the workload below. Write its repaired result at that workload's bound `result_path` — that workload is always the authority for where a result is read.",
79
- "",
80
- ]),
81
- ];
82
- }
83
- /** One issue as a bullet, with its locators. Shared by both sections above. */
84
- function describeIssue(issue) {
85
- return (`${issue.work_item_id ? `\`${issue.work_item_id}\` (${issue.code}): ` : `${issue.code}: `}` +
86
- `${issue.message}${issue.result_path ? ` (\`${issue.result_path}\`)` : ""}`);
87
- }
88
- /**
89
- * The ADVISORY half of the ingest report: validation warnings on results that
90
- * WERE accepted. Deliberately a separate renderer from {@link renderIngestIssueLines}
91
- * — these need no repair, so they must not share a section (or a count) with
92
- * items that could not be accepted, or an accepted-with-warning result reads as
93
- * a refusal that never happened.
94
- */
95
- function renderValidationWarningLines(warnings) {
96
- if (warnings.length === 0)
97
- return [];
98
- return [
99
- "## Advisory notes on accepted results",
100
- "",
101
- ...warnings.map((warning) => `- \`${warning.work_item_id}\` was ACCEPTED; advisory: ${warning.message}`),
102
- "",
103
- ];
104
- }
105
- /**
106
- * Publish the complete provider-neutral semantic-review workload. The host owns
107
- * every execution choice; audit-tools only binds prompts/results and ingests
108
- * validated AuditResult objects on the next invocation.
59
+ * Publish the complete semantic-review workload. The host owns every execution
60
+ * choice; audit-tools only binds prompts/results and ingests validated
61
+ * AuditResult objects on the next invocation.
109
62
  */
110
63
  export async function renderSemanticReviewStep(params) {
111
64
  const { root, artifactsDir, activeReviewRun } = params;
@@ -147,9 +100,11 @@ export async function renderSemanticReviewStep(params) {
147
100
  progress: {
148
101
  summary: `Published ${handoff.workload.work_items.length} pending semantic-review ` +
149
102
  `work item(s) for host execution.` +
103
+ // The summary states the COUNT and points at the report; it does not
104
+ // quote a heading. Which headings render depends on the remedy of each
105
+ // issue, so a quoted heading can name a section that is not there.
150
106
  (issues.length > 0
151
- ? ` ${issues.length} prior submission(s) were not accepted see "Result status requiring attention"` +
152
- ` and "Results not yet written".`
107
+ ? ` ${issues.length} prior submission issue(s) are stated in the step prompt.`
153
108
  : ""),
154
109
  pending_tasks: handoff.workload.work_items.length,
155
110
  completed_tasks: completedTaskIds.size,
@@ -165,15 +120,24 @@ export async function renderSemanticReviewStep(params) {
165
120
  prompt: [
166
121
  "# audit-code semantic review",
167
122
  "",
168
- ...renderIngestIssueLines(issues),
169
- ...renderValidationWarningLines(validationWarnings),
170
- `Read the complete provider-neutral workload at: ${handoff.workload_path}`,
123
+ ...renderIngestReportLines({
124
+ issues,
125
+ remedy: auditIngestRemedy,
126
+ workload: "follows",
127
+ advisories: validationWarnings,
128
+ }),
129
+ `Read the workload at: ${handoff.workload_path}`,
171
130
  "",
172
- "Execute every work item using the host facilities available in this conversation.",
173
- "For each item, follow its prompt and write the exact result contract to its bound result_path.",
174
- "Missing or invalid results remain pending; do not edit audit state or hand-merge results.",
131
+ // Two imperative steps, not one directive plus a plea. The removed plea
132
+ // ("do not edit audit state or hand-merge results") asked the reader to
133
+ // remember a rule `ingestAuditHostResults` already enforces: a result is
134
+ // bound to its run id, work item id and prompt digest, so a hand-merged
135
+ // or moved result is refused mechanically.
136
+ "For each work item in the workload:",
137
+ "1. Follow its prompt.",
138
+ "2. Write the result JSON at its bound `result_path`.",
175
139
  "",
176
- `When the available results are written, run: ${continueCommand}`,
140
+ `When the results are written, run: ${continueCommand}`,
177
141
  "",
178
142
  ].join("\n"),
179
143
  access: {
@@ -1 +1 @@
1
- {"version":3,"file":"semanticReviewStep.js","sourceRoot":"","sources":["../../../src/audit/cli/semanticReviewStep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semanticReviewStep.js","sourceRoot":"","sources":["../../../src/audit/cli/semanticReviewStep.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"findingContractPrompt.d.ts","sourceRoot":"","sources":["../../../src/audit/contracts/findingContractPrompt.ts"],"names":[],"mappings":"AA+DA;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,SAAS,MAAM,EAAE,CAoE9D"}
1
+ {"version":3,"file":"findingContractPrompt.d.ts","sourceRoot":"","sources":["../../../src/audit/contracts/findingContractPrompt.ts"],"names":[],"mappings":"AAiEA;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,SAAS,MAAM,EAAE,CAyE9D"}
@@ -13,8 +13,9 @@
13
13
  // per-finding `lens`; `evidence` submitted as a string where an array is
14
14
  // required), and the 2026-08-21 lap then lost more to `evidence` being omitted
15
15
  // entirely while downstream validation required it.
16
+ // sites-pinned: tests/audit/host-result-finding-contract.test.ts, tests/audit/host-ingest-grounding.test.ts
16
17
  import { zodToJsonSchema } from "zod-to-json-schema";
17
- import { CONFIDENCES, LENSES, SEVERITIES, FINDING_LINE_END_INTEGER_RULE, FINDING_LINE_ORDER_RULE, FINDING_LINE_START_INTEGER_RULE, compareCodeUnits, } from "audit-tools/shared";
18
+ import { AUDIT_FINDING_QUOTE_OR_DECLARATION_RULE, CONFIDENCES, LENSES, SEVERITIES, FINDING_LINE_END_INTEGER_RULE, FINDING_LINE_ORDER_RULE, FINDING_LINE_START_INTEGER_RULE, compareCodeUnits, } from "audit-tools/shared";
18
19
  import { AUDIT_RESULT_RULES } from "../validation/auditResults.js";
19
20
  import { WorkerFindingSchema } from "./workerSchemas.js";
20
21
  function describeField(node) {
@@ -102,6 +103,11 @@ export function findingContractPromptLines() {
102
103
  `Rule: ${FINDING_LINE_START_INTEGER_RULE}`,
103
104
  `Rule: ${FINDING_LINE_END_INTEGER_RULE}`,
104
105
  `Rule: ${FINDING_LINE_ORDER_RULE}`,
106
+ // The grounding ask. It was missing entirely: `quoted_text` was named once,
107
+ // and only as text the tool re-reads, so a reader who obeyed the prompt
108
+ // exactly shipped no quote and every finding grounded `ungrounded`. The
109
+ // sentence is the constant both doors refuse with.
110
+ `Rule: ${AUDIT_FINDING_QUOTE_OR_DECLARATION_RULE}`,
105
111
  // Every cross-record rule the downstream validator enforces, verbatim from
106
112
  // the registry the validator itself reads — not a paraphrase.
107
113
  ...AUDIT_RESULT_RULES.map((rule) => `Rule: ${rule.statement}`),
@@ -1 +1 @@
1
- {"version":3,"file":"findingContractPrompt.js","sourceRoot":"","sources":["../../../src/audit/contracts/findingContractPrompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findingContractPrompt.js","sourceRoot":"","sources":["../../../src/audit/contracts/findingContractPrompt.ts"],"names":[],"mappings":"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"}