projscan 4.14.0 → 4.16.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 (199) hide show
  1. package/README.md +103 -21
  2. package/dist/cli/commands/assess.js +36 -2
  3. package/dist/cli/commands/assess.js.map +1 -1
  4. package/dist/cli/commands/evidencePack.js +2 -0
  5. package/dist/cli/commands/evidencePack.js.map +1 -1
  6. package/dist/cli/commands/prove.js +172 -23
  7. package/dist/cli/commands/prove.js.map +1 -1
  8. package/dist/cli/commands/startConsole.d.ts +2 -2
  9. package/dist/cli/commands/startConsole.js +2 -260
  10. package/dist/cli/commands/startConsole.js.map +1 -1
  11. package/dist/cli/commands/startConsoleExecution.d.ts +5 -0
  12. package/dist/cli/commands/startConsoleExecution.js +108 -0
  13. package/dist/cli/commands/startConsoleExecution.js.map +1 -0
  14. package/dist/cli/commands/startConsoleMission.d.ts +6 -0
  15. package/dist/cli/commands/startConsoleMission.js +157 -0
  16. package/dist/cli/commands/startConsoleMission.js.map +1 -0
  17. package/dist/cli/commands/startMissionBundle.js +24 -27
  18. package/dist/cli/commands/startMissionBundle.js.map +1 -1
  19. package/dist/core/adoption.d.ts +8 -81
  20. package/dist/core/adoption.js +4 -549
  21. package/dist/core/adoption.js.map +1 -1
  22. package/dist/core/adoptionFirstRunDiagnostics.d.ts +20 -0
  23. package/dist/core/adoptionFirstRunDiagnostics.js +240 -0
  24. package/dist/core/adoptionFirstRunDiagnostics.js.map +1 -0
  25. package/dist/core/adoptionMcpConfig.d.ts +27 -0
  26. package/dist/core/adoptionMcpConfig.js +123 -0
  27. package/dist/core/adoptionMcpConfig.js.map +1 -0
  28. package/dist/core/adoptionMcpDoctor.d.ts +23 -0
  29. package/dist/core/adoptionMcpDoctor.js +87 -0
  30. package/dist/core/adoptionMcpDoctor.js.map +1 -0
  31. package/dist/core/adoptionWorkflowRecipes.d.ts +14 -0
  32. package/dist/core/adoptionWorkflowRecipes.js +110 -0
  33. package/dist/core/adoptionWorkflowRecipes.js.map +1 -0
  34. package/dist/core/baseframeAssessment.d.ts +9 -0
  35. package/dist/core/baseframeAssessment.js +471 -0
  36. package/dist/core/baseframeAssessment.js.map +1 -0
  37. package/dist/core/bugHunt.js +26 -255
  38. package/dist/core/bugHunt.js.map +1 -1
  39. package/dist/core/bugHuntPreflightFindings.d.ts +2 -1
  40. package/dist/core/bugHuntPreflightFindings.js +20 -0
  41. package/dist/core/bugHuntPreflightFindings.js.map +1 -1
  42. package/dist/core/bugHuntReportAssembly.d.ts +20 -0
  43. package/dist/core/bugHuntReportAssembly.js +179 -0
  44. package/dist/core/bugHuntReportAssembly.js.map +1 -0
  45. package/dist/core/bugHuntSourceFindings.d.ts +3 -0
  46. package/dist/core/bugHuntSourceFindings.js +61 -0
  47. package/dist/core/bugHuntSourceFindings.js.map +1 -0
  48. package/dist/core/dogfood.js +4 -393
  49. package/dist/core/dogfood.js.map +1 -1
  50. package/dist/core/dogfoodMarketValidation.d.ts +5 -0
  51. package/dist/core/dogfoodMarketValidation.js +265 -0
  52. package/dist/core/dogfoodMarketValidation.js.map +1 -0
  53. package/dist/core/dogfoodRepoEvaluation.d.ts +4 -0
  54. package/dist/core/dogfoodRepoEvaluation.js +137 -0
  55. package/dist/core/dogfoodRepoEvaluation.js.map +1 -0
  56. package/dist/core/evidenceComment.js +50 -13
  57. package/dist/core/evidenceComment.js.map +1 -1
  58. package/dist/core/feedback.js +2 -252
  59. package/dist/core/feedback.js.map +1 -1
  60. package/dist/core/feedbackIntakeClassifier.d.ts +2 -0
  61. package/dist/core/feedbackIntakeClassifier.js +255 -0
  62. package/dist/core/feedbackIntakeClassifier.js.map +1 -0
  63. package/dist/core/intentRouterKeywordToolGuards.js +1 -55
  64. package/dist/core/intentRouterKeywordToolGuards.js.map +1 -1
  65. package/dist/core/intentRouterKeywordWeights.js +13 -28
  66. package/dist/core/intentRouterKeywordWeights.js.map +1 -1
  67. package/dist/core/intentRouterProductGuardSignals.d.ts +3 -0
  68. package/dist/core/intentRouterProductGuardSignals.js +59 -0
  69. package/dist/core/intentRouterProductGuardSignals.js.map +1 -0
  70. package/dist/core/markdownSafety.d.ts +3 -0
  71. package/dist/core/markdownSafety.js +14 -0
  72. package/dist/core/markdownSafety.js.map +1 -0
  73. package/dist/core/preflight.d.ts +2 -0
  74. package/dist/core/preflight.js.map +1 -1
  75. package/dist/core/preflightChangedFiles.d.ts +2 -0
  76. package/dist/core/preflightChangedFiles.js +1 -1
  77. package/dist/core/preflightChangedFiles.js.map +1 -1
  78. package/dist/core/preflightInputs.d.ts +2 -0
  79. package/dist/core/preflightInputs.js +5 -2
  80. package/dist/core/preflightInputs.js.map +1 -1
  81. package/dist/core/proofLedger.d.ts +5 -1
  82. package/dist/core/proofLedger.js +161 -12
  83. package/dist/core/proofLedger.js.map +1 -1
  84. package/dist/core/proofReplay.d.ts +9 -0
  85. package/dist/core/proofReplay.js +164 -0
  86. package/dist/core/proofReplay.js.map +1 -0
  87. package/dist/core/proofSufficiency.d.ts +19 -0
  88. package/dist/core/proofSufficiency.js +425 -0
  89. package/dist/core/proofSufficiency.js.map +1 -0
  90. package/dist/core/prove.d.ts +6 -0
  91. package/dist/core/prove.js +277 -87
  92. package/dist/core/prove.js.map +1 -1
  93. package/dist/core/qualityScorecard.js +8 -238
  94. package/dist/core/qualityScorecard.js.map +1 -1
  95. package/dist/core/qualityScorecardDimensions.d.ts +14 -0
  96. package/dist/core/qualityScorecardDimensions.js +99 -0
  97. package/dist/core/qualityScorecardDimensions.js.map +1 -0
  98. package/dist/core/qualityScorecardRisks.d.ts +8 -0
  99. package/dist/core/qualityScorecardRisks.js +107 -0
  100. package/dist/core/qualityScorecardRisks.js.map +1 -0
  101. package/dist/core/qualityScorecardSignals.d.ts +20 -0
  102. package/dist/core/qualityScorecardSignals.js +59 -0
  103. package/dist/core/qualityScorecardSignals.js.map +1 -0
  104. package/dist/core/releaseEvidence.d.ts +1 -0
  105. package/dist/core/releaseEvidence.js +15 -40
  106. package/dist/core/releaseEvidence.js.map +1 -1
  107. package/dist/core/releaseEvidenceBaseline.js +4 -1
  108. package/dist/core/releaseEvidenceBaseline.js.map +1 -1
  109. package/dist/core/releaseEvidenceProofReceipt.d.ts +6 -0
  110. package/dist/core/releaseEvidenceProofReceipt.js +140 -0
  111. package/dist/core/releaseEvidenceProofReceipt.js.map +1 -0
  112. package/dist/core/releaseEvidenceVerdict.d.ts +5 -2
  113. package/dist/core/releaseEvidenceVerdict.js +39 -1
  114. package/dist/core/releaseEvidenceVerdict.js.map +1 -1
  115. package/dist/core/repositoryScanner.d.ts +1 -0
  116. package/dist/core/repositoryScanner.js +5 -4
  117. package/dist/core/repositoryScanner.js.map +1 -1
  118. package/dist/core/sessionResources.d.ts +14 -2
  119. package/dist/core/sessionResources.js +3 -3
  120. package/dist/core/sessionResources.js.map +1 -1
  121. package/dist/core/startInputs.d.ts +1 -1
  122. package/dist/core/startIntentTargets.d.ts +1 -1
  123. package/dist/core/startIntentTargets.js +1 -16
  124. package/dist/core/startIntentTargets.js.map +1 -1
  125. package/dist/core/startMissionInputStatusPolicy.d.ts +7 -0
  126. package/dist/core/startMissionInputStatusPolicy.js +74 -0
  127. package/dist/core/startMissionInputStatusPolicy.js.map +1 -0
  128. package/dist/core/startMissionPolicy.d.ts +6 -15
  129. package/dist/core/startMissionPolicy.js +4 -305
  130. package/dist/core/startMissionPolicy.js.map +1 -1
  131. package/dist/core/startMissionProofPolicy.d.ts +6 -0
  132. package/dist/core/startMissionProofPolicy.js +84 -0
  133. package/dist/core/startMissionProofPolicy.js.map +1 -0
  134. package/dist/core/startMissionRiskPolicy.d.ts +4 -0
  135. package/dist/core/startMissionRiskPolicy.js +85 -0
  136. package/dist/core/startMissionRiskPolicy.js.map +1 -0
  137. package/dist/core/startMissionRoutingPolicy.d.ts +6 -0
  138. package/dist/core/startMissionRoutingPolicy.js +67 -0
  139. package/dist/core/startMissionRoutingPolicy.js.map +1 -0
  140. package/dist/core/startMode.d.ts +1 -2
  141. package/dist/core/startMode.js +4 -151
  142. package/dist/core/startMode.js.map +1 -1
  143. package/dist/core/startModeIntentPolicy.d.ts +12 -0
  144. package/dist/core/startModeIntentPolicy.js +41 -0
  145. package/dist/core/startModeIntentPolicy.js.map +1 -0
  146. package/dist/core/startModeRoutingPolicy.d.ts +4 -0
  147. package/dist/core/startModeRoutingPolicy.js +117 -0
  148. package/dist/core/startModeRoutingPolicy.js.map +1 -0
  149. package/dist/core/startSearchQueryTargets.d.ts +1 -0
  150. package/dist/core/startSearchQueryTargets.js +17 -0
  151. package/dist/core/startSearchQueryTargets.js.map +1 -0
  152. package/dist/core/workplan.d.ts +3 -2
  153. package/dist/core/workplan.js +11 -585
  154. package/dist/core/workplan.js.map +1 -1
  155. package/dist/core/workplanCoordinationTasks.d.ts +3 -0
  156. package/dist/core/workplanCoordinationTasks.js +82 -0
  157. package/dist/core/workplanCoordinationTasks.js.map +1 -0
  158. package/dist/core/workplanModeTasks.d.ts +2 -0
  159. package/dist/core/workplanModeTasks.js +192 -0
  160. package/dist/core/workplanModeTasks.js.map +1 -0
  161. package/dist/core/workplanPreflightTasks.d.ts +2 -0
  162. package/dist/core/workplanPreflightTasks.js +126 -0
  163. package/dist/core/workplanPreflightTasks.js.map +1 -0
  164. package/dist/core/workplanQualitySignals.d.ts +7 -0
  165. package/dist/core/workplanQualitySignals.js +63 -0
  166. package/dist/core/workplanQualitySignals.js.map +1 -0
  167. package/dist/core/workplanReport.d.ts +4 -0
  168. package/dist/core/workplanReport.js +79 -0
  169. package/dist/core/workplanReport.js.map +1 -0
  170. package/dist/core/workplanRiskOwnership.d.ts +5 -0
  171. package/dist/core/workplanRiskOwnership.js +97 -0
  172. package/dist/core/workplanRiskOwnership.js.map +1 -0
  173. package/dist/core/workplanSuggestedActions.d.ts +2 -0
  174. package/dist/core/workplanSuggestedActions.js +43 -0
  175. package/dist/core/workplanSuggestedActions.js.map +1 -0
  176. package/dist/mcp/tools/prove.js +23 -17
  177. package/dist/mcp/tools/prove.js.map +1 -1
  178. package/dist/projscan-sbom.cdx.json +6 -6
  179. package/dist/publicCore.d.ts +1 -0
  180. package/dist/publicCore.js +1 -0
  181. package/dist/publicCore.js.map +1 -1
  182. package/dist/tool-manifest.json +2 -2
  183. package/dist/types/baseframe.d.ts +75 -0
  184. package/dist/types/baseframe.js +2 -0
  185. package/dist/types/baseframe.js.map +1 -0
  186. package/dist/types/config.d.ts +15 -0
  187. package/dist/types/evidencePack.d.ts +21 -0
  188. package/dist/types/prove.d.ts +79 -0
  189. package/dist/types.d.ts +1 -0
  190. package/dist/utils/changedFiles.js +57 -16
  191. package/dist/utils/changedFiles.js.map +1 -1
  192. package/dist/utils/config.js +2 -0
  193. package/dist/utils/config.js.map +1 -1
  194. package/dist/utils/configProofRecipes.d.ts +2 -0
  195. package/dist/utils/configProofRecipes.js +91 -0
  196. package/dist/utils/configProofRecipes.js.map +1 -0
  197. package/docs/GUIDE.md +120 -19
  198. package/docs/integrations/baseframe-suite-v1.md +163 -0
  199. package/package.json +2 -1
