projscan 4.3.1 → 4.5.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 (699) hide show
  1. package/CONTRIBUTING.md +5 -1
  2. package/PRIVACY.md +1 -0
  3. package/README.md +278 -231
  4. package/THIRD-PARTY-NOTICES.md +31 -31
  5. package/dist/analyzers/architectureCheck.js.map +1 -1
  6. package/dist/analyzers/crossPackageImportCheck.js +3 -2
  7. package/dist/analyzers/crossPackageImportCheck.js.map +1 -1
  8. package/dist/analyzers/deadCodeCheck.js +10 -2
  9. package/dist/analyzers/deadCodeCheck.js.map +1 -1
  10. package/dist/analyzers/dependencyRiskCheck.js +1 -5
  11. package/dist/analyzers/dependencyRiskCheck.js.map +1 -1
  12. package/dist/analyzers/eslintCheck.js +3 -1
  13. package/dist/analyzers/eslintCheck.js.map +1 -1
  14. package/dist/analyzers/prettierCheck.js +16 -3
  15. package/dist/analyzers/prettierCheck.js.map +1 -1
  16. package/dist/analyzers/pythonDependencyRiskCheck.js +4 -17
  17. package/dist/analyzers/pythonDependencyRiskCheck.js.map +1 -1
  18. package/dist/analyzers/pythonLinterCheck.js +2 -12
  19. package/dist/analyzers/pythonLinterCheck.js.map +1 -1
  20. package/dist/analyzers/securityCheck.js +26 -9
  21. package/dist/analyzers/securityCheck.js.map +1 -1
  22. package/dist/analyzers/supplyChainCheck.js +6 -2
  23. package/dist/analyzers/supplyChainCheck.js.map +1 -1
  24. package/dist/analyzers/testCheck.js +10 -1
  25. package/dist/analyzers/testCheck.js.map +1 -1
  26. package/dist/analyzers/unusedDependencyCheck.js +8 -8
  27. package/dist/analyzers/unusedDependencyCheck.js.map +1 -1
  28. package/dist/cli/_shared.d.ts +2 -1
  29. package/dist/cli/_shared.js +14 -2
  30. package/dist/cli/_shared.js.map +1 -1
  31. package/dist/cli/commands/agentBrief.js +7 -1
  32. package/dist/cli/commands/agentBrief.js.map +1 -1
  33. package/dist/cli/commands/analyze.js +12 -2
  34. package/dist/cli/commands/analyze.js.map +1 -1
  35. package/dist/cli/commands/applyFix.js +1 -1
  36. package/dist/cli/commands/applyFix.js.map +1 -1
  37. package/dist/cli/commands/audit.js +4 -2
  38. package/dist/cli/commands/audit.js.map +1 -1
  39. package/dist/cli/commands/badge.js.map +1 -1
  40. package/dist/cli/commands/bugHunt.js +2 -2
  41. package/dist/cli/commands/bugHunt.js.map +1 -1
  42. package/dist/cli/commands/ci.js +11 -0
  43. package/dist/cli/commands/ci.js.map +1 -1
  44. package/dist/cli/commands/claim.js +3 -3
  45. package/dist/cli/commands/claim.js.map +1 -1
  46. package/dist/cli/commands/collision.js +4 -2
  47. package/dist/cli/commands/collision.js.map +1 -1
  48. package/dist/cli/commands/coordinate.js +4 -2
  49. package/dist/cli/commands/coordinate.js.map +1 -1
  50. package/dist/cli/commands/coupling.js.map +1 -1
  51. package/dist/cli/commands/coverage.js.map +1 -1
  52. package/dist/cli/commands/dataflow.js.map +1 -1
  53. package/dist/cli/commands/dependencies.js +1 -1
  54. package/dist/cli/commands/dependencies.js.map +1 -1
  55. package/dist/cli/commands/diff.js.map +1 -1
  56. package/dist/cli/commands/doctor.js +11 -0
  57. package/dist/cli/commands/doctor.js.map +1 -1
  58. package/dist/cli/commands/dogfood.js +30 -5
  59. package/dist/cli/commands/dogfood.js.map +1 -1
  60. package/dist/cli/commands/evidencePack.js.map +1 -1
  61. package/dist/cli/commands/explainIssue.js +1 -1
  62. package/dist/cli/commands/explainIssue.js.map +1 -1
  63. package/dist/cli/commands/feedback.js +19 -5
  64. package/dist/cli/commands/feedback.js.map +1 -1
  65. package/dist/cli/commands/file.js +1 -1
  66. package/dist/cli/commands/file.js.map +1 -1
  67. package/dist/cli/commands/fix.js.map +1 -1
  68. package/dist/cli/commands/fixSuggest.js +12 -4
  69. package/dist/cli/commands/fixSuggest.js.map +1 -1
  70. package/dist/cli/commands/hotspots.js.map +1 -1
  71. package/dist/cli/commands/impact.js +1 -1
  72. package/dist/cli/commands/impact.js.map +1 -1
  73. package/dist/cli/commands/init.js +13 -5
  74. package/dist/cli/commands/init.js.map +1 -1
  75. package/dist/cli/commands/installHook.js +2 -2
  76. package/dist/cli/commands/installHook.js.map +1 -1
  77. package/dist/cli/commands/mcp.js.map +1 -1
  78. package/dist/cli/commands/memory.js +5 -2
  79. package/dist/cli/commands/memory.js.map +1 -1
  80. package/dist/cli/commands/mergeRisk.js +1 -1
  81. package/dist/cli/commands/mergeRisk.js.map +1 -1
  82. package/dist/cli/commands/missionProof.js +13 -12
  83. package/dist/cli/commands/missionProof.js.map +1 -1
  84. package/dist/cli/commands/outdated.js +1 -1
  85. package/dist/cli/commands/outdated.js.map +1 -1
  86. package/dist/cli/commands/plugin.js +10 -6
  87. package/dist/cli/commands/plugin.js.map +1 -1
  88. package/dist/cli/commands/prDiff.js +1 -1
  89. package/dist/cli/commands/prDiff.js.map +1 -1
  90. package/dist/cli/commands/preflight.js +1 -5
  91. package/dist/cli/commands/preflight.js.map +1 -1
  92. package/dist/cli/commands/privacyCheck.js +3 -1
  93. package/dist/cli/commands/privacyCheck.js.map +1 -1
  94. package/dist/cli/commands/qualityScorecard.js.map +1 -1
  95. package/dist/cli/commands/recipes.js.map +1 -1
  96. package/dist/cli/commands/regressionPlan.js.map +1 -1
  97. package/dist/cli/commands/releaseTrain.js.map +1 -1
  98. package/dist/cli/commands/review.js +1 -1
  99. package/dist/cli/commands/review.js.map +1 -1
  100. package/dist/cli/commands/route.js.map +1 -1
  101. package/dist/cli/commands/search.js +5 -2
  102. package/dist/cli/commands/search.js.map +1 -1
  103. package/dist/cli/commands/semanticGraph.js.map +1 -1
  104. package/dist/cli/commands/session.js +2 -2
  105. package/dist/cli/commands/session.js.map +1 -1
  106. package/dist/cli/commands/start.js +3 -1177
  107. package/dist/cli/commands/start.js.map +1 -1
  108. package/dist/cli/commands/startAction.d.ts +36 -0
  109. package/dist/cli/commands/startAction.js +70 -0
  110. package/dist/cli/commands/startAction.js.map +1 -0
  111. package/dist/cli/commands/startConsole.d.ts +7 -0
  112. package/dist/cli/commands/startConsole.js +309 -0
  113. package/dist/cli/commands/startConsole.js.map +1 -0
  114. package/dist/cli/commands/startMissionBundle.d.ts +41 -0
  115. package/dist/cli/commands/startMissionBundle.js +645 -0
  116. package/dist/cli/commands/startMissionBundle.js.map +1 -0
  117. package/dist/cli/commands/startOutput.d.ts +31 -0
  118. package/dist/cli/commands/startOutput.js +232 -0
  119. package/dist/cli/commands/startOutput.js.map +1 -0
  120. package/dist/cli/commands/startShortcuts.d.ts +26 -0
  121. package/dist/cli/commands/startShortcuts.js +117 -0
  122. package/dist/cli/commands/startShortcuts.js.map +1 -0
  123. package/dist/cli/commands/telemetry.js +2 -1
  124. package/dist/cli/commands/telemetry.js.map +1 -1
  125. package/dist/cli/commands/trial.js +19 -4
  126. package/dist/cli/commands/trial.js.map +1 -1
  127. package/dist/cli/commands/understand.js +3 -1
  128. package/dist/cli/commands/understand.js.map +1 -1
  129. package/dist/cli/commands/upgrade.js +1 -1
  130. package/dist/cli/commands/upgrade.js.map +1 -1
  131. package/dist/cli/commands/watch.js +1 -1
  132. package/dist/cli/commands/watch.js.map +1 -1
  133. package/dist/cli/commands/workplan.js.map +1 -1
  134. package/dist/cli/commands/workspace.js +1 -1
  135. package/dist/cli/commands/workspace.js.map +1 -1
  136. package/dist/cli/commands/workspaces.js +1 -1
  137. package/dist/cli/commands/workspaces.js.map +1 -1
  138. package/dist/cli/index.js +2 -117
  139. package/dist/cli/index.js.map +1 -1
  140. package/dist/cli/registerCommands.d.ts +4 -0
  141. package/dist/cli/registerCommands.js +125 -0
  142. package/dist/cli/registerCommands.js.map +1 -0
  143. package/dist/core/adoption.d.ts +2 -1
  144. package/dist/core/adoption.js +40 -13
  145. package/dist/core/adoption.js.map +1 -1
  146. package/dist/core/agentBrief.js +19 -6
  147. package/dist/core/agentBrief.js.map +1 -1
  148. package/dist/core/applyFix.js.map +1 -1
  149. package/dist/core/ast.d.ts +5 -0
  150. package/dist/core/ast.js +38 -20
  151. package/dist/core/ast.js.map +1 -1
  152. package/dist/core/auditRunner.js.map +1 -1
  153. package/dist/core/bugHunt.js +119 -17
  154. package/dist/core/bugHunt.js.map +1 -1
  155. package/dist/core/claims.js +5 -2
  156. package/dist/core/claims.js.map +1 -1
  157. package/dist/core/codeGraph.js +10 -0
  158. package/dist/core/codeGraph.js.map +1 -1
  159. package/dist/core/codeGraphReexports.d.ts +9 -0
  160. package/dist/core/codeGraphReexports.js +59 -0
  161. package/dist/core/codeGraphReexports.js.map +1 -0
  162. package/dist/core/collisionDetector.js +14 -4
  163. package/dist/core/collisionDetector.js.map +1 -1
  164. package/dist/core/coordination.js +4 -6
  165. package/dist/core/coordination.js.map +1 -1
  166. package/dist/core/couplingAnalyzer.d.ts +2 -1
  167. package/dist/core/couplingAnalyzer.js.map +1 -1
  168. package/dist/core/coverageParser.js.map +1 -1
  169. package/dist/core/dataflow.js +13 -3
  170. package/dist/core/dataflow.js.map +1 -1
  171. package/dist/core/dataflowFilters.js +8 -3
  172. package/dist/core/dataflowFilters.js.map +1 -1
  173. package/dist/core/dependencyAnalyzer.js +4 -1
  174. package/dist/core/dependencyAnalyzer.js.map +1 -1
  175. package/dist/core/dogfood.d.ts +1 -1
  176. package/dist/core/dogfood.js +39 -5
  177. package/dist/core/dogfood.js.map +1 -1
  178. package/dist/core/embeddings.js.map +1 -1
  179. package/dist/core/evidenceComment.js +34 -12
  180. package/dist/core/evidenceComment.js.map +1 -1
  181. package/dist/core/explainIssue.js +1 -2
  182. package/dist/core/explainIssue.js.map +1 -1
  183. package/dist/core/feedback.d.ts +1 -1
  184. package/dist/core/feedback.js +15 -4
  185. package/dist/core/feedback.js.map +1 -1
  186. package/dist/core/fileInspector.js +8 -2
  187. package/dist/core/fileInspector.js.map +1 -1
  188. package/dist/core/fixFirst.d.ts +3 -1
  189. package/dist/core/fixFirst.js +17 -4
  190. package/dist/core/fixFirst.js.map +1 -1
  191. package/dist/core/fixSuggest.js +20 -12
  192. package/dist/core/fixSuggest.js.map +1 -1
  193. package/dist/core/frameworkDetector.js +5 -3
  194. package/dist/core/frameworkDetector.js.map +1 -1
  195. package/dist/core/frameworkSources.d.ts +1 -1
  196. package/dist/core/frameworkSources.js +114 -4
  197. package/dist/core/frameworkSources.js.map +1 -1
  198. package/dist/core/graphCorpus.d.ts +1 -1
  199. package/dist/core/graphCorpus.js +9 -1
  200. package/dist/core/graphCorpus.js.map +1 -1
  201. package/dist/core/graphQuery.js.map +1 -1
  202. package/dist/core/hotspotAnalyzer.js +26 -6
  203. package/dist/core/hotspotAnalyzer.js.map +1 -1
  204. package/dist/core/impact.d.ts +1 -1
  205. package/dist/core/impact.js.map +1 -1
  206. package/dist/core/importGraph.js.map +1 -1
  207. package/dist/core/indexCache.js +2 -1
  208. package/dist/core/indexCache.js.map +1 -1
  209. package/dist/core/intent.d.ts +1 -1
  210. package/dist/core/intent.js +143 -46
  211. package/dist/core/intent.js.map +1 -1
  212. package/dist/core/intentRouter.js +5467 -445
  213. package/dist/core/intentRouter.js.map +1 -1
  214. package/dist/core/issueEngine.js +1 -1
  215. package/dist/core/issueEngine.js.map +1 -1
  216. package/dist/core/languageDetector.js +1 -9
  217. package/dist/core/languageDetector.js.map +1 -1
  218. package/dist/core/languages/cppAdapter.js +3 -1
  219. package/dist/core/languages/cppAdapter.js.map +1 -1
  220. package/dist/core/languages/cppExports.js +6 -1
  221. package/dist/core/languages/cppExports.js.map +1 -1
  222. package/dist/core/languages/cppFunctions.js +3 -1
  223. package/dist/core/languages/cppFunctions.js.map +1 -1
  224. package/dist/core/languages/csharpAdapter.js.map +1 -1
  225. package/dist/core/languages/csharpFunctions.js +3 -1
  226. package/dist/core/languages/csharpFunctions.js.map +1 -1
  227. package/dist/core/languages/csharpImports.js +2 -1
  228. package/dist/core/languages/csharpImports.js.map +1 -1
  229. package/dist/core/languages/goAdapter.js.map +1 -1
  230. package/dist/core/languages/goExports.js.map +1 -1
  231. package/dist/core/languages/goFunctions.js +9 -3
  232. package/dist/core/languages/goFunctions.js.map +1 -1
  233. package/dist/core/languages/javaAdapter.js +1 -2
  234. package/dist/core/languages/javaAdapter.js.map +1 -1
  235. package/dist/core/languages/javaFunctions.js +6 -2
  236. package/dist/core/languages/javaFunctions.js.map +1 -1
  237. package/dist/core/languages/javascriptAdapter.js +43 -8
  238. package/dist/core/languages/javascriptAdapter.js.map +1 -1
  239. package/dist/core/languages/kotlinAdapter.js +5 -2
  240. package/dist/core/languages/kotlinAdapter.js.map +1 -1
  241. package/dist/core/languages/kotlinFunctions.js +5 -6
  242. package/dist/core/languages/kotlinFunctions.js.map +1 -1
  243. package/dist/core/languages/kotlinImports.js +3 -1
  244. package/dist/core/languages/kotlinImports.js.map +1 -1
  245. package/dist/core/languages/kotlinManifests.js +7 -1
  246. package/dist/core/languages/kotlinManifests.js.map +1 -1
  247. package/dist/core/languages/phpAdapter.js +4 -1
  248. package/dist/core/languages/phpAdapter.js.map +1 -1
  249. package/dist/core/languages/phpExports.js.map +1 -1
  250. package/dist/core/languages/phpFunctions.js +18 -6
  251. package/dist/core/languages/phpFunctions.js.map +1 -1
  252. package/dist/core/languages/phpManifests.js.map +1 -1
  253. package/dist/core/languages/pythonAdapter.js.map +1 -1
  254. package/dist/core/languages/pythonFunctions.js +9 -3
  255. package/dist/core/languages/pythonFunctions.js.map +1 -1
  256. package/dist/core/languages/pythonManifests.d.ts +11 -0
  257. package/dist/core/languages/pythonManifests.js +34 -19
  258. package/dist/core/languages/pythonManifests.js.map +1 -1
  259. package/dist/core/languages/rubyAdapter.js.map +1 -1
  260. package/dist/core/languages/rubyFunctions.js +6 -2
  261. package/dist/core/languages/rubyFunctions.js.map +1 -1
  262. package/dist/core/languages/rustAdapter.js.map +1 -1
  263. package/dist/core/languages/rustFunctions.js +6 -2
  264. package/dist/core/languages/rustFunctions.js.map +1 -1
  265. package/dist/core/languages/swiftAdapter.js +3 -1
  266. package/dist/core/languages/swiftAdapter.js.map +1 -1
  267. package/dist/core/languages/swiftCyclomatic.js.map +1 -1
  268. package/dist/core/languages/swiftFunctions.js +3 -1
  269. package/dist/core/languages/swiftFunctions.js.map +1 -1
  270. package/dist/core/languages/swiftImports.js.map +1 -1
  271. package/dist/core/mergeRisk.js +5 -1
  272. package/dist/core/mergeRisk.js.map +1 -1
  273. package/dist/core/missionOutcome.d.ts +1 -1
  274. package/dist/core/missionOutcome.js +9 -4
  275. package/dist/core/missionOutcome.js.map +1 -1
  276. package/dist/core/missionProof.d.ts +1 -1
  277. package/dist/core/missionProof.js +8 -6
  278. package/dist/core/missionProof.js.map +1 -1
  279. package/dist/core/missionProofBaseline.d.ts +1 -1
  280. package/dist/core/missionProofBaseline.js +8 -2
  281. package/dist/core/missionProofBaseline.js.map +1 -1
  282. package/dist/core/missionProofMarkdown.d.ts +1 -1
  283. package/dist/core/missionProofMarkdown.js +4 -1
  284. package/dist/core/missionProofMarkdown.js.map +1 -1
  285. package/dist/core/missionProofSummary.d.ts +1 -1
  286. package/dist/core/monorepo.d.ts +1 -1
  287. package/dist/core/monorepo.js +4 -2
  288. package/dist/core/monorepo.js.map +1 -1
  289. package/dist/core/onboarding.d.ts +2 -1
  290. package/dist/core/onboarding.js.map +1 -1
  291. package/dist/core/outdatedDetector.js +5 -1
  292. package/dist/core/outdatedDetector.js.map +1 -1
  293. package/dist/core/ownership.js +3 -1
  294. package/dist/core/ownership.js.map +1 -1
  295. package/dist/core/pathClassifiers.js.map +1 -1
  296. package/dist/core/pluginDx.js +2 -1
  297. package/dist/core/pluginDx.js.map +1 -1
  298. package/dist/core/pluginTrust.js +1 -3
  299. package/dist/core/pluginTrust.js.map +1 -1
  300. package/dist/core/plugins.js +5 -5
  301. package/dist/core/plugins.js.map +1 -1
  302. package/dist/core/prDiff.d.ts +1 -2
  303. package/dist/core/prDiff.js +5 -1
  304. package/dist/core/prDiff.js.map +1 -1
  305. package/dist/core/preflight.js +15 -6
  306. package/dist/core/preflight.js.map +1 -1
  307. package/dist/core/privacy.js.map +1 -1
  308. package/dist/core/qualityScorecard.d.ts +1 -1
  309. package/dist/core/qualityScorecard.js +43 -11
  310. package/dist/core/qualityScorecard.js.map +1 -1
  311. package/dist/core/regressionPlan.js +25 -7
  312. package/dist/core/regressionPlan.js.map +1 -1
  313. package/dist/core/releaseEvidence.js +41 -17
  314. package/dist/core/releaseEvidence.js.map +1 -1
  315. package/dist/core/releaseTrain.js +66 -38
  316. package/dist/core/releaseTrain.js.map +1 -1
  317. package/dist/core/reportScope.d.ts +17 -0
  318. package/dist/core/reportScope.js +143 -0
  319. package/dist/core/reportScope.js.map +1 -0
  320. package/dist/core/repositoryScanner.js +1 -3
  321. package/dist/core/repositoryScanner.js.map +1 -1
  322. package/dist/core/review.d.ts +1 -1
  323. package/dist/core/review.js +72 -10
  324. package/dist/core/review.js.map +1 -1
  325. package/dist/core/reviewDataflow.js +7 -1
  326. package/dist/core/reviewDataflow.js.map +1 -1
  327. package/dist/core/reviewPublicSurface.d.ts +13 -0
  328. package/dist/core/reviewPublicSurface.js +134 -0
  329. package/dist/core/reviewPublicSurface.js.map +1 -0
  330. package/dist/core/roadmapCatalog.d.ts +1 -0
  331. package/dist/core/roadmapCatalog.js +349 -30
  332. package/dist/core/roadmapCatalog.js.map +1 -1
  333. package/dist/core/searchIndex.js +124 -17
  334. package/dist/core/searchIndex.js.map +1 -1
  335. package/dist/core/semanticGraph.js.map +1 -1
  336. package/dist/core/semanticSearch.js +20 -4
  337. package/dist/core/semanticSearch.js.map +1 -1
  338. package/dist/core/session.js +1 -2
  339. package/dist/core/session.js.map +1 -1
  340. package/dist/core/sessionResources.js +6 -2
  341. package/dist/core/sessionResources.js.map +1 -1
  342. package/dist/core/start.d.ts +3 -9
  343. package/dist/core/start.js +23 -3237
  344. package/dist/core/start.js.map +1 -1
  345. package/dist/core/startAdoptionLoop.d.ts +2 -0
  346. package/dist/core/startAdoptionLoop.js +41 -0
  347. package/dist/core/startAdoptionLoop.js.map +1 -0
  348. package/dist/core/startEvidence.d.ts +5 -0
  349. package/dist/core/startEvidence.js +62 -0
  350. package/dist/core/startEvidence.js.map +1 -0
  351. package/dist/core/startExecutionPlan.d.ts +16 -0
  352. package/dist/core/startExecutionPlan.js +185 -0
  353. package/dist/core/startExecutionPlan.js.map +1 -0
  354. package/dist/core/startHarness.d.ts +3 -0
  355. package/dist/core/startHarness.js +47 -0
  356. package/dist/core/startHarness.js.map +1 -0
  357. package/dist/core/startIntentTargets.d.ts +24 -0
  358. package/dist/core/startIntentTargets.js +1106 -0
  359. package/dist/core/startIntentTargets.js.map +1 -0
  360. package/dist/core/startMissionControl.d.ts +16 -0
  361. package/dist/core/startMissionControl.js +145 -0
  362. package/dist/core/startMissionControl.js.map +1 -0
  363. package/dist/core/startMissionPolicy.d.ts +19 -0
  364. package/dist/core/startMissionPolicy.js +246 -0
  365. package/dist/core/startMissionPolicy.js.map +1 -0
  366. package/dist/core/startMode.d.ts +11 -0
  367. package/dist/core/startMode.js +139 -0
  368. package/dist/core/startMode.js.map +1 -0
  369. package/dist/core/startNextActions.d.ts +13 -0
  370. package/dist/core/startNextActions.js +19 -0
  371. package/dist/core/startNextActions.js.map +1 -0
  372. package/dist/core/startOptions.d.ts +18 -0
  373. package/dist/core/startOptions.js +29 -0
  374. package/dist/core/startOptions.js.map +1 -0
  375. package/dist/core/startResume.d.ts +7 -0
  376. package/dist/core/startResume.js +468 -0
  377. package/dist/core/startResume.js.map +1 -0
  378. package/dist/core/startReviewGate.d.ts +11 -0
  379. package/dist/core/startReviewGate.js +200 -0
  380. package/dist/core/startReviewGate.js.map +1 -0
  381. package/dist/core/startRouteActions.d.ts +7 -0
  382. package/dist/core/startRouteActions.js +497 -0
  383. package/dist/core/startRouteActions.js.map +1 -0
  384. package/dist/core/startRunbook.d.ts +24 -0
  385. package/dist/core/startRunbook.js +271 -0
  386. package/dist/core/startRunbook.js.map +1 -0
  387. package/dist/core/startSuccessCriteria.d.ts +14 -0
  388. package/dist/core/startSuccessCriteria.js +497 -0
  389. package/dist/core/startSuccessCriteria.js.map +1 -0
  390. package/dist/core/taint.js +22 -12
  391. package/dist/core/taint.js.map +1 -1
  392. package/dist/core/telemetry.js +19 -5
  393. package/dist/core/telemetry.js.map +1 -1
  394. package/dist/core/trial.d.ts +1 -1
  395. package/dist/core/trial.js +15 -6
  396. package/dist/core/trial.js.map +1 -1
  397. package/dist/core/understand.d.ts +1 -1
  398. package/dist/core/understand.js +165 -51
  399. package/dist/core/understand.js.map +1 -1
  400. package/dist/core/upgradePreview.js +73 -1
  401. package/dist/core/upgradePreview.js.map +1 -1
  402. package/dist/core/watcher.js +18 -3
  403. package/dist/core/watcher.js.map +1 -1
  404. package/dist/core/workplan.js +87 -17
  405. package/dist/core/workplan.js.map +1 -1
  406. package/dist/core/workspace.js.map +1 -1
  407. package/dist/index.d.ts +9 -9
  408. package/dist/index.js +7 -7
  409. package/dist/index.js.map +1 -1
  410. package/dist/mcp/pagination.js.map +1 -1
  411. package/dist/mcp/prompts.js +28 -20
  412. package/dist/mcp/prompts.js.map +1 -1
  413. package/dist/mcp/server.js +6 -74
  414. package/dist/mcp/server.js.map +1 -1
  415. package/dist/mcp/serverPayload.d.ts +13 -0
  416. package/dist/mcp/serverPayload.js +61 -0
  417. package/dist/mcp/serverPayload.js.map +1 -0
  418. package/dist/mcp/tokenBudget.js.map +1 -1
  419. package/dist/mcp/tools/_shared.js.map +1 -1
  420. package/dist/mcp/tools/agentBrief.js +7 -1
  421. package/dist/mcp/tools/agentBrief.js.map +1 -1
  422. package/dist/mcp/tools/applyFix.js +1 -1
  423. package/dist/mcp/tools/applyFix.js.map +1 -1
  424. package/dist/mcp/tools/audit.js.map +1 -1
  425. package/dist/mcp/tools/bugHunt.js +2 -2
  426. package/dist/mcp/tools/bugHunt.js.map +1 -1
  427. package/dist/mcp/tools/claim.js +8 -3
  428. package/dist/mcp/tools/claim.js.map +1 -1
  429. package/dist/mcp/tools/collision.js +3 -1
  430. package/dist/mcp/tools/collision.js.map +1 -1
  431. package/dist/mcp/tools/coordinate.js.map +1 -1
  432. package/dist/mcp/tools/coordinateWatch.js +5 -2
  433. package/dist/mcp/tools/coordinateWatch.js.map +1 -1
  434. package/dist/mcp/tools/costSummary.js.map +1 -1
  435. package/dist/mcp/tools/coupling.js.map +1 -1
  436. package/dist/mcp/tools/coverage.js.map +1 -1
  437. package/dist/mcp/tools/dataflow.js.map +1 -1
  438. package/dist/mcp/tools/dependencies.js +4 -1
  439. package/dist/mcp/tools/dependencies.js.map +1 -1
  440. package/dist/mcp/tools/doctor.js.map +1 -1
  441. package/dist/mcp/tools/explainIssue.js +4 -1
  442. package/dist/mcp/tools/explainIssue.js.map +1 -1
  443. package/dist/mcp/tools/fixSuggest.js +5 -2
  444. package/dist/mcp/tools/fixSuggest.js.map +1 -1
  445. package/dist/mcp/tools/hotspots.js +4 -1
  446. package/dist/mcp/tools/hotspots.js.map +1 -1
  447. package/dist/mcp/tools/impact.js +10 -3
  448. package/dist/mcp/tools/impact.js.map +1 -1
  449. package/dist/mcp/tools/mergeRisk.js.map +1 -1
  450. package/dist/mcp/tools/plugin.js +6 -1
  451. package/dist/mcp/tools/plugin.js.map +1 -1
  452. package/dist/mcp/tools/prDiff.js.map +1 -1
  453. package/dist/mcp/tools/preflight.js +1 -5
  454. package/dist/mcp/tools/preflight.js.map +1 -1
  455. package/dist/mcp/tools/review.js.map +1 -1
  456. package/dist/mcp/tools/reviewWatch.d.ts +1 -1
  457. package/dist/mcp/tools/reviewWatch.js +9 -9
  458. package/dist/mcp/tools/reviewWatch.js.map +1 -1
  459. package/dist/mcp/tools/route.js +1 -1
  460. package/dist/mcp/tools/route.js.map +1 -1
  461. package/dist/mcp/tools/search.js.map +1 -1
  462. package/dist/mcp/tools/semanticGraph.js +8 -2
  463. package/dist/mcp/tools/semanticGraph.js.map +1 -1
  464. package/dist/mcp/tools/start.js.map +1 -1
  465. package/dist/mcp/tools/structure.js +7 -1
  466. package/dist/mcp/tools/structure.js.map +1 -1
  467. package/dist/mcp/tools/understand.js.map +1 -1
  468. package/dist/mcp/tools/upgrade.d.ts +1 -1
  469. package/dist/mcp/tools/upgrade.js +2 -16
  470. package/dist/mcp/tools/upgrade.js.map +1 -1
  471. package/dist/mcp/tools/workspaceGraph.js +10 -1
  472. package/dist/mcp/tools/workspaceGraph.js.map +1 -1
  473. package/dist/mcp/tools.js +3 -1
  474. package/dist/mcp/tools.js.map +1 -1
  475. package/dist/projscan-sbom.cdx.json +2136 -904
  476. package/dist/reporters/consoleAnalysisReporter.d.ts +2 -0
  477. package/dist/reporters/consoleAnalysisReporter.js +89 -0
  478. package/dist/reporters/consoleAnalysisReporter.js.map +1 -0
  479. package/dist/reporters/consoleArchitectureReporter.d.ts +3 -0
  480. package/dist/reporters/consoleArchitectureReporter.js +47 -0
  481. package/dist/reporters/consoleArchitectureReporter.js.map +1 -0
  482. package/dist/reporters/consoleAuditReporter.d.ts +2 -0
  483. package/dist/reporters/consoleAuditReporter.js +46 -0
  484. package/dist/reporters/consoleAuditReporter.js.map +1 -0
  485. package/dist/reporters/consoleCiReporter.d.ts +2 -0
  486. package/dist/reporters/consoleCiReporter.js +27 -0
  487. package/dist/reporters/consoleCiReporter.js.map +1 -0
  488. package/dist/reporters/consoleCouplingReporter.d.ts +2 -0
  489. package/dist/reporters/consoleCouplingReporter.js +53 -0
  490. package/dist/reporters/consoleCouplingReporter.js.map +1 -0
  491. package/dist/reporters/consoleCoverageReporter.d.ts +2 -0
  492. package/dist/reporters/consoleCoverageReporter.js +62 -0
  493. package/dist/reporters/consoleCoverageReporter.js.map +1 -0
  494. package/dist/reporters/consoleDependencyReporter.d.ts +2 -0
  495. package/dist/reporters/consoleDependencyReporter.js +64 -0
  496. package/dist/reporters/consoleDependencyReporter.js.map +1 -0
  497. package/dist/reporters/consoleDiffReporter.d.ts +2 -0
  498. package/dist/reporters/consoleDiffReporter.js +80 -0
  499. package/dist/reporters/consoleDiffReporter.js.map +1 -0
  500. package/dist/reporters/consoleExplanationReporter.d.ts +2 -0
  501. package/dist/reporters/consoleExplanationReporter.js +33 -0
  502. package/dist/reporters/consoleExplanationReporter.js.map +1 -0
  503. package/dist/reporters/consoleFileReporter.d.ts +2 -0
  504. package/dist/reporters/consoleFileReporter.js +133 -0
  505. package/dist/reporters/consoleFileReporter.js.map +1 -0
  506. package/dist/reporters/consoleFixGuidanceReporter.d.ts +8 -0
  507. package/dist/reporters/consoleFixGuidanceReporter.js +135 -0
  508. package/dist/reporters/consoleFixGuidanceReporter.js.map +1 -0
  509. package/dist/reporters/consoleHealthReporter.d.ts +13 -0
  510. package/dist/reporters/consoleHealthReporter.js +111 -0
  511. package/dist/reporters/consoleHealthReporter.js.map +1 -0
  512. package/dist/reporters/consoleHotspotReporter.d.ts +2 -0
  513. package/dist/reporters/consoleHotspotReporter.js +68 -0
  514. package/dist/reporters/consoleHotspotReporter.js.map +1 -0
  515. package/dist/reporters/consoleImpactReporter.d.ts +2 -0
  516. package/dist/reporters/consoleImpactReporter.js +65 -0
  517. package/dist/reporters/consoleImpactReporter.js.map +1 -0
  518. package/dist/reporters/consoleOutdatedReporter.d.ts +2 -0
  519. package/dist/reporters/consoleOutdatedReporter.js +54 -0
  520. package/dist/reporters/consoleOutdatedReporter.js.map +1 -0
  521. package/dist/reporters/consolePrDiffReporter.d.ts +2 -0
  522. package/dist/reporters/consolePrDiffReporter.js +75 -0
  523. package/dist/reporters/consolePrDiffReporter.js.map +1 -0
  524. package/dist/reporters/consoleReporter.d.ts +21 -38
  525. package/dist/reporters/consoleReporter.js +19 -1000
  526. package/dist/reporters/consoleReporter.js.map +1 -1
  527. package/dist/reporters/consoleReviewReporter.d.ts +2 -0
  528. package/dist/reporters/consoleReviewReporter.js +101 -0
  529. package/dist/reporters/consoleReviewReporter.js.map +1 -0
  530. package/dist/reporters/consoleUpgradeReporter.d.ts +2 -0
  531. package/dist/reporters/consoleUpgradeReporter.js +89 -0
  532. package/dist/reporters/consoleUpgradeReporter.js.map +1 -0
  533. package/dist/reporters/consoleWorkspaceReporter.d.ts +2 -0
  534. package/dist/reporters/consoleWorkspaceReporter.js +24 -0
  535. package/dist/reporters/consoleWorkspaceReporter.js.map +1 -0
  536. package/dist/reporters/htmlReporter.d.ts +2 -1
  537. package/dist/reporters/htmlReporter.js +9 -3
  538. package/dist/reporters/htmlReporter.js.map +1 -1
  539. package/dist/reporters/jsonReporter.d.ts +2 -1
  540. package/dist/reporters/jsonReporter.js.map +1 -1
  541. package/dist/reporters/markdownAnalysisReporter.d.ts +2 -0
  542. package/dist/reporters/markdownAnalysisReporter.js +40 -0
  543. package/dist/reporters/markdownAnalysisReporter.js.map +1 -0
  544. package/dist/reporters/markdownAuditReporter.d.ts +2 -0
  545. package/dist/reporters/markdownAuditReporter.js +27 -0
  546. package/dist/reporters/markdownAuditReporter.js.map +1 -0
  547. package/dist/reporters/markdownDependencyReporter.d.ts +2 -0
  548. package/dist/reporters/markdownDependencyReporter.js +33 -0
  549. package/dist/reporters/markdownDependencyReporter.js.map +1 -0
  550. package/dist/reporters/markdownDiffReporter.d.ts +2 -0
  551. package/dist/reporters/markdownDiffReporter.js +65 -0
  552. package/dist/reporters/markdownDiffReporter.js.map +1 -0
  553. package/dist/reporters/markdownFileReporter.d.ts +2 -0
  554. package/dist/reporters/markdownFileReporter.js +92 -0
  555. package/dist/reporters/markdownFileReporter.js.map +1 -0
  556. package/dist/reporters/markdownFixGuidanceReporter.d.ts +8 -0
  557. package/dist/reporters/markdownFixGuidanceReporter.js +95 -0
  558. package/dist/reporters/markdownFixGuidanceReporter.js.map +1 -0
  559. package/dist/reporters/markdownImpactReporter.d.ts +2 -0
  560. package/dist/reporters/markdownImpactReporter.js +52 -0
  561. package/dist/reporters/markdownImpactReporter.js.map +1 -0
  562. package/dist/reporters/markdownReporter.d.ts +10 -16
  563. package/dist/reporters/markdownReporter.js +9 -452
  564. package/dist/reporters/markdownReporter.js.map +1 -1
  565. package/dist/reporters/markdownReviewReporter.d.ts +2 -0
  566. package/dist/reporters/markdownReviewReporter.js +84 -0
  567. package/dist/reporters/markdownReviewReporter.js.map +1 -0
  568. package/dist/reporters/markdownUpgradeReporter.d.ts +2 -0
  569. package/dist/reporters/markdownUpgradeReporter.js +62 -0
  570. package/dist/reporters/markdownUpgradeReporter.js.map +1 -0
  571. package/dist/reporters/sarifReporter.js.map +1 -1
  572. package/dist/tool-manifest.json +5 -5
  573. package/dist/types/agentBrief.d.ts +48 -0
  574. package/dist/types/agentBrief.js +2 -0
  575. package/dist/types/agentBrief.js.map +1 -0
  576. package/dist/types/analysis.d.ts +32 -0
  577. package/dist/types/analysis.js +2 -0
  578. package/dist/types/analysis.js.map +1 -0
  579. package/dist/types/baseline.d.ts +59 -0
  580. package/dist/types/baseline.js +2 -0
  581. package/dist/types/baseline.js.map +1 -0
  582. package/dist/types/bugHunt.d.ts +41 -0
  583. package/dist/types/bugHunt.js +2 -0
  584. package/dist/types/bugHunt.js.map +1 -0
  585. package/dist/types/common.d.ts +34 -0
  586. package/dist/types/common.js +2 -0
  587. package/dist/types/common.js.map +1 -0
  588. package/dist/types/config.d.ts +66 -0
  589. package/dist/types/config.js +2 -0
  590. package/dist/types/config.js.map +1 -0
  591. package/dist/types/coupling.d.ts +40 -0
  592. package/dist/types/coupling.js +2 -0
  593. package/dist/types/coupling.js.map +1 -0
  594. package/dist/types/coverage.d.ts +32 -0
  595. package/dist/types/coverage.js +2 -0
  596. package/dist/types/coverage.js.map +1 -0
  597. package/dist/types/dependencyHealth.d.ts +73 -0
  598. package/dist/types/dependencyHealth.js +2 -0
  599. package/dist/types/dependencyHealth.js.map +1 -0
  600. package/dist/types/dogfood.d.ts +185 -0
  601. package/dist/types/dogfood.js +2 -0
  602. package/dist/types/dogfood.js.map +1 -0
  603. package/dist/types/evidencePack.d.ts +76 -0
  604. package/dist/types/evidencePack.js +2 -0
  605. package/dist/types/evidencePack.js.map +1 -0
  606. package/dist/types/fixes.d.ts +77 -0
  607. package/dist/types/fixes.js +2 -0
  608. package/dist/types/fixes.js.map +1 -0
  609. package/dist/types/graph.d.ts +80 -0
  610. package/dist/types/graph.js +2 -0
  611. package/dist/types/graph.js.map +1 -0
  612. package/dist/types/graphCorpus.d.ts +16 -0
  613. package/dist/types/graphCorpus.js +2 -0
  614. package/dist/types/graphCorpus.js.map +1 -0
  615. package/dist/types/hotspots.d.ts +42 -0
  616. package/dist/types/hotspots.js +2 -0
  617. package/dist/types/hotspots.js.map +1 -0
  618. package/dist/types/impact.d.ts +62 -0
  619. package/dist/types/impact.js +2 -0
  620. package/dist/types/impact.js.map +1 -0
  621. package/dist/types/inspection.d.ts +47 -0
  622. package/dist/types/inspection.js +2 -0
  623. package/dist/types/inspection.js.map +1 -0
  624. package/dist/types/mcp.d.ts +39 -0
  625. package/dist/types/mcp.js +2 -0
  626. package/dist/types/mcp.js.map +1 -0
  627. package/dist/types/pluginDx.d.ts +42 -0
  628. package/dist/types/pluginDx.js +2 -0
  629. package/dist/types/pluginDx.js.map +1 -0
  630. package/dist/types/prDiff.d.ts +41 -0
  631. package/dist/types/prDiff.js +2 -0
  632. package/dist/types/prDiff.js.map +1 -0
  633. package/dist/types/preflight.d.ts +122 -0
  634. package/dist/types/preflight.js +2 -0
  635. package/dist/types/preflight.js.map +1 -0
  636. package/dist/types/qualityScorecard.d.ts +34 -0
  637. package/dist/types/qualityScorecard.js +2 -0
  638. package/dist/types/qualityScorecard.js.map +1 -0
  639. package/dist/types/regressionPlan.d.ts +32 -0
  640. package/dist/types/regressionPlan.js +2 -0
  641. package/dist/types/regressionPlan.js.map +1 -0
  642. package/dist/types/releaseTrain.d.ts +37 -0
  643. package/dist/types/releaseTrain.js +2 -0
  644. package/dist/types/releaseTrain.js.map +1 -0
  645. package/dist/types/review.d.ts +203 -0
  646. package/dist/types/review.js +2 -0
  647. package/dist/types/review.js.map +1 -0
  648. package/dist/types/reviewContract.d.ts +9 -0
  649. package/dist/types/reviewContract.js +2 -0
  650. package/dist/types/reviewContract.js.map +1 -0
  651. package/dist/types/scanning.d.ts +111 -0
  652. package/dist/types/scanning.js +2 -0
  653. package/dist/types/scanning.js.map +1 -0
  654. package/dist/types/session.d.ts +42 -0
  655. package/dist/types/session.js +2 -0
  656. package/dist/types/session.js.map +1 -0
  657. package/dist/types/start.d.ts +437 -0
  658. package/dist/types/start.js +2 -0
  659. package/dist/types/start.js.map +1 -0
  660. package/dist/types/trial.d.ts +27 -0
  661. package/dist/types/trial.js +2 -0
  662. package/dist/types/trial.js.map +1 -0
  663. package/dist/types/understand.d.ts +153 -0
  664. package/dist/types/understand.js +2 -0
  665. package/dist/types/understand.js.map +1 -0
  666. package/dist/types/workplan.d.ts +67 -0
  667. package/dist/types/workplan.js +2 -0
  668. package/dist/types/workplan.js.map +1 -0
  669. package/dist/types/workplanHandoff.d.ts +11 -0
  670. package/dist/types/workplanHandoff.js +2 -0
  671. package/dist/types/workplanHandoff.js.map +1 -0
  672. package/dist/types/workspace.d.ts +18 -0
  673. package/dist/types/workspace.js +2 -0
  674. package/dist/types/workspace.js.map +1 -0
  675. package/dist/types.d.ts +34 -2348
  676. package/dist/types.js +0 -1
  677. package/dist/types.js.map +1 -1
  678. package/dist/utils/banner.js +15 -6
  679. package/dist/utils/banner.js.map +1 -1
  680. package/dist/utils/baseline.js +11 -9
  681. package/dist/utils/baseline.js.map +1 -1
  682. package/dist/utils/changedFiles.js +1 -1
  683. package/dist/utils/changedFiles.js.map +1 -1
  684. package/dist/utils/config.d.ts +2 -1
  685. package/dist/utils/config.js +32 -0
  686. package/dist/utils/config.js.map +1 -1
  687. package/dist/utils/formatSupport.d.ts +1 -1
  688. package/dist/utils/formatSupport.js +7 -1
  689. package/dist/utils/formatSupport.js.map +1 -1
  690. package/dist/utils/packageJsonLocator.js.map +1 -1
  691. package/docs/GUIDE.md +211 -147
  692. package/docs/PLUGIN-GALLERY.md +9 -1
  693. package/docs/ROADMAP.md +120 -86
  694. package/docs/demos/projscan-4-1-demo.html +46 -79
  695. package/docs/examples/adoption-workflows.md +128 -0
  696. package/docs/examples/plugins/graph-context.mjs +1 -2
  697. package/docs/examples/plugins/security-sensitive-files.mjs +2 -1
  698. package/docs/examples/swarm-coordination.md +109 -0
  699. package/package.json +12 -5
