projscan 4.3.1 → 4.4.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 (677) hide show
  1. package/CONTRIBUTING.md +5 -1
  2. package/PRIVACY.md +1 -0
  3. package/README.md +253 -229
  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.map +1 -1
  34. package/dist/cli/commands/applyFix.js +1 -1
  35. package/dist/cli/commands/applyFix.js.map +1 -1
  36. package/dist/cli/commands/audit.js +4 -2
  37. package/dist/cli/commands/audit.js.map +1 -1
  38. package/dist/cli/commands/badge.js.map +1 -1
  39. package/dist/cli/commands/bugHunt.js +2 -2
  40. package/dist/cli/commands/bugHunt.js.map +1 -1
  41. package/dist/cli/commands/ci.js.map +1 -1
  42. package/dist/cli/commands/claim.js +3 -3
  43. package/dist/cli/commands/claim.js.map +1 -1
  44. package/dist/cli/commands/collision.js +4 -2
  45. package/dist/cli/commands/collision.js.map +1 -1
  46. package/dist/cli/commands/coordinate.js +4 -2
  47. package/dist/cli/commands/coordinate.js.map +1 -1
  48. package/dist/cli/commands/coupling.js.map +1 -1
  49. package/dist/cli/commands/coverage.js.map +1 -1
  50. package/dist/cli/commands/dataflow.js.map +1 -1
  51. package/dist/cli/commands/dependencies.js +1 -1
  52. package/dist/cli/commands/dependencies.js.map +1 -1
  53. package/dist/cli/commands/diff.js.map +1 -1
  54. package/dist/cli/commands/doctor.js.map +1 -1
  55. package/dist/cli/commands/dogfood.js +30 -5
  56. package/dist/cli/commands/dogfood.js.map +1 -1
  57. package/dist/cli/commands/evidencePack.js.map +1 -1
  58. package/dist/cli/commands/explainIssue.js +1 -1
  59. package/dist/cli/commands/explainIssue.js.map +1 -1
  60. package/dist/cli/commands/feedback.js +19 -5
  61. package/dist/cli/commands/feedback.js.map +1 -1
  62. package/dist/cli/commands/file.js +1 -1
  63. package/dist/cli/commands/file.js.map +1 -1
  64. package/dist/cli/commands/fix.js.map +1 -1
  65. package/dist/cli/commands/fixSuggest.js +12 -4
  66. package/dist/cli/commands/fixSuggest.js.map +1 -1
  67. package/dist/cli/commands/hotspots.js.map +1 -1
  68. package/dist/cli/commands/impact.js +1 -1
  69. package/dist/cli/commands/impact.js.map +1 -1
  70. package/dist/cli/commands/init.js +13 -5
  71. package/dist/cli/commands/init.js.map +1 -1
  72. package/dist/cli/commands/installHook.js +2 -2
  73. package/dist/cli/commands/installHook.js.map +1 -1
  74. package/dist/cli/commands/mcp.js.map +1 -1
  75. package/dist/cli/commands/memory.js +5 -2
  76. package/dist/cli/commands/memory.js.map +1 -1
  77. package/dist/cli/commands/mergeRisk.js +1 -1
  78. package/dist/cli/commands/mergeRisk.js.map +1 -1
  79. package/dist/cli/commands/missionProof.js +13 -12
  80. package/dist/cli/commands/missionProof.js.map +1 -1
  81. package/dist/cli/commands/outdated.js +1 -1
  82. package/dist/cli/commands/outdated.js.map +1 -1
  83. package/dist/cli/commands/plugin.js +10 -6
  84. package/dist/cli/commands/plugin.js.map +1 -1
  85. package/dist/cli/commands/prDiff.js +1 -1
  86. package/dist/cli/commands/prDiff.js.map +1 -1
  87. package/dist/cli/commands/preflight.js +1 -5
  88. package/dist/cli/commands/preflight.js.map +1 -1
  89. package/dist/cli/commands/privacyCheck.js +3 -1
  90. package/dist/cli/commands/privacyCheck.js.map +1 -1
  91. package/dist/cli/commands/qualityScorecard.js.map +1 -1
  92. package/dist/cli/commands/recipes.js.map +1 -1
  93. package/dist/cli/commands/regressionPlan.js.map +1 -1
  94. package/dist/cli/commands/releaseTrain.js.map +1 -1
  95. package/dist/cli/commands/review.js +1 -1
  96. package/dist/cli/commands/review.js.map +1 -1
  97. package/dist/cli/commands/route.js.map +1 -1
  98. package/dist/cli/commands/search.js +5 -2
  99. package/dist/cli/commands/search.js.map +1 -1
  100. package/dist/cli/commands/semanticGraph.js.map +1 -1
  101. package/dist/cli/commands/session.js +2 -2
  102. package/dist/cli/commands/session.js.map +1 -1
  103. package/dist/cli/commands/start.js +3 -1177
  104. package/dist/cli/commands/start.js.map +1 -1
  105. package/dist/cli/commands/startAction.d.ts +36 -0
  106. package/dist/cli/commands/startAction.js +70 -0
  107. package/dist/cli/commands/startAction.js.map +1 -0
  108. package/dist/cli/commands/startConsole.d.ts +7 -0
  109. package/dist/cli/commands/startConsole.js +309 -0
  110. package/dist/cli/commands/startConsole.js.map +1 -0
  111. package/dist/cli/commands/startMissionBundle.d.ts +41 -0
  112. package/dist/cli/commands/startMissionBundle.js +645 -0
  113. package/dist/cli/commands/startMissionBundle.js.map +1 -0
  114. package/dist/cli/commands/startOutput.d.ts +31 -0
  115. package/dist/cli/commands/startOutput.js +232 -0
  116. package/dist/cli/commands/startOutput.js.map +1 -0
  117. package/dist/cli/commands/startShortcuts.d.ts +26 -0
  118. package/dist/cli/commands/startShortcuts.js +117 -0
  119. package/dist/cli/commands/startShortcuts.js.map +1 -0
  120. package/dist/cli/commands/telemetry.js +2 -1
  121. package/dist/cli/commands/telemetry.js.map +1 -1
  122. package/dist/cli/commands/trial.js +19 -4
  123. package/dist/cli/commands/trial.js.map +1 -1
  124. package/dist/cli/commands/understand.js +3 -1
  125. package/dist/cli/commands/understand.js.map +1 -1
  126. package/dist/cli/commands/upgrade.js.map +1 -1
  127. package/dist/cli/commands/watch.js +1 -1
  128. package/dist/cli/commands/watch.js.map +1 -1
  129. package/dist/cli/commands/workplan.js.map +1 -1
  130. package/dist/cli/commands/workspace.js +1 -1
  131. package/dist/cli/commands/workspace.js.map +1 -1
  132. package/dist/cli/commands/workspaces.js +1 -1
  133. package/dist/cli/commands/workspaces.js.map +1 -1
  134. package/dist/cli/index.js +2 -117
  135. package/dist/cli/index.js.map +1 -1
  136. package/dist/cli/registerCommands.d.ts +4 -0
  137. package/dist/cli/registerCommands.js +125 -0
  138. package/dist/cli/registerCommands.js.map +1 -0
  139. package/dist/core/adoption.d.ts +2 -1
  140. package/dist/core/adoption.js +40 -13
  141. package/dist/core/adoption.js.map +1 -1
  142. package/dist/core/agentBrief.js +19 -6
  143. package/dist/core/agentBrief.js.map +1 -1
  144. package/dist/core/applyFix.js.map +1 -1
  145. package/dist/core/ast.js +30 -19
  146. package/dist/core/ast.js.map +1 -1
  147. package/dist/core/auditRunner.js.map +1 -1
  148. package/dist/core/bugHunt.js +119 -17
  149. package/dist/core/bugHunt.js.map +1 -1
  150. package/dist/core/claims.js +5 -2
  151. package/dist/core/claims.js.map +1 -1
  152. package/dist/core/codeGraph.js +10 -0
  153. package/dist/core/codeGraph.js.map +1 -1
  154. package/dist/core/codeGraphReexports.d.ts +9 -0
  155. package/dist/core/codeGraphReexports.js +59 -0
  156. package/dist/core/codeGraphReexports.js.map +1 -0
  157. package/dist/core/collisionDetector.js +14 -4
  158. package/dist/core/collisionDetector.js.map +1 -1
  159. package/dist/core/coordination.js +4 -6
  160. package/dist/core/coordination.js.map +1 -1
  161. package/dist/core/couplingAnalyzer.d.ts +2 -1
  162. package/dist/core/couplingAnalyzer.js.map +1 -1
  163. package/dist/core/coverageParser.js.map +1 -1
  164. package/dist/core/dataflow.js +11 -2
  165. package/dist/core/dataflow.js.map +1 -1
  166. package/dist/core/dataflowFilters.js +8 -3
  167. package/dist/core/dataflowFilters.js.map +1 -1
  168. package/dist/core/dependencyAnalyzer.js +4 -1
  169. package/dist/core/dependencyAnalyzer.js.map +1 -1
  170. package/dist/core/dogfood.d.ts +1 -1
  171. package/dist/core/dogfood.js +39 -5
  172. package/dist/core/dogfood.js.map +1 -1
  173. package/dist/core/embeddings.js.map +1 -1
  174. package/dist/core/evidenceComment.js +34 -12
  175. package/dist/core/evidenceComment.js.map +1 -1
  176. package/dist/core/explainIssue.js +1 -2
  177. package/dist/core/explainIssue.js.map +1 -1
  178. package/dist/core/feedback.d.ts +1 -1
  179. package/dist/core/feedback.js +15 -4
  180. package/dist/core/feedback.js.map +1 -1
  181. package/dist/core/fileInspector.js +8 -2
  182. package/dist/core/fileInspector.js.map +1 -1
  183. package/dist/core/fixFirst.d.ts +3 -1
  184. package/dist/core/fixFirst.js +17 -4
  185. package/dist/core/fixFirst.js.map +1 -1
  186. package/dist/core/fixSuggest.js +20 -12
  187. package/dist/core/fixSuggest.js.map +1 -1
  188. package/dist/core/frameworkDetector.js +5 -3
  189. package/dist/core/frameworkDetector.js.map +1 -1
  190. package/dist/core/frameworkSources.js +22 -2
  191. package/dist/core/frameworkSources.js.map +1 -1
  192. package/dist/core/graphCorpus.d.ts +1 -1
  193. package/dist/core/graphCorpus.js +9 -1
  194. package/dist/core/graphCorpus.js.map +1 -1
  195. package/dist/core/graphQuery.js.map +1 -1
  196. package/dist/core/hotspotAnalyzer.js +26 -6
  197. package/dist/core/hotspotAnalyzer.js.map +1 -1
  198. package/dist/core/impact.d.ts +1 -1
  199. package/dist/core/impact.js.map +1 -1
  200. package/dist/core/importGraph.js.map +1 -1
  201. package/dist/core/indexCache.js.map +1 -1
  202. package/dist/core/intent.d.ts +1 -1
  203. package/dist/core/intent.js +143 -46
  204. package/dist/core/intent.js.map +1 -1
  205. package/dist/core/intentRouter.js +5467 -445
  206. package/dist/core/intentRouter.js.map +1 -1
  207. package/dist/core/issueEngine.js +1 -1
  208. package/dist/core/issueEngine.js.map +1 -1
  209. package/dist/core/languageDetector.js +1 -9
  210. package/dist/core/languageDetector.js.map +1 -1
  211. package/dist/core/languages/cppAdapter.js +3 -1
  212. package/dist/core/languages/cppAdapter.js.map +1 -1
  213. package/dist/core/languages/cppExports.js +6 -1
  214. package/dist/core/languages/cppExports.js.map +1 -1
  215. package/dist/core/languages/cppFunctions.js +3 -1
  216. package/dist/core/languages/cppFunctions.js.map +1 -1
  217. package/dist/core/languages/csharpAdapter.js.map +1 -1
  218. package/dist/core/languages/csharpFunctions.js +3 -1
  219. package/dist/core/languages/csharpFunctions.js.map +1 -1
  220. package/dist/core/languages/csharpImports.js +2 -1
  221. package/dist/core/languages/csharpImports.js.map +1 -1
  222. package/dist/core/languages/goAdapter.js.map +1 -1
  223. package/dist/core/languages/goExports.js.map +1 -1
  224. package/dist/core/languages/goFunctions.js +9 -3
  225. package/dist/core/languages/goFunctions.js.map +1 -1
  226. package/dist/core/languages/javaAdapter.js +1 -2
  227. package/dist/core/languages/javaAdapter.js.map +1 -1
  228. package/dist/core/languages/javaFunctions.js +6 -2
  229. package/dist/core/languages/javaFunctions.js.map +1 -1
  230. package/dist/core/languages/javascriptAdapter.js +43 -8
  231. package/dist/core/languages/javascriptAdapter.js.map +1 -1
  232. package/dist/core/languages/kotlinAdapter.js +5 -2
  233. package/dist/core/languages/kotlinAdapter.js.map +1 -1
  234. package/dist/core/languages/kotlinFunctions.js +5 -6
  235. package/dist/core/languages/kotlinFunctions.js.map +1 -1
  236. package/dist/core/languages/kotlinImports.js +3 -1
  237. package/dist/core/languages/kotlinImports.js.map +1 -1
  238. package/dist/core/languages/kotlinManifests.js +7 -1
  239. package/dist/core/languages/kotlinManifests.js.map +1 -1
  240. package/dist/core/languages/phpAdapter.js +4 -1
  241. package/dist/core/languages/phpAdapter.js.map +1 -1
  242. package/dist/core/languages/phpExports.js.map +1 -1
  243. package/dist/core/languages/phpFunctions.js +18 -6
  244. package/dist/core/languages/phpFunctions.js.map +1 -1
  245. package/dist/core/languages/phpManifests.js.map +1 -1
  246. package/dist/core/languages/pythonAdapter.js.map +1 -1
  247. package/dist/core/languages/pythonFunctions.js +9 -3
  248. package/dist/core/languages/pythonFunctions.js.map +1 -1
  249. package/dist/core/languages/pythonManifests.js.map +1 -1
  250. package/dist/core/languages/rubyAdapter.js.map +1 -1
  251. package/dist/core/languages/rubyFunctions.js +6 -2
  252. package/dist/core/languages/rubyFunctions.js.map +1 -1
  253. package/dist/core/languages/rustAdapter.js.map +1 -1
  254. package/dist/core/languages/rustFunctions.js +6 -2
  255. package/dist/core/languages/rustFunctions.js.map +1 -1
  256. package/dist/core/languages/swiftAdapter.js +3 -1
  257. package/dist/core/languages/swiftAdapter.js.map +1 -1
  258. package/dist/core/languages/swiftCyclomatic.js.map +1 -1
  259. package/dist/core/languages/swiftFunctions.js +3 -1
  260. package/dist/core/languages/swiftFunctions.js.map +1 -1
  261. package/dist/core/languages/swiftImports.js.map +1 -1
  262. package/dist/core/mergeRisk.js +5 -1
  263. package/dist/core/mergeRisk.js.map +1 -1
  264. package/dist/core/missionOutcome.d.ts +1 -1
  265. package/dist/core/missionOutcome.js +9 -4
  266. package/dist/core/missionOutcome.js.map +1 -1
  267. package/dist/core/missionProof.d.ts +1 -1
  268. package/dist/core/missionProof.js +8 -6
  269. package/dist/core/missionProof.js.map +1 -1
  270. package/dist/core/missionProofBaseline.d.ts +1 -1
  271. package/dist/core/missionProofBaseline.js +8 -2
  272. package/dist/core/missionProofBaseline.js.map +1 -1
  273. package/dist/core/missionProofMarkdown.d.ts +1 -1
  274. package/dist/core/missionProofMarkdown.js +4 -1
  275. package/dist/core/missionProofMarkdown.js.map +1 -1
  276. package/dist/core/missionProofSummary.d.ts +1 -1
  277. package/dist/core/monorepo.d.ts +1 -1
  278. package/dist/core/monorepo.js +4 -2
  279. package/dist/core/monorepo.js.map +1 -1
  280. package/dist/core/onboarding.d.ts +2 -1
  281. package/dist/core/onboarding.js.map +1 -1
  282. package/dist/core/outdatedDetector.js +5 -1
  283. package/dist/core/outdatedDetector.js.map +1 -1
  284. package/dist/core/ownership.js +3 -1
  285. package/dist/core/ownership.js.map +1 -1
  286. package/dist/core/pathClassifiers.js.map +1 -1
  287. package/dist/core/pluginDx.js +2 -1
  288. package/dist/core/pluginDx.js.map +1 -1
  289. package/dist/core/pluginTrust.js +1 -3
  290. package/dist/core/pluginTrust.js.map +1 -1
  291. package/dist/core/plugins.js +5 -5
  292. package/dist/core/plugins.js.map +1 -1
  293. package/dist/core/prDiff.d.ts +1 -2
  294. package/dist/core/prDiff.js +5 -1
  295. package/dist/core/prDiff.js.map +1 -1
  296. package/dist/core/preflight.js +15 -6
  297. package/dist/core/preflight.js.map +1 -1
  298. package/dist/core/privacy.js.map +1 -1
  299. package/dist/core/qualityScorecard.d.ts +1 -1
  300. package/dist/core/qualityScorecard.js +43 -11
  301. package/dist/core/qualityScorecard.js.map +1 -1
  302. package/dist/core/regressionPlan.js +25 -7
  303. package/dist/core/regressionPlan.js.map +1 -1
  304. package/dist/core/releaseEvidence.js +41 -17
  305. package/dist/core/releaseEvidence.js.map +1 -1
  306. package/dist/core/releaseTrain.js +66 -38
  307. package/dist/core/releaseTrain.js.map +1 -1
  308. package/dist/core/repositoryScanner.js +1 -3
  309. package/dist/core/repositoryScanner.js.map +1 -1
  310. package/dist/core/review.d.ts +1 -1
  311. package/dist/core/review.js +72 -10
  312. package/dist/core/review.js.map +1 -1
  313. package/dist/core/reviewDataflow.js +7 -1
  314. package/dist/core/reviewDataflow.js.map +1 -1
  315. package/dist/core/reviewPublicSurface.d.ts +13 -0
  316. package/dist/core/reviewPublicSurface.js +134 -0
  317. package/dist/core/reviewPublicSurface.js.map +1 -0
  318. package/dist/core/roadmapCatalog.js +122 -23
  319. package/dist/core/roadmapCatalog.js.map +1 -1
  320. package/dist/core/searchIndex.js +124 -17
  321. package/dist/core/searchIndex.js.map +1 -1
  322. package/dist/core/semanticGraph.js.map +1 -1
  323. package/dist/core/semanticSearch.js +20 -4
  324. package/dist/core/semanticSearch.js.map +1 -1
  325. package/dist/core/session.js +1 -2
  326. package/dist/core/session.js.map +1 -1
  327. package/dist/core/sessionResources.js +6 -2
  328. package/dist/core/sessionResources.js.map +1 -1
  329. package/dist/core/start.d.ts +3 -9
  330. package/dist/core/start.js +22 -3231
  331. package/dist/core/start.js.map +1 -1
  332. package/dist/core/startAdoptionLoop.d.ts +2 -0
  333. package/dist/core/startAdoptionLoop.js +41 -0
  334. package/dist/core/startAdoptionLoop.js.map +1 -0
  335. package/dist/core/startEvidence.d.ts +5 -0
  336. package/dist/core/startEvidence.js +62 -0
  337. package/dist/core/startEvidence.js.map +1 -0
  338. package/dist/core/startExecutionPlan.d.ts +16 -0
  339. package/dist/core/startExecutionPlan.js +185 -0
  340. package/dist/core/startExecutionPlan.js.map +1 -0
  341. package/dist/core/startHarness.d.ts +3 -0
  342. package/dist/core/startHarness.js +47 -0
  343. package/dist/core/startHarness.js.map +1 -0
  344. package/dist/core/startIntentTargets.d.ts +24 -0
  345. package/dist/core/startIntentTargets.js +1106 -0
  346. package/dist/core/startIntentTargets.js.map +1 -0
  347. package/dist/core/startMissionControl.d.ts +16 -0
  348. package/dist/core/startMissionControl.js +145 -0
  349. package/dist/core/startMissionControl.js.map +1 -0
  350. package/dist/core/startMissionPolicy.d.ts +19 -0
  351. package/dist/core/startMissionPolicy.js +246 -0
  352. package/dist/core/startMissionPolicy.js.map +1 -0
  353. package/dist/core/startMode.d.ts +11 -0
  354. package/dist/core/startMode.js +139 -0
  355. package/dist/core/startMode.js.map +1 -0
  356. package/dist/core/startOptions.d.ts +18 -0
  357. package/dist/core/startOptions.js +29 -0
  358. package/dist/core/startOptions.js.map +1 -0
  359. package/dist/core/startResume.d.ts +7 -0
  360. package/dist/core/startResume.js +468 -0
  361. package/dist/core/startResume.js.map +1 -0
  362. package/dist/core/startReviewGate.d.ts +11 -0
  363. package/dist/core/startReviewGate.js +200 -0
  364. package/dist/core/startReviewGate.js.map +1 -0
  365. package/dist/core/startRouteActions.d.ts +7 -0
  366. package/dist/core/startRouteActions.js +497 -0
  367. package/dist/core/startRouteActions.js.map +1 -0
  368. package/dist/core/startRunbook.d.ts +24 -0
  369. package/dist/core/startRunbook.js +271 -0
  370. package/dist/core/startRunbook.js.map +1 -0
  371. package/dist/core/startSuccessCriteria.d.ts +14 -0
  372. package/dist/core/startSuccessCriteria.js +497 -0
  373. package/dist/core/startSuccessCriteria.js.map +1 -0
  374. package/dist/core/taint.js +12 -3
  375. package/dist/core/taint.js.map +1 -1
  376. package/dist/core/telemetry.js +19 -5
  377. package/dist/core/telemetry.js.map +1 -1
  378. package/dist/core/trial.d.ts +1 -1
  379. package/dist/core/trial.js +15 -6
  380. package/dist/core/trial.js.map +1 -1
  381. package/dist/core/understand.d.ts +1 -1
  382. package/dist/core/understand.js +165 -51
  383. package/dist/core/understand.js.map +1 -1
  384. package/dist/core/upgradePreview.js +1 -1
  385. package/dist/core/upgradePreview.js.map +1 -1
  386. package/dist/core/watcher.js +18 -3
  387. package/dist/core/watcher.js.map +1 -1
  388. package/dist/core/workplan.js +87 -17
  389. package/dist/core/workplan.js.map +1 -1
  390. package/dist/core/workspace.js.map +1 -1
  391. package/dist/index.d.ts +9 -9
  392. package/dist/index.js +7 -7
  393. package/dist/index.js.map +1 -1
  394. package/dist/mcp/pagination.js.map +1 -1
  395. package/dist/mcp/prompts.js +28 -20
  396. package/dist/mcp/prompts.js.map +1 -1
  397. package/dist/mcp/server.js +6 -74
  398. package/dist/mcp/server.js.map +1 -1
  399. package/dist/mcp/serverPayload.d.ts +13 -0
  400. package/dist/mcp/serverPayload.js +61 -0
  401. package/dist/mcp/serverPayload.js.map +1 -0
  402. package/dist/mcp/tokenBudget.js.map +1 -1
  403. package/dist/mcp/tools/_shared.js.map +1 -1
  404. package/dist/mcp/tools/agentBrief.js +7 -1
  405. package/dist/mcp/tools/agentBrief.js.map +1 -1
  406. package/dist/mcp/tools/applyFix.js +1 -1
  407. package/dist/mcp/tools/applyFix.js.map +1 -1
  408. package/dist/mcp/tools/audit.js.map +1 -1
  409. package/dist/mcp/tools/bugHunt.js +2 -2
  410. package/dist/mcp/tools/bugHunt.js.map +1 -1
  411. package/dist/mcp/tools/claim.js +8 -3
  412. package/dist/mcp/tools/claim.js.map +1 -1
  413. package/dist/mcp/tools/collision.js +3 -1
  414. package/dist/mcp/tools/collision.js.map +1 -1
  415. package/dist/mcp/tools/coordinate.js.map +1 -1
  416. package/dist/mcp/tools/coordinateWatch.js +5 -2
  417. package/dist/mcp/tools/coordinateWatch.js.map +1 -1
  418. package/dist/mcp/tools/costSummary.js.map +1 -1
  419. package/dist/mcp/tools/coupling.js.map +1 -1
  420. package/dist/mcp/tools/coverage.js.map +1 -1
  421. package/dist/mcp/tools/dataflow.js.map +1 -1
  422. package/dist/mcp/tools/dependencies.js +4 -1
  423. package/dist/mcp/tools/dependencies.js.map +1 -1
  424. package/dist/mcp/tools/doctor.js.map +1 -1
  425. package/dist/mcp/tools/explainIssue.js +4 -1
  426. package/dist/mcp/tools/explainIssue.js.map +1 -1
  427. package/dist/mcp/tools/fixSuggest.js +5 -2
  428. package/dist/mcp/tools/fixSuggest.js.map +1 -1
  429. package/dist/mcp/tools/hotspots.js +4 -1
  430. package/dist/mcp/tools/hotspots.js.map +1 -1
  431. package/dist/mcp/tools/impact.js +10 -3
  432. package/dist/mcp/tools/impact.js.map +1 -1
  433. package/dist/mcp/tools/mergeRisk.js.map +1 -1
  434. package/dist/mcp/tools/plugin.js +6 -1
  435. package/dist/mcp/tools/plugin.js.map +1 -1
  436. package/dist/mcp/tools/prDiff.js.map +1 -1
  437. package/dist/mcp/tools/preflight.js +1 -5
  438. package/dist/mcp/tools/preflight.js.map +1 -1
  439. package/dist/mcp/tools/review.js.map +1 -1
  440. package/dist/mcp/tools/reviewWatch.d.ts +1 -1
  441. package/dist/mcp/tools/reviewWatch.js +9 -9
  442. package/dist/mcp/tools/reviewWatch.js.map +1 -1
  443. package/dist/mcp/tools/route.js +1 -1
  444. package/dist/mcp/tools/route.js.map +1 -1
  445. package/dist/mcp/tools/search.js.map +1 -1
  446. package/dist/mcp/tools/semanticGraph.js +8 -2
  447. package/dist/mcp/tools/semanticGraph.js.map +1 -1
  448. package/dist/mcp/tools/start.js.map +1 -1
  449. package/dist/mcp/tools/structure.js +7 -1
  450. package/dist/mcp/tools/structure.js.map +1 -1
  451. package/dist/mcp/tools/understand.js.map +1 -1
  452. package/dist/mcp/tools/workspaceGraph.js +10 -1
  453. package/dist/mcp/tools/workspaceGraph.js.map +1 -1
  454. package/dist/mcp/tools.js +3 -1
  455. package/dist/mcp/tools.js.map +1 -1
  456. package/dist/projscan-sbom.cdx.json +2136 -904
  457. package/dist/reporters/consoleAnalysisReporter.d.ts +2 -0
  458. package/dist/reporters/consoleAnalysisReporter.js +89 -0
  459. package/dist/reporters/consoleAnalysisReporter.js.map +1 -0
  460. package/dist/reporters/consoleArchitectureReporter.d.ts +3 -0
  461. package/dist/reporters/consoleArchitectureReporter.js +47 -0
  462. package/dist/reporters/consoleArchitectureReporter.js.map +1 -0
  463. package/dist/reporters/consoleAuditReporter.d.ts +2 -0
  464. package/dist/reporters/consoleAuditReporter.js +46 -0
  465. package/dist/reporters/consoleAuditReporter.js.map +1 -0
  466. package/dist/reporters/consoleCiReporter.d.ts +2 -0
  467. package/dist/reporters/consoleCiReporter.js +27 -0
  468. package/dist/reporters/consoleCiReporter.js.map +1 -0
  469. package/dist/reporters/consoleCouplingReporter.d.ts +2 -0
  470. package/dist/reporters/consoleCouplingReporter.js +53 -0
  471. package/dist/reporters/consoleCouplingReporter.js.map +1 -0
  472. package/dist/reporters/consoleCoverageReporter.d.ts +2 -0
  473. package/dist/reporters/consoleCoverageReporter.js +62 -0
  474. package/dist/reporters/consoleCoverageReporter.js.map +1 -0
  475. package/dist/reporters/consoleDependencyReporter.d.ts +2 -0
  476. package/dist/reporters/consoleDependencyReporter.js +64 -0
  477. package/dist/reporters/consoleDependencyReporter.js.map +1 -0
  478. package/dist/reporters/consoleDiffReporter.d.ts +2 -0
  479. package/dist/reporters/consoleDiffReporter.js +80 -0
  480. package/dist/reporters/consoleDiffReporter.js.map +1 -0
  481. package/dist/reporters/consoleExplanationReporter.d.ts +2 -0
  482. package/dist/reporters/consoleExplanationReporter.js +33 -0
  483. package/dist/reporters/consoleExplanationReporter.js.map +1 -0
  484. package/dist/reporters/consoleFileReporter.d.ts +2 -0
  485. package/dist/reporters/consoleFileReporter.js +133 -0
  486. package/dist/reporters/consoleFileReporter.js.map +1 -0
  487. package/dist/reporters/consoleFixGuidanceReporter.d.ts +8 -0
  488. package/dist/reporters/consoleFixGuidanceReporter.js +135 -0
  489. package/dist/reporters/consoleFixGuidanceReporter.js.map +1 -0
  490. package/dist/reporters/consoleHealthReporter.d.ts +13 -0
  491. package/dist/reporters/consoleHealthReporter.js +111 -0
  492. package/dist/reporters/consoleHealthReporter.js.map +1 -0
  493. package/dist/reporters/consoleHotspotReporter.d.ts +2 -0
  494. package/dist/reporters/consoleHotspotReporter.js +68 -0
  495. package/dist/reporters/consoleHotspotReporter.js.map +1 -0
  496. package/dist/reporters/consoleImpactReporter.d.ts +2 -0
  497. package/dist/reporters/consoleImpactReporter.js +65 -0
  498. package/dist/reporters/consoleImpactReporter.js.map +1 -0
  499. package/dist/reporters/consoleOutdatedReporter.d.ts +2 -0
  500. package/dist/reporters/consoleOutdatedReporter.js +54 -0
  501. package/dist/reporters/consoleOutdatedReporter.js.map +1 -0
  502. package/dist/reporters/consolePrDiffReporter.d.ts +2 -0
  503. package/dist/reporters/consolePrDiffReporter.js +75 -0
  504. package/dist/reporters/consolePrDiffReporter.js.map +1 -0
  505. package/dist/reporters/consoleReporter.d.ts +21 -38
  506. package/dist/reporters/consoleReporter.js +19 -1000
  507. package/dist/reporters/consoleReporter.js.map +1 -1
  508. package/dist/reporters/consoleReviewReporter.d.ts +2 -0
  509. package/dist/reporters/consoleReviewReporter.js +101 -0
  510. package/dist/reporters/consoleReviewReporter.js.map +1 -0
  511. package/dist/reporters/consoleUpgradeReporter.d.ts +2 -0
  512. package/dist/reporters/consoleUpgradeReporter.js +67 -0
  513. package/dist/reporters/consoleUpgradeReporter.js.map +1 -0
  514. package/dist/reporters/consoleWorkspaceReporter.d.ts +2 -0
  515. package/dist/reporters/consoleWorkspaceReporter.js +24 -0
  516. package/dist/reporters/consoleWorkspaceReporter.js.map +1 -0
  517. package/dist/reporters/htmlReporter.d.ts +2 -1
  518. package/dist/reporters/htmlReporter.js +9 -3
  519. package/dist/reporters/htmlReporter.js.map +1 -1
  520. package/dist/reporters/jsonReporter.d.ts +2 -1
  521. package/dist/reporters/jsonReporter.js.map +1 -1
  522. package/dist/reporters/markdownAnalysisReporter.d.ts +2 -0
  523. package/dist/reporters/markdownAnalysisReporter.js +40 -0
  524. package/dist/reporters/markdownAnalysisReporter.js.map +1 -0
  525. package/dist/reporters/markdownAuditReporter.d.ts +2 -0
  526. package/dist/reporters/markdownAuditReporter.js +27 -0
  527. package/dist/reporters/markdownAuditReporter.js.map +1 -0
  528. package/dist/reporters/markdownDependencyReporter.d.ts +2 -0
  529. package/dist/reporters/markdownDependencyReporter.js +33 -0
  530. package/dist/reporters/markdownDependencyReporter.js.map +1 -0
  531. package/dist/reporters/markdownDiffReporter.d.ts +2 -0
  532. package/dist/reporters/markdownDiffReporter.js +65 -0
  533. package/dist/reporters/markdownDiffReporter.js.map +1 -0
  534. package/dist/reporters/markdownFileReporter.d.ts +2 -0
  535. package/dist/reporters/markdownFileReporter.js +92 -0
  536. package/dist/reporters/markdownFileReporter.js.map +1 -0
  537. package/dist/reporters/markdownFixGuidanceReporter.d.ts +8 -0
  538. package/dist/reporters/markdownFixGuidanceReporter.js +95 -0
  539. package/dist/reporters/markdownFixGuidanceReporter.js.map +1 -0
  540. package/dist/reporters/markdownImpactReporter.d.ts +2 -0
  541. package/dist/reporters/markdownImpactReporter.js +52 -0
  542. package/dist/reporters/markdownImpactReporter.js.map +1 -0
  543. package/dist/reporters/markdownReporter.d.ts +10 -16
  544. package/dist/reporters/markdownReporter.js +9 -452
  545. package/dist/reporters/markdownReporter.js.map +1 -1
  546. package/dist/reporters/markdownReviewReporter.d.ts +2 -0
  547. package/dist/reporters/markdownReviewReporter.js +84 -0
  548. package/dist/reporters/markdownReviewReporter.js.map +1 -0
  549. package/dist/reporters/markdownUpgradeReporter.d.ts +2 -0
  550. package/dist/reporters/markdownUpgradeReporter.js +47 -0
  551. package/dist/reporters/markdownUpgradeReporter.js.map +1 -0
  552. package/dist/reporters/sarifReporter.js.map +1 -1
  553. package/dist/tool-manifest.json +4 -4
  554. package/dist/types/agentBrief.d.ts +48 -0
  555. package/dist/types/agentBrief.js +2 -0
  556. package/dist/types/agentBrief.js.map +1 -0
  557. package/dist/types/analysis.d.ts +32 -0
  558. package/dist/types/analysis.js +2 -0
  559. package/dist/types/analysis.js.map +1 -0
  560. package/dist/types/baseline.d.ts +59 -0
  561. package/dist/types/baseline.js +2 -0
  562. package/dist/types/baseline.js.map +1 -0
  563. package/dist/types/bugHunt.d.ts +41 -0
  564. package/dist/types/bugHunt.js +2 -0
  565. package/dist/types/bugHunt.js.map +1 -0
  566. package/dist/types/common.d.ts +34 -0
  567. package/dist/types/common.js +2 -0
  568. package/dist/types/common.js.map +1 -0
  569. package/dist/types/config.d.ts +56 -0
  570. package/dist/types/config.js +2 -0
  571. package/dist/types/config.js.map +1 -0
  572. package/dist/types/coupling.d.ts +40 -0
  573. package/dist/types/coupling.js +2 -0
  574. package/dist/types/coupling.js.map +1 -0
  575. package/dist/types/coverage.d.ts +32 -0
  576. package/dist/types/coverage.js +2 -0
  577. package/dist/types/coverage.js.map +1 -0
  578. package/dist/types/dependencyHealth.d.ts +61 -0
  579. package/dist/types/dependencyHealth.js +2 -0
  580. package/dist/types/dependencyHealth.js.map +1 -0
  581. package/dist/types/dogfood.d.ts +185 -0
  582. package/dist/types/dogfood.js +2 -0
  583. package/dist/types/dogfood.js.map +1 -0
  584. package/dist/types/evidencePack.d.ts +76 -0
  585. package/dist/types/evidencePack.js +2 -0
  586. package/dist/types/evidencePack.js.map +1 -0
  587. package/dist/types/fixes.d.ts +77 -0
  588. package/dist/types/fixes.js +2 -0
  589. package/dist/types/fixes.js.map +1 -0
  590. package/dist/types/graph.d.ts +80 -0
  591. package/dist/types/graph.js +2 -0
  592. package/dist/types/graph.js.map +1 -0
  593. package/dist/types/graphCorpus.d.ts +16 -0
  594. package/dist/types/graphCorpus.js +2 -0
  595. package/dist/types/graphCorpus.js.map +1 -0
  596. package/dist/types/hotspots.d.ts +42 -0
  597. package/dist/types/hotspots.js +2 -0
  598. package/dist/types/hotspots.js.map +1 -0
  599. package/dist/types/impact.d.ts +62 -0
  600. package/dist/types/impact.js +2 -0
  601. package/dist/types/impact.js.map +1 -0
  602. package/dist/types/inspection.d.ts +47 -0
  603. package/dist/types/inspection.js +2 -0
  604. package/dist/types/inspection.js.map +1 -0
  605. package/dist/types/mcp.d.ts +39 -0
  606. package/dist/types/mcp.js +2 -0
  607. package/dist/types/mcp.js.map +1 -0
  608. package/dist/types/pluginDx.d.ts +42 -0
  609. package/dist/types/pluginDx.js +2 -0
  610. package/dist/types/pluginDx.js.map +1 -0
  611. package/dist/types/prDiff.d.ts +41 -0
  612. package/dist/types/prDiff.js +2 -0
  613. package/dist/types/prDiff.js.map +1 -0
  614. package/dist/types/preflight.d.ts +122 -0
  615. package/dist/types/preflight.js +2 -0
  616. package/dist/types/preflight.js.map +1 -0
  617. package/dist/types/qualityScorecard.d.ts +34 -0
  618. package/dist/types/qualityScorecard.js +2 -0
  619. package/dist/types/qualityScorecard.js.map +1 -0
  620. package/dist/types/regressionPlan.d.ts +32 -0
  621. package/dist/types/regressionPlan.js +2 -0
  622. package/dist/types/regressionPlan.js.map +1 -0
  623. package/dist/types/releaseTrain.d.ts +37 -0
  624. package/dist/types/releaseTrain.js +2 -0
  625. package/dist/types/releaseTrain.js.map +1 -0
  626. package/dist/types/review.d.ts +203 -0
  627. package/dist/types/review.js +2 -0
  628. package/dist/types/review.js.map +1 -0
  629. package/dist/types/reviewContract.d.ts +9 -0
  630. package/dist/types/reviewContract.js +2 -0
  631. package/dist/types/reviewContract.js.map +1 -0
  632. package/dist/types/scanning.d.ts +111 -0
  633. package/dist/types/scanning.js +2 -0
  634. package/dist/types/scanning.js.map +1 -0
  635. package/dist/types/session.d.ts +42 -0
  636. package/dist/types/session.js +2 -0
  637. package/dist/types/session.js.map +1 -0
  638. package/dist/types/start.d.ts +437 -0
  639. package/dist/types/start.js +2 -0
  640. package/dist/types/start.js.map +1 -0
  641. package/dist/types/trial.d.ts +27 -0
  642. package/dist/types/trial.js +2 -0
  643. package/dist/types/trial.js.map +1 -0
  644. package/dist/types/understand.d.ts +153 -0
  645. package/dist/types/understand.js +2 -0
  646. package/dist/types/understand.js.map +1 -0
  647. package/dist/types/workplan.d.ts +67 -0
  648. package/dist/types/workplan.js +2 -0
  649. package/dist/types/workplan.js.map +1 -0
  650. package/dist/types/workplanHandoff.d.ts +11 -0
  651. package/dist/types/workplanHandoff.js +2 -0
  652. package/dist/types/workplanHandoff.js.map +1 -0
  653. package/dist/types/workspace.d.ts +18 -0
  654. package/dist/types/workspace.js +2 -0
  655. package/dist/types/workspace.js.map +1 -0
  656. package/dist/types.d.ts +34 -2348
  657. package/dist/types.js +0 -1
  658. package/dist/types.js.map +1 -1
  659. package/dist/utils/banner.js +15 -6
  660. package/dist/utils/banner.js.map +1 -1
  661. package/dist/utils/baseline.js +11 -9
  662. package/dist/utils/baseline.js.map +1 -1
  663. package/dist/utils/changedFiles.js +1 -1
  664. package/dist/utils/changedFiles.js.map +1 -1
  665. package/dist/utils/config.d.ts +2 -1
  666. package/dist/utils/config.js.map +1 -1
  667. package/dist/utils/formatSupport.d.ts +1 -1
  668. package/dist/utils/formatSupport.js +7 -1
  669. package/dist/utils/formatSupport.js.map +1 -1
  670. package/dist/utils/packageJsonLocator.js.map +1 -1
  671. package/docs/GUIDE.md +186 -146
  672. package/docs/PLUGIN-GALLERY.md +9 -1
  673. package/docs/ROADMAP.md +69 -68
  674. package/docs/demos/projscan-4-1-demo.html +46 -79
  675. package/docs/examples/plugins/graph-context.mjs +1 -2
  676. package/docs/examples/plugins/security-sensitive-files.mjs +2 -1
  677. package/package.json +10 -5