package/README.md CHANGED
@@ -101,19 +101,25 @@ Success criteria: the agent can name the files to read first, the likely files t
101
101
  ```bash
102
102
  projscan start --intent "is my agent allowed to change billing retry logic?"
103
103
  projscan prove --intent "is my agent allowed to change billing retry logic?" --save-contract .projscan/proof-contract.json
104
+ # Make the bounded edit, then run the proof command.
104
105
  projscan prove --run -- npm test -- tests/billing/retry.test.ts
105
106
  projscan prove --changed --contract .projscan/proof-contract.json --format markdown
106
107
  ```
107
108
 
108
- The path is `start -> prove -> run -> changed`. `start` chooses the contract workflow. `prove --intent` writes the contract only when `--save-contract` is present. `prove --run -- <command...>` executes a local proof command, records the exit code, captures a redacted log, and fingerprints the current changed files. `prove --record-command` remains available for imported CI or external evidence when projscan did not run the command. `prove --changed` checks the current working tree against the contract and local ledger.
109
+ The command path is `start -> prove -> run -> changed`. Make the bounded edit after the contract exists and before `prove --run`. `start` chooses the contract workflow. `prove --intent` writes `.projscan/proof-contract.json` only when `--save-contract` is present. `prove --run -- <command...>` executes a local proof command, records the exit code, captures a redacted log, and fingerprints the current changed files. `prove --record-command` remains available for imported CI or external evidence when projscan did not run the command. `prove --changed` checks the current working tree against the contract and local ledger.
109
110
 