@@ -34,8 +34,13 @@
34
34
  background: var(--paper);
35
35
  color: var(--ink);
36
36
  font-family:
37
- Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
38
- "Segoe UI", sans-serif;
37
+ Inter,
38
+ ui-sans-serif,
39
+ system-ui,
40
+ -apple-system,
41
+ BlinkMacSystemFont,
42
+ 'Segoe UI',
43
+ sans-serif;
39
44
  line-height: 1.45;
40
45
  }
41
46
 
@@ -181,8 +186,7 @@
181
186
 
182
187
  .terminal-body {
183
188
  padding: 26px;
184
- font-family:
185
- "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
189
+ font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
186
190
  font-size: 15px;
187
191
  }
188
192
 
@@ -425,9 +429,9 @@
425
429
  <p class="eyebrow">Mission Outcome Loop</p>
426
430
  <h1>Resume from real proof.</h1>
427
431
  <p class="lead">
428
- projscan routes a developer goal, saves the mission, reads the
429
- proof state, and tells the next agent what changed, what remains,
430
- and whether the work is ready for version review.
432
+ projscan routes a developer goal, saves the mission, reads the proof state, and tells
433
+ the next agent what changed, what remains, and whether the work is ready for version
434
+ review.
431
435
  </p>
432
436
  <div class="pills" aria-label="Product capabilities">