@@ -20,16 +20,19 @@ Flags TypeScript files under a `legacy` path so teams can keep local migration
20
20
  rules close to the repo.
21
21
 
22
22
  Files:
23
+
23
24
  - `docs/examples/plugins/policy.projscan-plugin.json`
24
25
  - `docs/examples/plugins/policy.mjs`
25
26
 
26
27
  ### `security-radar`
27
28
 
28
29
  Flags common local security review triggers:
30
+
29
31
  - committed `.env` style files
30
32
  - package scripts that pipe `curl` or `wget` output into a shell
31
33
 
32
34
  Files:
35
+
33
36
  - `docs/examples/plugins/security-radar.projscan-plugin.json`
34
37
  - `docs/examples/plugins/security-radar.mjs`
35
38
 
@@ -38,15 +41,16 @@ Files:
38
41
  Demonstrates analyzer access to the optional graph/dataflow context. It reads the semantic graph and dataflow report through `context.getSemanticGraph()` and `context.getDataflow()` and emits a compact architecture summary issue. The test result marks `context.requested: true` and lists `semanticGraph` plus `dataflow` capabilities.
39
42
 
40
43
  Files:
44
+
41
45
  - `docs/examples/plugins/graph-context.projscan-plugin.json`
42
46
  - `docs/examples/plugins/graph-context.mjs`