110
- You get a Proof Contract before edits and a Proof Receipt after edits. The contract names allowed files, forbidden files, risky contracts, likely tests, missing regression-test evidence, proof commands, safe change shape, rollback, confidence, and reviewer guidance. The receipt checks the real working tree against that contract and classifies changed files as allowed production, expected tests, documentation, generated proof artifacts, config/security drift, forbidden touches, or unexpected production. It also reports proof replay status, risk delta, commit readiness, and a reviewer checklist.
111
+ You get a Proof Contract before edits and a Proof Receipt after edits. The contract names allowed files, forbidden files, risky contracts, likely tests, missing regression-test evidence, proof commands, safe change shape, rollback, confidence, reviewer guidance, and `proofRequirements` for each risk surface. The receipt checks the real working tree against that contract and classifies changed files as allowed production, expected tests, documentation, generated proof artifacts, config/security drift, forbidden touches, or unexpected production. The receipt reports proof replay status, Proof Sufficiency, risk delta, commit readiness, and a reviewer checklist.
111
112
 
112
- Proof Replay records command, exit code, duration, changed-file fingerprint, redacted summary, log path, and source in `.projscan/proof-ledger.jsonl`. Executed proof logs stay under `.projscan/proof-logs/`. `prove --changed` marks proof as passed, missing, failed, partial, or stale. If the agent edits new files after proof ran, the receipt says the proof is stale before a reviewer reads the diff.
113
+ Proof Replay records command, exit code, duration, changed-file fingerprint, redacted summary, log path, and source in `.projscan/proof-ledger.jsonl`. Executed proof logs stay under `.projscan/proof-logs/`. `prove --changed` marks proof as passed, missing, failed, partial, or stale. The receipt JSON includes `proofReplay` with a replay timeline, `changedAfterProof`, replay command, and local receipt fingerprint. If the agent edits new files after proof ran, the receipt says the proof is stale before a reviewer reads the diff.
113
114
 