433
437
  <span class="pill">Mission Control</span>
@@ -464,64 +468,41 @@
464
468
  <div class="terminal-body">
465
469
  <span class="line"
466
470
  ><span class="prompt">$</span>
467
- <span class="cmd"
468
- >projscan start --mission .projscan/mission</span
469
- ></span
471
+ <span class="cmd">projscan start --mission .projscan/mission</span></span
470
472
  >
471
473
  <span class="line dim">ProjScan Mission Control</span>
472
474
  <span class="line">Mission: .projscan/mission</span>
473
475
  <span class="line">Status: <span class="success">passed</span></span>
474
476
  <span class="line"
475
- >Outcome:
476
- <span class="notice">proof passed after 3 commands</span></span
477
- >
478
- <span class="line dim"
479
- >read proof-logs/summary.json and status.jsonl</span
477
+ >Outcome: <span class="notice">proof passed after 3 commands</span></span
480
478
  >
479
+ <span class="line dim">read proof-logs/summary.json and status.jsonl</span>
481
480
 
482
481
  <div class="term-section">
483
482
  <span class="line term-heading">What Changed</span>
484
- <span class="line"
485
- >- Mission proof passed after 3 command(s).</span
486
- >
487
- <span class="line"
488
- >- 1 reviewer decision recorded.</span
489
- >
483
+ <span class="line">- Mission proof passed after 3 command(s).</span>
484
+ <span class="line">- 1 reviewer decision recorded.</span>
490
485
  <span class="line">- 0 failed gates remain.</span>