43
47
 
44
-
45
48
  ### `api-route-ownership`
46
49
 
47
50
  Flags API route files that are not covered by CODEOWNERS-style routing, so PRs that change externally visible routes get a clear team owner.
48
51
 
49
52
  Files:
53
+
50
54
  - `docs/examples/plugins/api-route-ownership.projscan-plugin.json`
51
55
  - `docs/examples/plugins/api-route-ownership.mjs`
52
56
 
@@ -55,6 +59,7 @@ Files:
55
59
  Highlights auth, crypto, secrets, payment, middleware, and environment-related paths for explicit security-conscious review.
56
60
 
57
61
  Files:
62
+
58
63
  - `docs/examples/plugins/security-sensitive-files.projscan-plugin.json`
59
64
  - `docs/examples/plugins/security-sensitive-files.mjs`
60
65
 
@@ -63,6 +68,7 @@ Files:
63
68
  Flags package source files that reach across monorepo boundaries with deep relative imports instead of package entrypoints or declared workspace dependencies.
64
69
 
65
70
  Files:
71
+
66
72
  - `docs/examples/plugins/monorepo-boundary.projscan-plugin.json`
67
73
  - `docs/examples/plugins/monorepo-boundary.mjs`
68
74
 
@@ -73,6 +79,7 @@ Files:
73
79
  Renders `doctor`, `analyze`, and `ci` output in a compact team health voice.