114
- Every `prove` report includes `verifiedWorkflow`, a compact JSON summary for agents and MCP clients. It names the phase, next action, next command, scope status, proof status, risk delta direction, reviewer decision, and stale/missing/failed proof flags.
115
+ Proof Sufficiency estimates whether the local ledger covers each changed surface. `proofSufficiency` marks rows as strong, adequate, weak, missing, stale, or failed, then lists the exact gaps reviewers need to resolve.
115
116
 
116
- Success criteria: the reviewer sees whether the agent stayed inside the contract, whether the right proof ran, and whether that proof is still fresh.
117
+ Team Proof Recipes let a repo encode required proof for sensitive paths in `proofRecipes`; when a matching recipe is configured, `prove --intent` adds that recipe's commands, reviewers, and forbidden files to the Proof Contract. `prove --changed` and `projscan evidence-pack --pr-comment` then show missing recipe proof, required reviewers, and recipe drift in the Proof Receipt. The recipe does not run proof commands by itself; use `prove --run -- <command...>` or `prove --record-command` to add evidence to the local ledger.
118
+ Saved contracts are the source of truth for `prove --changed`; update the contract when a team recipe changes.
119
+
120
+ Every `prove` report includes `verifiedWorkflow`, a compact JSON summary for agents and MCP clients. It names the phase, next action, next command, scope status, proof status, proof sufficiency status, risk delta direction, reviewer decision, and stale/missing/failed proof flags.
121
+
122
+ Success criteria: the reviewer sees scope, proof execution, proof freshness, and sufficiency for the changed risk surface.
117
123
 
118
124
  ### Before handoff or commit
119
125
 
@@ -124,7 +130,7 @@ projscan preflight --mode before_commit --format json
124
130
  projscan evidence-pack --pr-comment