491
486
  </div>
492
487
 
493
488
  <div class="term-section">
494
489
  <span class="line term-heading">What Remains</span>
495
- <span class="line success"
496
- >Run ./review.sh and choose a reviewer reply.</span
497
- >
498
- <span class="line success"
499
- >Version candidate: review_candidate</span
500
- >
490
+ <span class="line success">Run ./review.sh and choose a reviewer reply.</span>
491
+ <span class="line success">Version candidate: review_candidate</span>
501
492
  </div>
502
493
 
503
494
  <div class="term-section">
504
495
  <span class="line term-heading">Outcome Commands</span>
505
- <span class="line success"
506
- >projscan start --mission .projscan/mission</span
507
- >
508
- <span class="line success"
509
- >projscan mission-proof --mission .projscan/mission</span
510
- >
511
- <span class="line success"
512
- >projscan mission-proof --baseline manual-runs.json</span
513
- >
496
+ <span class="line success">projscan start --mission .projscan/mission</span>
497
+ <span class="line success">projscan mission-proof --mission .projscan/mission</span>
498
+ <span class="line success">projscan mission-proof --baseline manual-runs.json</span>
514
499
  <span class="line dim">all source stays local</span>
515
500
  </div>
516
501
 
517
502
  <div class="term-section">
518
503
  <span class="line term-heading">Proof Evidence</span>