74
80
 
75
81
  Files:
82
+
76
83
  - `docs/examples/plugins/team-radar.projscan-plugin.json`
77
84
  - `docs/examples/plugins/team-radar.mjs`
78
85
 
@@ -82,6 +89,7 @@ Renders `doctor`, `analyze`, and `ci` output as a release approval summary with
82
89
  score, blocking issue count, warnings, and a continue/hold decision.
83
90
 
84
91
  Files:
92
+
85
93
  - `docs/examples/plugins/release-readiness.projscan-plugin.json`
86
94
  - `docs/examples/plugins/release-readiness.mjs`
87
95
 
package/docs/ROADMAP.md CHANGED
@@ -18,19 +18,19 @@ projscan 1.0 shipped 2026-05-04. The stability contract is in force: MCP tool na
18
18
 
19
19
  Three forces define the next 12 months for projscan:
20
20
 
21
- 1. **MCP is the de-facto standard.** The ecosystem has 10,000+ public servers; Claude Code, Cursor, Continue, Windsurf, and Codex all consume MCP. The protocol war is over; the value migrates to the *quality* of individual servers. Code-intelligence is one of the highest-value categories.
22
- 2. **Multi-agent orchestration is the dominant 2026 pattern.** Claude Agent Teams, swarms, sub-agents. The new pain point is *coordination*: agents have separate context windows and need a shared source-of-truth about the codebase. projscan's graph + cache + budget-aware tools are uniquely positioned to be that shared substrate.
23
- 3. **Context-window cost compounds.** Token spend per turn is no longer the bottleneck — it's the *accumulated* cost of carrying tool results, AST excerpts, and prior turns through every inference call. Agents that retrieve narrowly and budget aggressively win. projscan's `max_tokens`-aware response shaping, cursor pagination, and per-function chunking are exactly the primitives this trend rewards.
21
+ 1. **MCP is the de-facto standard.** The ecosystem has 10,000+ public servers; Claude Code, Cursor, Continue, Windsurf, and Codex all consume MCP. The protocol war is over; the value migrates to the _quality_ of individual servers. Code-intelligence is one of the highest-value categories.
22
+ 2. **Multi-agent orchestration is the dominant 2026 pattern.** Claude Agent Teams, swarms, sub-agents. The new pain point is _coordination_: agents have separate context windows and need a shared source-of-truth about the codebase. projscan's graph + cache + budget-aware tools are uniquely positioned to be that shared substrate.
23
+ 3. **Context-window cost compounds.** Token spend per turn is no longer the bottleneck — it's the _accumulated_ cost of carrying tool results, AST excerpts, and prior turns through every inference call. Agents that retrieve narrowly and budget aggressively win. projscan's `max_tokens`-aware response shaping, cursor pagination, and per-function chunking are exactly the primitives this trend rewards.
24
24
 