125
131
  ```
126
132
 
127
- You get the changed-file risk, one or two trusted next actions, manual review gates, owner routing, baseline trend memory, and exact proof commands for the reviewer. Use `projscan bug-hunt --format json` when you want the raw fix queue behind the assessment.
133
+ You get changed-file risk, one or two ranked next actions, manual review gates, owner routing, baseline trend memory, and exact proof commands for the reviewer. Use `projscan bug-hunt --format json` when you want the raw fix queue behind the assessment.
128
134
 
129
135
  Success criteria: the reviewer sees the top fix, the remaining proof, and any manual sign-off gate without reading the full scan output.
130
136
 
@@ -158,6 +164,25 @@ Use the risk delta simulator before a refactor or extraction. It predicts likely
158
164
 
159
165
  Success criteria: the team sees the one or two highest-value fixes, why they matter, how to prove them, and whether ship-readiness still needs caution or review.
160
166
 
167
+ ### Baseframe Suite assessment artifact
168
+
169
+ ProjScan finds the risk.
170
+ AgentLoopKit controls the work.
171
+ AgentFlight proves the result.
172
+
173
+ When a Baseframe Suite task needs a stable local artifact, run:
174
+
175
+ ```bash
176
+ projscan assess \
177
+ --intent "Implement password reset" \
178
+ --task-id auth-password-reset-20260626-01 \
179
+ --emit-baseframe
180
+ ```
181
+
182
+ ProjScan writes `.baseframe/evidence/<task-id>/projscan-assessment.json` and
183
+ updates `.baseframe/agent-workflow.json` without writing AgentLoopKit or
184
+ AgentFlight artifacts. See [Baseframe Suite Integration v1](docs/integrations/baseframe-suite-v1.md).
185
+
161
186
  ## Mission Control
162
187
 
163
188
  `projscan start --intent "<goal>"` turns a plain-language goal into an execution plan:
@@ -197,15 +222,28 @@ npm run docs:screenshots
197
222
  npm run docs:demos
198
223
  ```
199
224
 
200
- ## 4.14.0 Notes
225
+ ## 4.16.0 Notes
201
226
 
202
- 4.14.0 ships the Verified Change Workflow and Executed Proof Runner:
227
+ 4.16.0 ships Baseframe Suite assessment export:
228
+
229
+ - `projscan assess --intent "<task>" --task-id <id> --emit-baseframe` writes
230
+ `.baseframe/evidence/<task-id>/projscan-assessment.json`.
231
+ - ProjScan updates `.baseframe/agent-workflow.json` with its own status while
232
+ preserving AgentLoopKit, AgentFlight, and unknown manifest fields.
233
+ - The package exports `createBaseframeAssessment()` plus Baseframe v1
234
+ assessment and workflow manifest types.
235
+ - Artifact writes are local, atomic, task-ID validated, and protected against
236
+ traversal and symlink output paths.
237
+
238
+ ## 4.15.0 Notes
239
+
240
+ 4.15.0 strengthens the proof-first change loop:
203
241
 
204
242
  - `projscan prove --intent "<change>"` creates a local Proof Contract before
205
243
  editing. It names allowed files, forbidden files, risky contracts, likely
206
244
  tests, missing regression-test evidence, proof commands, rollback, confidence,
207
- Trust Memory signals, evidence gaps, and reviewer guidance. Noisy feedback or
208
- missing-signal feedback lowers the confidence reason instead of hiding it.
245
+ Trust Memory signals, evidence gaps, reviewer guidance, and
246
+ `proofRequirements` for each risk surface.
209
247
  - `projscan start --intent "is my agent allowed to change billing retry logic?"`
210
248
  routes directly to `projscan prove`, so agent-permission prompts start with a
211
249
  bounded contract instead of a broad checklist.
@@ -218,22 +256,51 @@ npm run docs:demos
218
256
  classes separate allowed production edits, expected tests, documentation,
219
257
  generated proof artifacts, config/security drift, forbidden touches, and
220
258
  unexpected production changes before giving a copyable reviewer decision.
259
+ The receipt also includes `proofReplay` with replay status, timeline events,
260
+ `changedAfterProof`, replay command, and receipt fingerprint. Proof
261
+ Sufficiency shows whether each `proofRequirements` row has strong, adequate,
262
+ weak, missing, stale, or failed proof.
263
+ - Team Proof Recipes let a repo add path-matched `proofRecipes` to
264
+ `.projscanrc.json`. Matching recipes add required commands, reviewers, and
265
+ forbidden drift to the Proof Contract and Proof Receipt.
221
266
  - `projscan prove --record-command "<command>" --exit-code <code>` appends a
222
267
  local Proof Ledger row with command, duration, changed-file fingerprint,
223
268
  redacted output summary, and optional log path when importing proof from CI or
224
- another trusted runner.
269
+ another runner.
225
270
  - Every `prove` JSON report includes `verifiedWorkflow`, so agents can read the