519
- <span class="line success"
520
- >proof-logs/summary.json: passed</span
521
- >
522
- <span class="line success"
523
- >proof-logs/status.jsonl: 3 rows</span
524
- >
504
+ <span class="line success">proof-logs/summary.json: passed</span>
505
+ <span class="line success">proof-logs/status.jsonl: 3 rows</span>
525
506
  </div>
526
507
 
527
508
  <div class="term-section">
@@ -540,27 +521,25 @@
540
521
  <span class="label green">Goal routing</span>
541
522
  <h2>Ask in plain language.</h2>
542
523
  <p>
543
- Route privacy, merge readiness, refactor risk, local setup,
544
- ownership, dependency, release, and handoff questions to the right
545
- command with matched keywords and confidence.
524
+ Route privacy, merge readiness, refactor risk, local setup, ownership, dependency,
525
+ release, and handoff questions to the right command with matched keywords and
526
+ confidence.
546
527
  </p>
547
528
  </article>
548
529
  <article class="card">
549
530
  <span class="label blue">Outcome resume</span>
550
531
  <h2>Start from saved proof.</h2>
551
532
  <p>
552
- <code>projscan start --mission</code> reads the bundle proof state
553
- and gives the next agent a focused "what changed / what remains"
554
- handoff.
533
+ <code>projscan start --mission</code> reads the bundle proof state and gives the next
534
+ agent a focused "what changed / what remains" handoff.
555
535
  </p>