25
25
  ## The competitive picture
26
26
 
27
- | Tool | Position | What they do well | What we beat them on |
28
- |---|---|---|---|
29
- | **Code Pathfinder** | Direct competitor (MCP code-intel) | Deep static analysis: AST + CFG + DFG, dataflow tracking, security focus. | Language coverage (9 vs 1: Python). Composed agent tools (review / fix-suggest / impact / watch). Health signals (churn × CC, hotspots). Monorepo workspace awareness. |
30
- | **Sourcegraph Cody / Amp** | Enterprise paid tier | Cross-repo indexing at org scale. Polished editor integrations. | Fully offline. Open source. No SaaS dependency. Free for everyone. |
31
- | **Continue.dev** | Configurable RAG + MCP client | Highly extensible context providers. Local-first. | We're a *server*, not a client; we feed Continue (and every other MCP client). Different category. |
32
- | **Aider** | Terminal-native pair programmer | Tight Git integration, conversational refactor flow. | Different category — we're not a coding agent; we're what coding agents stand on. |
33
- | **GitHub MCP server** | Adjacent (repo metadata, not code intel) | Issues / PRs / Actions surface. | We do code structure; they do collaboration metadata. Complementary, not competing. |
27
+ | Tool | Position | What they do well | What we beat them on |
28
+ | -------------------------- | ---------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
29
+ | **Code Pathfinder** | Direct competitor (MCP code-intel) | Deep static analysis: AST + CFG + DFG, dataflow tracking, security focus. | Language coverage (9 vs 1: Python). Composed agent tools (review / fix-suggest / impact / watch). Health signals (churn × CC, hotspots). Monorepo workspace awareness. |
30
+ | **Sourcegraph Cody / Amp** | Enterprise paid tier | Cross-repo indexing at org scale. Polished editor integrations. | Fully offline. Open source. No SaaS dependency. Free for everyone. |
31
+ | **Continue.dev** | Configurable RAG + MCP client | Highly extensible context providers. Local-first. | We're a _server_, not a client; we feed Continue (and every other MCP client). Different category. |
32
+ | **Aider** | Terminal-native pair programmer | Tight Git integration, conversational refactor flow. | Different category — we're not a coding agent; we're what coding agents stand on. |
33
+ | **GitHub MCP server** | Adjacent (repo metadata, not code intel) | Issues / PRs / Actions surface. | We do code structure; they do collaboration metadata. Complementary, not competing. |
34
34
 