226
- next action, next command, scope status, proof status, reviewer decision, and
227
- stale/missing/failed proof flags without parsing Markdown.
271
+ next action, next command, scope status, proof status, `proofSufficiency`
272
+ status, reviewer decision, and stale/missing/failed proof flags without
273
+ parsing Markdown.
228
274
  - Saved Mission Control bundles append Proof Ledger rows while `mission.sh`
229
275
  runs the existing proof queue. The script still writes proof logs and status
230
276
  JSONL for humans.
231
277
  - `projscan evidence-pack --pr-comment` includes the latest Proof Receipt
232
278
  summary when a contract and ledger are available, so PR comments show proof
233
- status, reviewer decision, scope, stale proof, failed proof, and the replay
234
- command.
279
+ status, proof replay, reviewer decision, scope, stale proof, failed proof,
280
+ proof sufficiency, recipe gaps, required reviewers, changed-after-proof files,
281
+ receipt fingerprint, and the replay command.
282
+ - Proof artifacts are harder to spoof: Proof Contract and Proof Ledger reads
283
+ reject symlink escapes, proof logs redact more standalone token/key shapes,
284
+ and generated mission scripts reject shell control syntax before running.
285
+ - The codebase behind the proof workflow is smaller and easier to review:
286
+ source hotspots in Mission Control, bug-hunt, quality-scorecard, workplan,
287
+ adoption, start-mode routing, and intent routing were split into focused
288
+ helpers with architecture tests.
235
289
  - MCP now includes `projscan_prove`, bringing the MCP surface to 48 tools.
236
290
 
291
+ ## 4.14.0 Notes
292
+
293
+ 4.14.0 ships the Verified Change Workflow and Executed Proof Runner:
294
+
295
+ - `projscan prove --intent "<change>"` creates a local Proof Contract before
296
+ editing.
297
+ - `projscan prove --run -- <command...>` executes an explicit local proof
298
+ command with shell execution disabled and writes a redacted Proof Ledger row.
299
+ - `projscan prove --changed` emits a Proof Receipt for PRs, agents, and CI.
300
+ - `projscan evidence-pack --pr-comment` includes the latest Proof Receipt
301
+ summary when a contract and ledger are available.
302
+ - MCP includes `projscan_prove`, bringing the MCP surface to 48 tools.
303
+
237
304
  ## 4.12.1 Notes
238
305
 
239
306
  4.12.1 is the simulator precision patch for the Proof Cards V2 release:
@@ -264,7 +331,7 @@ npm run docs:demos
264
331
 
265
332
  - Added a dedicated Proof Cards screenshot for `projscan assess` and
266
333
  `projscan simulate`.
267
- - Regenerated README screenshots so public media shows the current 47-tool MCP
334
+ - Regenerated README screenshots so public media showed the 47-tool MCP
268
335
  surface.
269
336
  - Updated website handoff guidance to use immutable `v4.11.1` media URLs.
270
337
 
@@ -333,7 +400,7 @@ npx -y projscan mcp --watch
333
400
  | `projscan assess` | proof-first assessment with Proof Cards, risk delta, and fix-first guidance |
334
401
  | `projscan simulate` | risk delta simulator for a proposed change plan before editing |
335
402
  | `projscan prove` | executable Proof Contracts, Verified Workflow JSON, and Proof Receipts |
336
- | `projscan evidence-pack` | PR-ready proof with risks, owners, and next commands |
403
+ | `projscan evidence-pack` | review evidence with risks, owners, proof receipts, and next commands |
337
404
  | `projscan bug-hunt` | ranked fix queue from health, hotspots, session, and preflight evidence |
338
405
  | `projscan workplan` | ordered agent tasks with proof and handoff text |
339
406
  | `projscan doctor` | project health, tooling gaps, dead code, and supply-chain signals |
@@ -400,6 +467,15 @@ Create a `.projscanrc.json` when repo defaults should live in source control:
400
467
  "severityOverrides": {
401
468
  "missing-prettier": "info"
402
469
  },