556
536
  </article>
557
537
  <article class="card">
558
538
  <span class="label amber">Proof report</span>
559
539
  <h2>Measure the saved work.</h2>
560
540
  <p>
561
- <code>projscan mission-proof</code> reports proof completion,
562
- reviewer approvals, reruns, failed gates, time saved, and local
563
- risk avoided.
541
+ <code>projscan mission-proof</code> reports proof completion, reviewer approvals,
542
+ reruns, failed gates, time saved, and local risk avoided.
564
543
  </p>
565
544
  </article>
566
545
  </section>
@@ -572,9 +551,9 @@
572
551
  <h2>Close the loop.</h2>
573
552
  </div>
574
553
  <p>
575
- Developers and agents can resume from a saved mission bundle,
576
- summarize pass/fail evidence, and compare local proof against a
577
- manual baseline without sending source code anywhere.
554
+ Developers and agents can resume from a saved mission bundle, summarize pass/fail
555
+ evidence, and compare local proof against a manual baseline without sending source code
556
+ anywhere.
578
557
  </p>
579
558
  </div>
580
559
 
@@ -590,27 +569,18 @@
590
569
  <span class="line"
591
570
  ><span class="prompt">$</span>
592
571
  <span class="cmd"
593
- >projscan mission-proof --mission .projscan/mission --format
594
- json</span
572
+ >projscan mission-proof --mission .projscan/mission --format json</span
595
573
  ></span
596
574
  >
597
575
  <span class="line dim">Local proof summary</span>
598
576
  <span class="line">&nbsp;</span>
599
577
  <span class="line term-heading">{"passed":1,"failed":0,</span>
600
- <span class="line success"
601
- >&nbsp;"reruns":0,"reviewerApprovals":1}</span
602
- >
578
+ <span class="line success">&nbsp;"reruns":0,"reviewerApprovals":1}</span>
603
579
  <span class="line">&nbsp;</span>
604
580
  <span class="line term-heading">Risk avoided</span>
605
- <span class="line success"
606
- >- proof gate passed before release</span
607
- >
608
- <span class="line success"
609
- >- version review is safe to request</span
610
- >
611
- <span class="line notice"
612
- >Next: projscan start --mission .projscan/mission</span
613
- >
581
+ <span class="line success">- proof gate passed before release</span>
582
+ <span class="line success">- version review is safe to request</span>
583
+ <span class="line notice">Next: projscan start --mission .projscan/mission</span>
614
584
  </div>
615
585
  </section>
616
586
 
@@ -619,32 +589,29 @@
619
589
  <span class="tag green">Verify</span>
620
590
  <span>