35
35
  **Where we're vulnerable:** Code Pathfinder has deeper analysis (CFG, DFG) and a security-finding focus. If they ship a JavaScript or TypeScript adapter, our breadth lead narrows.
36
36
 
@@ -41,12 +41,13 @@ Three forces define the next 12 months for projscan:
41
41
  Four plays, in order:
42
42
 
43
43
  1. **Defend the lead** — close the obvious gaps so users picking an MCP server for code intel have one less reason to go elsewhere. ✅ Largely complete (1.1–1.3).
44
- 2. **Lean into multi-agent** — make projscan the *shared substrate* for agent swarms. This is where the market is moving and where our context-budget design pays off. ✅ Largely shipped (1.4 Session, 1.5 Budgeted by default + Project Memory).
44
+ 2. **Lean into multi-agent** — make projscan the _shared substrate_ for agent swarms. This is where the market is moving and where our context-budget design pays off. ✅ Largely shipped (1.4 Session, 1.5 Budgeted by default + Project Memory).
45
45
  3. **Become the operator, not the advisor** — stop suggesting and start acting (cross-repo, apply, security gate). ✅ Shipped in the 1.6 arc.
46
46
  4. **Expand the moat** — depth where it matters (CFG / dataflow on hot paths, more languages, sub-file embeddings, cost analytics, live PR review, plugin extensibility). Not everywhere; we're not trying to be Cody. ✅ The 1.7 → 2.0 arc turns this into a platform contract.
47
- 5. **Coordinate the swarm** — the Swarm Coordination arc. Plays 1–4 made projscan the best *single-agent* code-intelligence server; the market has moved to multi-agent orchestration, where the unsolved pain is concurrent-change arbitration across parallel agents. Turn the graph + impact + session primitives into a local-first coordination layer (collision detection, claims/leases, merge-risk preflight, intent router, one-call coordinate). ✅ Shipped additively in 3.6.0. The remaining piece — consolidating the tool surface agents pay for — is breaking, so it's reserved for **4.0**.
47
+ 5. **Coordinate the swarm** — the Swarm Coordination arc. Plays 1–4 made projscan the best _single-agent_ code-intelligence server; the market has moved to multi-agent orchestration, where the unsolved pain is concurrent-change arbitration across parallel agents. Turn the graph + impact + session primitives into a local-first coordination layer (collision detection, claims/leases, merge-risk preflight, intent router, one-call coordinate). ✅ Shipped additively in 3.6.0. The remaining piece — consolidating the tool surface agents pay for — is breaking, so it's reserved for **4.0**.
48
+
49
+ We are _not_ trying to be:
48
50
 