470
+ "proofRecipes": [
471
+ {
472
+ "id": "billing-critical",
473
+ "matches": ["src/billing/**"],
474
+ "requiredCommands": ["npm test -- tests/billing/retry.test.ts"],
475
+ "requiredReviewers": ["@platform"],
476
+ "forbiddenFiles": ["src/auth/**"]
477
+ }
478
+ ],
403
479
  "reportPolicies": {
404
480
  "apiEvidence": {
405
481
  "reportScope": ["src/api", "packages/backend"],
@@ -416,6 +492,12 @@ the rule everywhere. For one line, add an inline directive next to the value:
416
492
  const firebaseKey = 'AIza...'; // projscan-ignore-line hardcoded-secret -- Firebase web keys are public identifiers
417
493
  ```
418
494
 
495
+ Use `proofRecipes` when a path needs team-specific proof; when a matching recipe
496
+ is configured, `projscan prove` adds its proof commands, reviewers, and forbidden
497
+ files to the contract and receipt. It does not run proof commands by itself.
498
+ Recipes without `requiredCommands` are skipped, and duplicate recipe IDs keep the
499
+ first valid recipe.
500
+
419
501
  Config docs live in [docs/GUIDE.md](docs/GUIDE.md#configuration-projscanrc).
420
502
 
421
503
  ## CI
@@ -491,7 +573,7 @@ Plugin docs:
491
573
 
492
574
  ## Supported Repos
493
575
 
494
- projscan reads TypeScript, JavaScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, C, and C++ with AST-aware adapters where available. It also detects file-level signals for Shell, CSS, HTML, SQL, Dart, Lua, Scala, R, and related project files.
576
+ projscan reads TypeScript, JavaScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++ with AST-aware adapters where available. It also detects file-level signals for C, Shell, CSS, HTML, SQL, Dart, Lua, Scala, R, and related project files.
495
577
 
496
578
  Framework signals cover React, Next.js, Vue, Nuxt, Svelte, Angular, Express, Fastify, NestJS, Vite, Tailwind CSS, Prisma, Remix, SvelteKit, Astro, Hono, Koa, and common monorepo layouts.
497
579
 
@@ -507,7 +589,7 @@ JavaScript and TypeScript use `@babel/parser`. Non-JS languages use packaged tre
507
589
  | Network | `audit`, registry checks, opt-in telemetry, and optional semantic model download can contact the network. |
508
590
  | Telemetry | Off until you run `projscan telemetry enable` or accept the `init team` prompt. |
509
591
  | Plugins | Local plugin code runs after `PROJSCAN_PLUGINS_PREVIEW=1` and an execution path such as `doctor`, `ci`, `analyze`, or `plugin test --execute`. |
510
- | Repo writes | Source writes require explicit fix commands. Cache and mission proof files stay under local projscan directories. |
592
+ | Repo writes | Source writes require explicit fix commands. Caches, saved missions, Proof Contracts, Proof Ledger rows, and proof logs stay under `.projscan*` local directories. |
511
593
 
512
594
  Audit helpers:
513
595
 
@@ -522,7 +604,7 @@ Supply-chain scanners may flag package strings or APIs used by `git`, `npm audit
522
604
 
523
605
  ## Install Notes
524
606
 
525
- `projscan@4.14.0` has seven direct runtime dependencies:
607
+ `projscan@4.16.0` has seven direct runtime dependencies:
526
608
 
527
609
  - `@babel/parser`
528
610
  - `@babel/types`
@@ -532,7 +614,7 @@ Supply-chain scanners may flag package strings or APIs used by `git`, `npm audit
532
614
  - `ora`
533
615
  - `web-tree-sitter`
534
616
 
535
- If npm prints `allow-scripts` warnings during a global install, check which package names it lists. projscan core does not need `node-gyp` grammar builds at runtime in 4.14.0. Open an issue with the warning text if npm reports install scripts from `projscan@latest`, or run `projscan feedback intake --text "<warning text>" --format json` to turn it into a focused setup-trust task.
617
+ If npm prints `allow-scripts` warnings during a global install, check which package names it lists. projscan core does not need `node-gyp` grammar builds at runtime in 4.16.0. Open an issue with the warning text if npm reports install scripts from `projscan@latest`, or run `projscan feedback intake --text "<warning text>" --format json` to turn it into a focused setup-trust task.
536
618
 
537
619
  The grammar packages are build-time sources, not global-install dependencies. Published grammar assets include `tree-sitter-python.wasm` and `tree-sitter-c_sharp.wasm`.
538
620
 
@@ -1,6 +1,8 @@
1
1
  import fs from 'node:fs/promises';
2
+ import path from 'node:path';
2
3
  import chalk from 'chalk';
3
4
  import { assertFormatSupported, getRootPath, maybeCompactBanner, program, setupLogLevel, } from '../_shared.js';
5
+ import { createBaseframeAssessment } from '../../core/baseframeAssessment.js';
4
6
  import { computeAssess } from '../../core/assess.js';
5
7
  const ASSESS_MODES = ['standard', 'fix-first', 'ship-readiness'];
6
8
  export function registerAssess() {
@@ -12,11 +14,28 @@ export function registerAssess() {
12
14
  .option('--max-cards <count>', 'maximum Proof Cards to return', parsePositiveInt)
13
15
  .option('--baseline <path>', 'prior assess JSON file to compare risk delta against')
14
16
  .option('--feedback <path>', 'local projscan feedback artifact to apply as trust memory')
17
+ .option('--intent <text>', 'Baseframe task intent to include in the assessment artifact')
18
+ .option('--task-id <id>', 'Baseframe task ID for the assessment artifact')
19
+ .option('--emit-baseframe', 'write the Baseframe ProjScan assessment artifact')
20
+ .option('--output <path>', 'explicit ProjScan-owned Baseframe assessment output path')
15
21
  .action(async (cmdOpts) => {
16
22
  setupLogLevel();
17
- maybeCompactBanner();
18
- const format = assertFormatSupported('assess');
19
23
  try {
24
+ if (shouldEmitBaseframe(cmdOpts)) {
25
+ const root = getRootPath();
26
+ const intent = requireBaseframeOption(cmdOpts.intent, '--intent');
27
+ const taskId = requireBaseframeOption(cmdOpts.taskId, '--task-id');
28
+ await createBaseframeAssessment({
29
+ root,
30
+ intent,
31
+ taskId,
32
+ outputPath: cmdOpts.output,
33
+ });
34
+ console.log(baseframeAssessmentRelativePath(root, taskId, cmdOpts.output));
35
+ return;
36
+ }
37
+ maybeCompactBanner();
38
+ const format = assertFormatSupported('assess');
20
39
  const report = await computeAssess(getRootPath(), {
21
40
  goal: cmdOpts.goal,
22
41
  mode: cmdOpts.mode,
@@ -153,6 +172,21 @@ function parsePositiveInt(value) {
153
172
  }
154
173
  return parsed;
155
174
  }
175
+ function shouldEmitBaseframe(cmdOpts) {
176
+ return Boolean(cmdOpts.emitBaseframe || cmdOpts.output);
177
+ }
178
+ function requireBaseframeOption(value, name) {
179
+ const trimmed = typeof value === 'string' ? value.trim() : '';
180
+ if (!trimmed)
181
+ throw new Error(`projscan assess Baseframe export requires ${name}.`);
182
+ return trimmed;
183
+ }
184
+ function baseframeAssessmentRelativePath(root, taskId, outputPath) {
185
+ const absolutePath = outputPath
186
+ ? path.resolve(root, outputPath)
187
+ : path.join(root, '.baseframe', 'evidence', taskId, 'projscan-assessment.json');
188
+ return path.relative(root, absolutePath).replace(/\\/g, '/');
189
+ }
156
190
  async function readAssessBaseline(filePath) {
157
191
  try {
158
192
  const parsed = JSON.parse(await fs.readFile(filePath, 'utf-8'));
@@ -1 +1 @@
1
- {"version":3,"file":"assess.js","sourceRoot":"","sources":["../../../src/cli/commands/assess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assess.js","sourceRoot":"","sources":["../../../src/cli/commands/assess.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export function registerEvidencePack() {
8
8
  .option('--line <line>', 'product line to include, repeatable (default: next six minor lines)', collectLine, [])
9
9
  .option('--website-prompt', 'include website-update prompt text')
10
10
  .option('--pr-comment', 'print a GitHub PR comment markdown artifact')
11
+ .option('--base-ref <ref>', 'explicit git base ref for review evidence')
11
12
  .option('--max-findings <count>', 'maximum bug-hunt findings to include', parsePositiveInt)
12
13
  .action(async (cmdOpts) => {
13
14
  setupLogLevel();
@@ -18,6 +19,7 @@ export function registerEvidencePack() {
18
19
  lines: cmdOpts.line,
19
20
  includeWebsitePrompt: cmdOpts.websitePrompt === true,
20
21
  includePrComment: cmdOpts.prComment === true,
22
+ baseRef: cmdOpts.baseRef,
21
23
  maxFindings: cmdOpts.maxFindings,
22
24
  });
23
25
  if (format === 'json') {
@@ -1 +1 @@
1
- {"version":3,"file":"evidencePack.js","sourceRoot":"","sources":["../../../src/cli/commands/evidencePack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidencePack.js","sourceRoot":"","sources":["../../../src/cli/commands/evidencePack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,MAAM,UAAU,oBAAoB;IAClC,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,6FAA6F,CAC9F;SACA,MAAM,CACL,eAAe,EACf,qEAAqE,EACrE,WAAW,EACX,EAAE,CACH;SACA,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,6CAA6C,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;SACvE,MAAM,CAAC,wBAAwB,EAAE,sCAAsC,EAAE,gBAAgB,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,aAAa,EAAE,CAAC;QAChB,kBAAkB,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,EAAE;gBACtD,KAAK,EAAE,OAAO,CAAC,IAAI;gBACnB,oBAAoB,EAAE,OAAO,CAAC,aAAa,KAAK,IAAI;gBACpD,gBAAgB,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;gBAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,QAAkB;IACpD,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA0B;IACnD,MAAM,KAAK,GACT,MAAM,CAAC,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,KAAK,CAAC,GAAG;QACX,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YAC5B,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,cAAc,IAAI,SAAS,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACrC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACxC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAA8B;IACnD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}