621
591
  <strong>Outcome resume</strong>
622
- <code>--mission</code> reads <code>summary.json</code>, status
623
- rows, and reviewer decisions.
592
+ <code>--mission</code> reads <code>summary.json</code>, status rows, and reviewer
593
+ decisions.
624
594
  </span>
625
595
  </div>
626
596
  <div class="signal">
627
597
  <span class="tag blue">MCP</span>
628
598
  <span>
629
599
  <strong>MCP start input</strong>
630
- <code>mission_dir</code> carries the same proof outcome to
631
- agent clients.
600
+ <code>mission_dir</code> carries the same proof outcome to agent clients.
632
601
  </span>
633
602
  </div>
634
603
  <div class="signal">
635
604
  <span class="tag amber">List</span>
636
605
  <span>
637
606
  <strong>Proof summary</strong>
638
- <code>mission-proof</code> reports completion, reruns, failed
639
- gates, and approvals.
607
+ <code>mission-proof</code> reports completion, reruns, failed gates, and approvals.
640
608
  </span>
641
609
  </div>
642
610
  <div class="signal">
643
611
  <span class="tag red">Gate</span>
644
612
  <span>
645
613
  <strong>Version review</strong>
646
- Outcome data says whether to request review or keep fixing
647
- failed proof.
614
+ Outcome data says whether to request review or keep fixing failed proof.
648
615
  </span>
649
616
  </div>
650
617
  </div>
@@ -652,10 +619,10 @@
652
619
  </section>
653
620
  </main>
654
621
  <script>