49
- We are *not* trying to be:
50
51
  - A coding agent (we're what agents call into).
51
52
  - A SaaS / dashboard product.
52
53
  - A general-purpose static analyzer competing with SonarQube / Semgrep / Snyk.
@@ -56,12 +57,12 @@ We are *not* trying to be:
56
57
 
57
58
  ### Now — Validate the Swarm Coordination arc; prepare the 4.0 surface break
58
59
 
59
- The **Swarm Coordination arc shipped in 3.6.0** (see Recently Completed). It was additive — five new tools, nothing removed — so it shipped as a minor release, not a major one. ("4.x" was an earlier label for the *theme*; the version is 3.6.0. The name **4.0** is reserved strictly for the one *breaking* change below.)
60
+ The **Swarm Coordination arc shipped in 3.6.0** (see Recently Completed). It was additive — five new tools, nothing removed — so it shipped as a minor release, not a major one. ("4.x" was an earlier label for the _theme_; the version is 3.6.0. The name **4.0** is reserved strictly for the one _breaking_ change below.)
60
61
 
61
62
  What's now:
62
63
 
63
64
  - **Validate it in real swarm usage.** The arc is built on an unvalidated bet that concurrent-change arbitration is the pain. Before deepening it, find out which of `collision` / `claim` / `merge-risk` / `coordinate` agents actually reach for, and harden from there (transitive collision recall, live `--watch` coordination, integration into `preflight` / `agent_brief`).
64
- - **`4.0` — tool-surface consolidation (the first breaking release since 1.0).** In progress on the `next` branch (publish held for a real deprecation window). 4.0 removes the two tools deprecated in 3.8.0 — `projscan_explain` (use `projscan_file`) and `projscan_graph` (use `projscan_semantic_graph`, which gains a targeted `query` mode that subsumes it) — taking the surface from 47 → 45. Both have drop-in replacements (see [MIGRATION-4.0.md](MIGRATION-4.0.md)). The *broader* consolidation (routing the long tail behind `projscan_route`) is deliberately deferred until real usage signal justifies which tools to fold — same deprecate-before-remove discipline.
65
+ - **`4.0` — tool-surface consolidation (the first breaking release since 1.0).** In progress on the `next` branch (publish held for a real deprecation window). 4.0 removes the two tools deprecated in 3.8.0 — `projscan_explain` (use `projscan_file`) and `projscan_graph` (use `projscan_semantic_graph`, which gains a targeted `query` mode that subsumes it) — taking the surface from 47 → 45. Both have drop-in replacements (see [MIGRATION-4.0.md](MIGRATION-4.0.md)). The _broader_ consolidation (routing the long tail behind `projscan_route`) is deliberately deferred until real usage signal justifies which tools to fold — same deprecate-before-remove discipline.
65
66
 
66
67
  Strictly **local-first** throughout: same-repo / same-machine swarms via the shared store, never a daemon, cloud, or cross-machine server (that would be a SaaS non-goal).
67
68
 
@@ -149,7 +150,7 @@ Later work should expand the moat after 3.4.0 repo-understanding output is verif
149
150
  ## Risks
150
151
 
151
152
  - **Code Pathfinder catches up on languages.** They're 1-language today (Python) but the AST + CFG infrastructure is solid. If they ship a JS/TS adapter, our breadth lead narrows. Mitigation: keep adding languages on the cadence; deepen agent-native composition.
152
- - **Multi-agent orchestration matures faster than we can ship Session.** If Claude Agent Teams becomes the default and ships its own shared-state primitive, our 1.4 bet weakens. Mitigation: design Session as a *complement* to Agent Teams rather than a replacement.
153
+ - **Multi-agent orchestration matures faster than we can ship Session.** If Claude Agent Teams becomes the default and ships its own shared-state primitive, our 1.4 bet weakens. Mitigation: design Session as a _complement_ to Agent Teams rather than a replacement.
153
154
  - **Context-cost trend reverses.** If models get cheaper and context windows grow, our budget-aware design becomes table stakes rather than a differentiator. Mitigation: that's a good problem to have; the underlying primitives still work.
154
155
 
155
156
  ## How to influence this roadmap
@@ -165,55 +166,55 @@ If you've adopted projscan and want something specific:
165
166
 
166
167
  For the full release notes, see [CHANGELOG.md](../CHANGELOG.md).
167
168
 
168
- | Version | Theme | Headline |
169
- |---|---|---|
170
- | **3.6.0** (2026-06-05) | Swarm Coordination | Local-first coordination for parallel agents across git worktrees: `projscan_collision`, `projscan_claim` (leased), `projscan_merge_risk`, `projscan_route`, `projscan_coordinate`; graceful embedding degradation; 41 → 47 tools |
171
- | **3.5.0** (2026-06-04) | Plugin Trust | `projscan fix` installs with `--ignore-scripts` (no lifecycle-script RCE); local plugins gated by trust-on-first-use (`projscan plugin trust`), plus a hardened, model-degrading embedding path |
172
- | **3.4.0** (2026-06-04) | Repo Understanding | `projscan understand` / `projscan_understand` with cited repo, flow, contract, change-readiness, and verification maps for working engineers |
173
- | **3.3.0** (2026-06-03) | Roadmap Evidence Polish | Adoption proof gates, reviewer decision evidence, first-ten-minutes/start coordination hints, Hono request-source precision, plugin trust guidance, generated PR-comment validation, and evidence helper extraction |
174
- | **3.2.0** (2026-06-03) | Roadmap Train | Canonical 3.2-3.9 release train surfaced in release planning and roadmap docs |
175
- | **3.1.0** (2026-06-02) | Trust Boundary Hardening | Privacy-check trust report, Git-visible scan boundary, path-only `.env` defaults, offline mode, session/worktree risk split, and fast trust smoke gate |
176
- | **3.0.8** (2026-06-01) | Legal and Trust Hardening | Public legal/trust documents, vulnerability reporting, contribution provenance, and canonical icon packaging |
177
- | **3.0.7** (2026-05-31) | Trial Adoption Report | Adoption trial verdict, structured reviewer feedback capture, measured market-validation gates, and refreshed adoption docs |
178
- | **3.0.6** (2026-05-31) | Market Validation Loop | Feedback-backed dogfood evidence, minutes-saved/prevented-edit tracking, false-positive reporting, Baseframe Labs brand surfaces, and security disclosure assets |
179
- | **3.0.5** (2026-05-28) | Proof of Usefulness | End-to-end adoption harness, five-scenario PR comment benchmarks, fix-first output, richer baseline trend memory, Express/Next dataflow precision, and scale-risk calibration |
180
- | **3.0.4** (2026-05-28) | Team Adoption Loop | Team bootstrap, MCP setup doctor, validated PR evidence comments, baseline trend memory, owner routing, practical plugins, and trust calibration |
181
- | **3.0.3** (2026-05-27) | Agent Review Precision | Package-scoped review verdicts, receiver-sensitive route request sources, generated-code review/dataflow filtering, package owner fallback, and v5 GitHub Actions |
182
- | **3.0.2** (2026-05-27) | Agent Graph Readiness | Graph corpus release gates, custom dataflow visibility, remote tag integrity, CODEOWNERS impact ownership, and 3.x release-train planning |
183
- | **3.0.1** (2026-05-26) | Graph Operations Platform | Graph-backed review/workplan/brief evidence, cross-repo boundary impact, plugin graph context, golden graph corpus, and hardened dataflow precision |
184
- | **3.0.0** (2026-05-23) | Deep Graph Platform | Stable v3 semantic graph, dataflow risk engine, bridge-helper review blocks, 39-tool MCP surface, and public graph/dataflow APIs |
185
- | **2.9.0** (2026-05-23) | Adoption Layer | MCP client config snippets, workflow recipes, first-run diagnostics, adoption MCP tool, plugin gallery, and console guidance polish |
186
- | **2.8.0** (2026-05-22) | Agent Mission Control | Workplans, bug-hunt queues, release readiness, evidence packs, regression plans, agent briefs, and quality scorecards |
187
- | **2.0.0** (2026-05-18) | Plugin Platform | Stable local analyzer/reporter plugin contract, manifest schema and tested examples, CLI JSON `schemaVersion: 2`, extensible `LanguageId`, and removal of deprecated regex import/export helpers |
188
- | **1.11.0** (2026-05-18) | Reporter Plugins | Reporter plugin preview for CLI output (`--reporter` on `doctor`, `analyze`, and `ci`), reporter manifest validation through `projscan_plugin`, and refreshed README media with a macOS-style terminal demo |
189
- | **1.10.0** (2026-05-13) | RC for 2.0 | Analyzer plugin API preview behind PROJSCAN_PLUGINS_PREVIEW flag (`projscan_plugin` MCP tool, `projscan plugin` CLI, `.projscan-plugins/*.projscan-plugin.json` schema); live cost-summary streaming with `notifications/projscan/cost_delta`; five 1.9-deferred fixes (applyFix rollback dir handling, incrementalUpdateGraph context staleness, changedFiles maxBuffer surfacing, taint per-step frontier cap, watcher.close mid-flush) |
190
- | **1.9.0** (2026-05-12) | Intent + Polish | Intent-grounded review: free-text PR description → per-finding expected / unexpected / out-of-scope labels (no LLM); Project Memory loop #4 (per-rule severity drift, cry-wolf / noisy / stable); review_watch signature deepening with structured `delta` payload; macOS CI leg |
191
- | **1.8.1** (2026-05-08) | Docs patch | README setup snippets for Codex CLI + Gemini CLI |
192
- | **1.8.0** (2026-05-08) | Resilience + Live | Swift adapter (11 languages); long-running PR watch (`projscan_review_watch`) with `notifications/projscan/pr_changed`; atomic session save; taint truncation reporting + MAX_DEPTH 8 → 12; embeddings LRU; templated C++ qualified-id; 7 fixes from a three-way multi-agent bug hunt |
193
- | **1.7.0** (2026-05-07) | Reach + Visibility | Kotlin and C++ adapters (10 languages); per-rule confidence in Project Memory (loop #3); aggregate cost analytics (`projscan_cost_summary`); 6 fixes from a four-way multi-agent bug hunt |
194
- | **1.6.0** (2026-05-06) | Operator | Cross-repo workspace + intelligence (`projscan_workspace_graph`); mechanical apply layer with rollback (`projscan_apply_fix`, six templates); source-to-sink taint analysis (`projscan_taint`) wired into review as a hard block on new flows |
195
- | **1.5.0** (2026-05-05) | Budgeted by default | `_cost` sidecar on every result; adaptive `projscan_review` with full / summary / verdict-only tiers |
196
- | **1.4.0** (2026-05-05) | Session | Durable cross-invocation session: `projscan_session` MCP tool, auto-touched files, event log |
197
- | **1.3.0** (2026-05-05) | Push, Don't Poll | MCP `notifications/file_changed` push and registry-aware upgrade preview |
198
- | **1.2.1** (2026-05-05) | Animated docs | Animated GIFs replace static command screenshots |
199
- | **1.2.0** (2026-05-05) | Reporter Parity | PHP and C# adapters, HTML reporters, per-function fan-out |
200
- | **1.1.1** (2026-05-04) | Dogfood patch | Tree-sitter false-positive fix |
201
- | **1.1.0** (2026-05-04) | On the Map | Rust adapter and fix-suggest templates for `eslint-*` and `python-type-error-*` |
202
- | **1.0.0** (2026-05-04) | Stable | Public no-break commitment release |
203
- | **0.17.0** (2026-05-02) | RC + Docs | Documentation reorganized around the agent journey |
204
- | **0.16.0** (2026-04-30) | Live | `projscan watch` CLI and HTML report export |
205
- | **0.15.0** (2026-04-27) | Reach | `projscan_impact` blast-radius tool, per-function fan-in, sub-file embeddings |
206
- | **0.14.0** (2026-04-26) | Agent Fix Loop | `projscan_fix_suggest` and `projscan_explain_issue` |
207
- | **0.13.0** (2026-04-26) | Agent Review | `projscan_review` one-call PR review and per-function cyclomatic complexity |
208
- | **0.12.0** (2026-04-25) | — | Java and Ruby adapters, workspace-aware `outdated` and unused-dep |
209
- | **0.11.0** (2026-04-25) | — | AST cyclomatic complexity, `projscan_coupling`, `projscan_pr_diff`, monorepo workspace detection, Go adapter |
210
- | **0.10.0** (2026-04-24) | Beyond JS | Python as a first-class language; `LanguageAdapter` interface |
211
- | **0.9.0–0.9.2** (2026-04-20) | True Semantic Search | Optional `@xenova/transformers` peer; security patch for path traversal |
212
- | **0.8.0** (2026-04-20) | Streaming & Pagination | MCP protocol 2025-03-26, cursor pagination, progress notifications |
213
- | **0.7.0** (2026-04-20) | Smart Search | BM25-ranked content + symbol + path search |
214
- | **0.6.0** (2026-04-20) | Agent-First | Real AST parsing, code graph primitive, incremental cache, MCP token budgeter |
215
- | **0.5.0** (2026-04-20) | Deeper Signal | `projscan coverage`, dead-code analyzer |
216
- | **0.4.0** (2026-04-20) | Dependency Health | `projscan outdated` / `audit` / `upgrade`, unused-dependency analyzer |
217
- | **0.3.0–0.3.1** (2026-04-20) | — | SARIF output, `--changed-only`, `.projscanrc` config, GitHub Action |
218
- | **0.2.0** (2026-04-19) | — | `projscan hotspots`, `projscan mcp` |
219
- | **0.1.x** (2026-03-11) | — | Initial release: analyze, doctor, fix, explain, diagram, structure, dependencies, badge |
169
+ | Version | Theme | Headline |
170
+ | ---------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
171
+ | **3.6.0** (2026-06-05) | Swarm Coordination | Local-first coordination for parallel agents across git worktrees: `projscan_collision`, `projscan_claim` (leased), `projscan_merge_risk`, `projscan_route`, `projscan_coordinate`; graceful embedding degradation; 41 → 47 tools |
172
+ | **3.5.0** (2026-06-04) | Plugin Trust | `projscan fix` installs with `--ignore-scripts` (no lifecycle-script RCE); local plugins gated by trust-on-first-use (`projscan plugin trust`), plus a hardened, model-degrading embedding path |
173
+ | **3.4.0** (2026-06-04) | Repo Understanding | `projscan understand` / `projscan_understand` with cited repo, flow, contract, change-readiness, and verification maps for working engineers |
174
+ | **3.3.0** (2026-06-03) | Roadmap Evidence Polish | Adoption proof gates, reviewer decision evidence, first-ten-minutes/start coordination hints, Hono request-source precision, plugin trust guidance, generated PR-comment validation, and evidence helper extraction |
175
+ | **3.2.0** (2026-06-03) | Roadmap Train | Canonical 3.2-3.9 release train surfaced in release planning and roadmap docs |
176
+ | **3.1.0** (2026-06-02) | Trust Boundary Hardening | Privacy-check trust report, Git-visible scan boundary, path-only `.env` defaults, offline mode, session/worktree risk split, and fast trust smoke gate |
177
+ | **3.0.8** (2026-06-01) | Legal and Trust Hardening | Public legal/trust documents, vulnerability reporting, contribution provenance, and canonical icon packaging |
178
+ | **3.0.7** (2026-05-31) | Trial Adoption Report | Adoption trial verdict, structured reviewer feedback capture, measured market-validation gates, and refreshed adoption docs |
179
+ | **3.0.6** (2026-05-31) | Market Validation Loop | Feedback-backed dogfood evidence, minutes-saved/prevented-edit tracking, false-positive reporting, Baseframe Labs brand surfaces, and security disclosure assets |
180
+ | **3.0.5** (2026-05-28) | Proof of Usefulness | End-to-end adoption harness, five-scenario PR comment benchmarks, fix-first output, richer baseline trend memory, Express/Next dataflow precision, and scale-risk calibration |
181
+ | **3.0.4** (2026-05-28) | Team Adoption Loop | Team bootstrap, MCP setup doctor, validated PR evidence comments, baseline trend memory, owner routing, practical plugins, and trust calibration |
182
+ | **3.0.3** (2026-05-27) | Agent Review Precision | Package-scoped review verdicts, receiver-sensitive route request sources, generated-code review/dataflow filtering, package owner fallback, and v5 GitHub Actions |
183
+ | **3.0.2** (2026-05-27) | Agent Graph Readiness | Graph corpus release gates, custom dataflow visibility, remote tag integrity, CODEOWNERS impact ownership, and 3.x release-train planning |
184
+ | **3.0.1** (2026-05-26) | Graph Operations Platform | Graph-backed review/workplan/brief evidence, cross-repo boundary impact, plugin graph context, golden graph corpus, and hardened dataflow precision |
185
+ | **3.0.0** (2026-05-23) | Deep Graph Platform | Stable v3 semantic graph, dataflow risk engine, bridge-helper review blocks, 39-tool MCP surface, and public graph/dataflow APIs |
186
+ | **2.9.0** (2026-05-23) | Adoption Layer | MCP client config snippets, workflow recipes, first-run diagnostics, adoption MCP tool, plugin gallery, and console guidance polish |
187
+ | **2.8.0** (2026-05-22) | Agent Mission Control | Workplans, bug-hunt queues, release readiness, evidence packs, regression plans, agent briefs, and quality scorecards |
188
+ | **2.0.0** (2026-05-18) | Plugin Platform | Stable local analyzer/reporter plugin contract, manifest schema and tested examples, CLI JSON `schemaVersion: 2`, extensible `LanguageId`, and removal of deprecated regex import/export helpers |
189
+ | **1.11.0** (2026-05-18) | Reporter Plugins | Reporter plugin preview for CLI output (`--reporter` on `doctor`, `analyze`, and `ci`), reporter manifest validation through `projscan_plugin`, and refreshed README media with a macOS-style terminal demo |
190
+ | **1.10.0** (2026-05-13) | RC for 2.0 | Analyzer plugin API preview behind PROJSCAN_PLUGINS_PREVIEW flag (`projscan_plugin` MCP tool, `projscan plugin` CLI, `.projscan-plugins/*.projscan-plugin.json` schema); live cost-summary streaming with `notifications/projscan/cost_delta`; five 1.9-deferred fixes (applyFix rollback dir handling, incrementalUpdateGraph context staleness, changedFiles maxBuffer surfacing, taint per-step frontier cap, watcher.close mid-flush) |
191
+ | **1.9.0** (2026-05-12) | Intent + Polish | Intent-grounded review: free-text PR description → per-finding expected / unexpected / out-of-scope labels (no LLM); Project Memory loop #4 (per-rule severity drift, cry-wolf / noisy / stable); review_watch signature deepening with structured `delta` payload; macOS CI leg |
192
+ | **1.8.1** (2026-05-08) | Docs patch | README setup snippets for Codex CLI + Gemini CLI |
193
+ | **1.8.0** (2026-05-08) | Resilience + Live | Swift adapter (11 languages); long-running PR watch (`projscan_review_watch`) with `notifications/projscan/pr_changed`; atomic session save; taint truncation reporting + MAX_DEPTH 8 → 12; embeddings LRU; templated C++ qualified-id; 7 fixes from a three-way multi-agent bug hunt |
194
+ | **1.7.0** (2026-05-07) | Reach + Visibility | Kotlin and C++ adapters (10 languages); per-rule confidence in Project Memory (loop #3); aggregate cost analytics (`projscan_cost_summary`); 6 fixes from a four-way multi-agent bug hunt |
195
+ | **1.6.0** (2026-05-06) | Operator | Cross-repo workspace + intelligence (`projscan_workspace_graph`); mechanical apply layer with rollback (`projscan_apply_fix`, six templates); source-to-sink taint analysis (`projscan_taint`) wired into review as a hard block on new flows |
196
+ | **1.5.0** (2026-05-05) | Budgeted by default | `_cost` sidecar on every result; adaptive `projscan_review` with full / summary / verdict-only tiers |
197
+ | **1.4.0** (2026-05-05) | Session | Durable cross-invocation session: `projscan_session` MCP tool, auto-touched files, event log |
198
+ | **1.3.0** (2026-05-05) | Push, Don't Poll | MCP `notifications/file_changed` push and registry-aware upgrade preview |
199
+ | **1.2.1** (2026-05-05) | Animated docs | Animated GIFs replace static command screenshots |
200
+ | **1.2.0** (2026-05-05) | Reporter Parity | PHP and C# adapters, HTML reporters, per-function fan-out |
201
+ | **1.1.1** (2026-05-04) | Dogfood patch | Tree-sitter false-positive fix |
202
+ | **1.1.0** (2026-05-04) | On the Map | Rust adapter and fix-suggest templates for `eslint-*` and `python-type-error-*` |
203
+ | **1.0.0** (2026-05-04) | Stable | Public no-break commitment release |
204
+ | **0.17.0** (2026-05-02) | RC + Docs | Documentation reorganized around the agent journey |
205
+ | **0.16.0** (2026-04-30) | Live | `projscan watch` CLI and HTML report export |
206
+ | **0.15.0** (2026-04-27) | Reach | `projscan_impact` blast-radius tool, per-function fan-in, sub-file embeddings |
207
+ | **0.14.0** (2026-04-26) | Agent Fix Loop | `projscan_fix_suggest` and `projscan_explain_issue` |
208
+ | **0.13.0** (2026-04-26) | Agent Review | `projscan_review` one-call PR review and per-function cyclomatic complexity |
209
+ | **0.12.0** (2026-04-25) | — | Java and Ruby adapters, workspace-aware `outdated` and unused-dep |
210
+ | **0.11.0** (2026-04-25) | — | AST cyclomatic complexity, `projscan_coupling`, `projscan_pr_diff`, monorepo workspace detection, Go adapter |
211
+ | **0.10.0** (2026-04-24) | Beyond JS | Python as a first-class language; `LanguageAdapter` interface |
212
+ | **0.9.0–0.9.2** (2026-04-20) | True Semantic Search | Optional `@xenova/transformers` peer; security patch for path traversal |
213
+ | **0.8.0** (2026-04-20) | Streaming & Pagination | MCP protocol 2025-03-26, cursor pagination, progress notifications |
214
+ | **0.7.0** (2026-04-20) | Smart Search | BM25-ranked content + symbol + path search |
215
+ | **0.6.0** (2026-04-20) | Agent-First | Real AST parsing, code graph primitive, incremental cache, MCP token budgeter |
216
+ | **0.5.0** (2026-04-20) | Deeper Signal | `projscan coverage`, dead-code analyzer |
217
+ | **0.4.0** (2026-04-20) | Dependency Health | `projscan outdated` / `audit` / `upgrade`, unused-dependency analyzer |
218
+ | **0.3.0–0.3.1** (2026-04-20) | — | SARIF output, `--changed-only`, `.projscanrc` config, GitHub Action |
219
+ | **0.2.0** (2026-04-19) | — | `projscan hotspots`, `projscan mcp` |
220
+ | **0.1.x** (2026-03-11) | — | Initial release: analyze, doctor, fix, explain, diagram, structure, dependencies, badge |
@@ -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>
@@ -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) => {