655
- if (window.location.hash === "#proof") {
656
- document.body.classList.add("proof-only");
622
+ if (window.location.hash === '#proof') {
623
+ document.body.classList.add('proof-only');
657
624
  }
658
- document.documentElement.dataset.ready = "true";
625
+ document.documentElement.dataset.ready = 'true';
659
626
  </script>
660
627
  </body>
661
628
  </html>
@@ -0,0 +1,128 @@
1
+ # Adoption Workflows
2
+
3
+ These examples turn projscan from a one-off scanner into a repeatable team
4
+ habit. They are written around the personas in `docs/PERSONAS.md`: skeptical
5
+ senior reviewer, platform lead, product engineer, release owner, and security
6
+ reviewer.
7
+
8
+ ## 1. Agent Orchestration
9
+
10
+ Use this when a team is standardizing how agents start work, prove changes, and
11
+ hand off safely.
12
+
13
+ ```bash
14
+ projscan privacy-check --offline
15
+ projscan start --intent "add billing webhook support" --format json
16
+ projscan preflight --mode before_edit --format json
17
+ projscan workplan --mode before_edit --format json
18
+ projscan agent-brief --intent "handoff billing webhook work" --format json
19
+ ```
20
+
21
+ Decision loop:
22
+
23
+ | Persona | Reads | Decision |
24
+ | --- | --- | --- |
25
+ | Product engineer | `start.missionControl.readyActions` | What can I run now? |
26
+ | Platform lead | `preflight.verdict`, coordination hints | Is parallel work safe? |
27
+ | Senior reviewer | proof commands and done criteria | Is the handoff reviewable? |
28
+
29
+ If the repo uses AgentLoopKit or AgentFlight, `projscan start` surfaces the
30
+ local harness proof commands when their config files exist. Run those commands
31
+ as part of the handoff proof:
32
+
33
+ ```bash
34
+ npm exec agentloop -- status
35
+ npm exec agentflight -- verify
36
+ ```
37
+
38
+ ## 2. Package Ownership
39
+
40
+ Use this when a monorepo or platform team needs to know who owns a dependency,
41
+ route review, or plan an upgrade.
42
+
43
+ ```bash
44
+ projscan dependencies --format json
45
+ projscan semantic-graph --query package_importers --symbol fastapi --format json
46
+ projscan upgrade fastapi --format json
47
+ projscan agent-brief --intent "handoff package ownership for fastapi" --format json
48
+ ```
49
+
50
+ For Node packages, `upgrade` reads local `package.json`, `node_modules`, local
51
+ CHANGELOG files, and importer evidence. For Python packages, it reads
52
+ `pyproject.toml`, `setup.cfg`, `setup.py`, root `requirements*.txt` files,
53
+ Poetry lockfiles, and pinned root requirements, then returns declared scope,
54
+ current-version source, drift, and Python importers.
55
+
56
+ Decision loop:
57
+
58
+ | Persona | Reads | Decision |
59
+ | --- | --- | --- |
60
+ | Package owner | importer list | Which app or package needs review? |
61
+ | Release owner | drift and importer count | Is this safe for the current train? |
62
+ | Security reviewer | audit/dependencies plus importer evidence | Is a forced update justified? |
63
+
64
+ ## 3. Custom Policy Plugin
65
+
66
+ Use this when team-specific rules matter more than generic static analysis,
67
+ such as service ownership, route policy, or security-sensitive directories.
68
+
69
+ ```bash
70
+ projscan plugin init --kind analyzer --name team-policy
71
+ projscan plugin validate .projscan-plugins/team-policy.projscan-plugin.json
72
+ projscan plugin test .projscan-plugins/team-policy.projscan-plugin.json
73
+ PROJSCAN_PLUGINS_PREVIEW=1 projscan doctor --format json
74
+ ```
75
+
76
+ Start from packaged examples:
77
+
78
+ - `docs/examples/plugins/policy.projscan-plugin.json`
79
+ - `docs/examples/plugins/api-route-ownership.projscan-plugin.json`
80
+ - `docs/examples/plugins/security-sensitive-files.projscan-plugin.json`
81
+ - `docs/examples/plugins/team-radar.projscan-plugin.json`
82
+
83
+ Decision loop:
84
+
85
+ | Persona | Reads | Decision |
86
+ | --- | --- | --- |
87
+ | Platform lead | plugin diagnostics | Is the rule trusted enough for CI? |
88
+ | Security reviewer | emitted issues | Does the policy catch the right risky paths? |
89
+ | Product engineer | suggested action | Can this be fixed without tribal context? |
90
+
91
+ ## 4. Shareable Evidence With Path Controls
92
+
93
+ Use this when a team wants to share a health or CI artifact without exposing
94
+ repo layout or sensitive paths.
95
+
96
+ ```bash
97
+ projscan analyze --report-scope src/api --redact-paths --format json > reports/api-analysis.json
98
+ projscan doctor --report-scope src/api --redact-paths --format markdown > reports/api-health.md
99
+ projscan ci --report-scope src/api --redact-paths --format sarif > reports/api.sarif
100
+ ```
101
+
102
+ `--report-scope` keeps only issues and files under the listed repo-relative
103
+ paths. `--redact-paths` replaces file paths with stable labels such as
104
+ `redacted-path-1`, so reviewers can correlate evidence without seeing the
105
+ original repo structure.
106
+
107
+ When the same evidence shape is reused by a partner review, security check, or
108
+ release train, put it in config and select it by name:
109
+
110
+ ```json
111
+ {
112
+ "reportPolicies": {
113
+ "apiEvidence": {
114
+ "reportScope": ["src/api"],
115
+ "redactPaths": true
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ ```bash
122
+ projscan analyze --report-policy apiEvidence --format json > reports/api-analysis.json
123
+ projscan doctor --report-policy apiEvidence --format markdown > reports/api-health.md
124
+ projscan ci --report-policy apiEvidence --format sarif > reports/api.sarif
125
+ ```
126
+
127
+ Use direct `--report-scope` or `--redact-paths` flags with `--report-policy` for
128
+ one-off overrides without changing the shared config preset.
@@ -16,8 +16,7 @@ export default {
16
16
  {
17
17
  id: 'graph-context-summary',
18
18
  title: 'Graph context available',
19
- description:
20
- `Plugin received ${fileCount} file(s), ${functionCount} function(s), ${callEdges} semantic edge(s), and ${dataflow.riskCount} dataflow risk(s).`,
19
+ description: `Plugin received ${fileCount} file(s), ${functionCount} function(s), ${callEdges} semantic edge(s), and ${dataflow.riskCount} dataflow risk(s).`,
21
20
  severity,
22
21
  category: 'architecture',
23
22
  fixAvailable: false,
@@ -1,4 +1,5 @@
1
- const SECURITY_SENSITIVE = /(^|\/)(auth|crypto|security|secrets?|payments?|billing|middleware)(\/|\.)|\.env(\.|$)|(^|\/)server\.ts$/i;
1
+ const SECURITY_SENSITIVE =
2
+ /(^|\/)(auth|crypto|security|secrets?|payments?|billing|middleware)(\/|\.)|\.env(\.|$)|(^|\/)server\.ts$/i;
2
3
 
3
4
  export default {
4
5
  check: async (_rootPath, files) => {
@@ -0,0 +1,109 @@
1
+ # Swarm Coordination Workflow
2
+
3
+ Use this recipe when two or more agents, worktrees, or developers are changing
4
+ the same repo. The goal is not to prevent parallel work; it is to make overlap,
5
+ claim contention, and merge order visible before code lands.
6
+
7
+ ## Personas
8
+
9
+ - Platform lead: wants low merge conflict rate and clear ownership when several
10
+ agents are active.
11
+ - Product engineer: wants to keep moving without reading every sibling branch.
12
+ - Release owner: wants a merge order and proof that high-risk overlaps were
13
+ reviewed before sign-off.
14
+
15
+ ## Start of Work
16
+
17
+ Run this before the first edit in each worktree:
18
+
19
+ ```bash
20
+ projscan start --intent "show coordination status for parallel agents" --format json
21
+ projscan coordinate --format json
22
+ projscan claim list --format json
23
+ ```
24
+
25
+ If the work has a known file, claim it with a short lease:
26
+
27
+ ```bash
28
+ projscan claim add src/core/start.ts --agent api-agent --ttl 2700 --format json
29
+ ```
30
+
31
+ Treat a claim conflict as a routing signal. Either choose another task, split
32
+ the file, or ask the owner to release the claim.
33
+
34
+ ## During Work
35
+
36
+ Use the dedicated coordination tools for specific questions:
37
+
38
+ ```bash
39
+ projscan collisions --format json
40
+ projscan merge-risk --format json
41
+ projscan coordinate --format json
42
+ ```
43
+
44
+ Read the outputs this way:
45
+
46
+ | Tool | Question answered | Action |
47
+ | --- | --- | --- |
48
+ | `collisions` | Which worktrees touch the same files or dependent files? | Move one branch first, split work, or ask for review. |
49
+ | `claim list` | Who says they own a file, directory, or symbol right now? | Avoid edits under active leases unless agreed. |
50
+ | `merge-risk` | Which branch should merge first? | Integrate the least-entangled branch before larger branches. |
51
+ | `coordinate` | Is the current swarm clear, cautious, or conflicted? | Use this as the one-line status in handoffs. |
52
+ | `agent-brief` | What should the next agent know? | Include coordination hints in the next-agent packet. |
53
+
54
+ For MCP clients that support long-running notifications, use the watch tool:
55
+
56
+ ```text
57
+ projscan_coordinate_watch { "action": "start" }
58
+ projscan_coordinate_watch { "action": "list" }
59
+ projscan_coordinate_watch { "action": "stop" }
60
+ ```
61
+
62
+ For CLI users, `coordinate` also supports polling:
63
+
64
+ ```bash
65
+ projscan coordinate --watch --interval 5 --format json
66
+ ```
67
+
68
+ The watch loop should be treated as advisory evidence. A changed notification
69
+ or emitted watch row means rerun `projscan coordinate` before editing or merging.
70
+
71
+ ## Before Handoff
72
+
73
+ Capture a compact handoff with coordination evidence:
74
+
75
+ ```bash
76
+ projscan agent-brief --intent "handoff current parallel-agent work" --format json
77
+ projscan preflight --mode before_commit --format json
78
+ projscan coordinate --format json
79
+ ```
80
+
81
+ Handoff text should include:
82
+
83
+ - active claims you hold
84
+ - collision count and readiness verdict
85
+ - merge-risk order when multiple worktrees exist
86
+ - exact proof commands already run
87
+ - claim release command if the next agent owns the follow-up
88
+
89
+ ## Before Merge
90
+
91
+ ```bash
92
+ projscan preflight --mode before_merge --format json
93
+ projscan merge-risk --format json
94
+ projscan coordinate --format json
95
+ ```
96
+
97
+ Merge only when the coordination verdict is `clear` or when the release owner
98
+ has reviewed the listed conflicts. If the verdict is `conflicted`, resolve or
99
+ split the overlap before merging.
100
+
101
+ ## Evidence Gaps To Track
102
+
103
+ These are the next hardening targets for real swarm usage:
104
+
105
+ - transitive collision recall: prove dependent-file conflicts are caught, not
106
+ only same-file conflicts
107
+ - live watch adoption: prove agents notice and act on coordination changes
108
+ - preflight and agent-brief integration: prove the same coordination facts show
109
+ up where agents already look before editing or handing off
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "projscan",
3
3
  "mcpName": "io.github.abhiyoheswaran1/projscan",
4
- "version": "4.3.1",
4
+ "version": "4.5.0",
5
5
  "description": "Agent-first code intelligence. MCP server (2025-03-26) with 11 AST adapters covering 12 named languages: JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; repo understanding maps (projscan_understand), stable v3 semantic graph (projscan_semantic_graph), dataflow risk engine with bridge-helper detection (projscan_dataflow), code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg, new taint flows, contract changes, and newDataflowRisks) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), first-60-seconds workflow orientation (projscan_start), agent workplans (projscan_workplan), bug-hunt queues (projscan_bug_hunt), product-line planning (projscan_release_train), evidence packs (projscan_evidence_pack), regression planning (projscan_regression_plan), agent briefs (projscan_agent_brief), quality scorecards (projscan_quality_scorecard), and preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -21,6 +21,8 @@
21
21
  "docs/demos/projscan-mission-control.tape",
22
22
  "docs/demos/projscan-mission-proof.tape",
23
23
  "docs/plugin.schema.json",
24
+ "docs/examples/adoption-workflows.md",
25
+ "docs/examples/swarm-coordination.md",
24
26
  "docs/projscan-mission-control.png",
25
27
  "docs/projscan-mission-control.gif",
26
28
  "docs/projscan-proof-router.png",
@@ -42,8 +44,10 @@
42
44
  "scripts": {
43
45
  "build": "tsc && node scripts/copy-wasm.mjs && node scripts/generate-tool-manifest.mjs",
44
46
  "dev": "tsc --watch",
45
- "test": "vitest run --test-timeout 60000 --hook-timeout 60000 --maxWorkers 4",
46
- "test:watch": "vitest --test-timeout 60000 --hook-timeout 60000",
47
+ "typecheck": "tsc --noEmit",
48
+ "typecheck:public-types": "tsc -p tsconfig.public-types.json",
49
+ "test": "vitest run --exclude '.worktrees/**' --test-timeout 60000 --hook-timeout 60000 --maxWorkers 4",
50
+ "test:watch": "vitest --exclude '.worktrees/**' --test-timeout 60000 --hook-timeout 60000",
47
51
  "lint": "eslint src/",
48
52
  "format": "prettier --write .",
49
53
  "bench": "node scripts/bench.mjs",
@@ -58,7 +62,7 @@
58
62
  "sbom:generate": "node scripts/generate-sbom.mjs",
59
63
  "prepare": "npm run build",
60
64
  "check:graph-corpus": "node scripts/check-graph-corpus.mjs",
61
- "test:trust-smoke": "vitest run tests/cli/privacyCheck.test.ts tests/cli/start.test.ts tests/cli/preflight.test.ts tests/mcp/start.test.ts tests/mcp/preflight.test.ts tests/mcp/fileChangedNotifications.test.ts tests/core/repositoryScanner.gitignore.test.ts tests/core/issueEngine.trustConfig.test.ts tests/utils/changedFiles.test.ts tests/core/auditRunner.offline.test.ts tests/core/upgradePreview.checkRegistry.test.ts tests/core/telemetry.test.ts tests/analyzers/securityCheck.test.ts --test-timeout 60000 --hook-timeout 60000"
65
+ "test:trust-smoke": "vitest run --exclude '.worktrees/**' tests/cli/privacyCheck.test.ts tests/cli/start.test.ts tests/cli/preflight.test.ts tests/mcp/start.test.ts tests/mcp/preflight.test.ts tests/mcp/fileChangedNotifications.test.ts tests/core/repositoryScanner.gitignore.test.ts tests/core/issueEngine.trustConfig.test.ts tests/utils/changedFiles.test.ts tests/core/auditRunner.offline.test.ts tests/core/upgradePreview.checkRegistry.test.ts tests/core/telemetry.test.ts tests/analyzers/securityCheck.test.ts --test-timeout 60000 --hook-timeout 60000"
62
66
  },
63
67
  "keywords": [
64
68
  "cli",
@@ -118,14 +122,17 @@
118
122
  "@eslint/js": "^10.0.1",
119
123
  "@types/node": "^22.0.0",
120
124
  "@xenova/transformers": "^2.17.0",
125
+ "agentflight": "^0.4.1",
126
+ "agentloopkit": "^0.33.0",
121
127
  "eslint": "^10.0.3",
128
+ "prettier": "^3.8.4",
122
129
  "tree-sitter-cli": "^0.26.8",
123
130
  "tree-sitter-cpp": "^0.23.4",
124
131
  "tree-sitter-kotlin": "^0.3.8",
125
132
  "tree-sitter-swift": "^0.7.1",
126
133
  "typescript": "^5.6.0",
127
134
  "typescript-eslint": "^8.57.0",
128
- "vite": "^6.4.2",
135
+ "vite": "^8.0.16",
129
136
  "vitest": "^4.1.8"
130
137
  },
131
138
  "overrides": {