projscan 4.8.0 → 4.9.2

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 (264) hide show
  1. package/README.md +102 -58
  2. package/dist/analyzers/deadCodeCheck.js +93 -0
  3. package/dist/analyzers/deadCodeCheck.js.map +1 -1
  4. package/dist/analyzers/unusedDependencyCheck.js +10 -10
  5. package/dist/analyzers/unusedDependencyCheck.js.map +1 -1
  6. package/dist/cli/commands/bugHunt.js +37 -8
  7. package/dist/cli/commands/bugHunt.js.map +1 -1
  8. package/dist/cli/commands/feedback.js +47 -1
  9. package/dist/cli/commands/feedback.js.map +1 -1
  10. package/dist/cli/commands/preflight.js +18 -2
  11. package/dist/cli/commands/preflight.js.map +1 -1
  12. package/dist/cli/commands/privacyCheck.js +5 -2
  13. package/dist/cli/commands/privacyCheck.js.map +1 -1
  14. package/dist/cli/commands/releaseTrain.js +9 -1
  15. package/dist/cli/commands/releaseTrain.js.map +1 -1
  16. package/dist/cli/commands/startAction.d.ts +2 -1
  17. package/dist/cli/commands/startAction.js +4 -4
  18. package/dist/cli/commands/startAction.js.map +1 -1
  19. package/dist/cli/commands/startConsole.d.ts +1 -0
  20. package/dist/cli/commands/startConsole.js +83 -7
  21. package/dist/cli/commands/startConsole.js.map +1 -1
  22. package/dist/cli/commands/startOptionsRegistration.js +1 -1
  23. package/dist/cli/commands/startOptionsRegistration.js.map +1 -1
  24. package/dist/core/adoption.js +13 -0
  25. package/dist/core/adoption.js.map +1 -1
  26. package/dist/core/bugHunt.js +62 -22
  27. package/dist/core/bugHunt.js.map +1 -1
  28. package/dist/core/bugHuntPreflightFindings.js +5 -2
  29. package/dist/core/bugHuntPreflightFindings.js.map +1 -1
  30. package/dist/core/evidenceComment.d.ts +2 -1
  31. package/dist/core/evidenceComment.js +45 -7
  32. package/dist/core/evidenceComment.js.map +1 -1
  33. package/dist/core/feedback.d.ts +2 -1
  34. package/dist/core/feedback.js +186 -0
  35. package/dist/core/feedback.js.map +1 -1
  36. package/dist/core/frameworkAstroSources.d.ts +2 -0
  37. package/dist/core/frameworkAstroSources.js +71 -0
  38. package/dist/core/frameworkAstroSources.js.map +1 -0
  39. package/dist/core/frameworkSourceResolvers.js +6 -0
  40. package/dist/core/frameworkSourceResolvers.js.map +1 -1
  41. package/dist/core/frameworkSources.js +2 -0
  42. package/dist/core/frameworkSources.js.map +1 -1
  43. package/dist/core/importGraph.d.ts +2 -0
  44. package/dist/core/importGraph.js +14 -5
  45. package/dist/core/importGraph.js.map +1 -1
  46. package/dist/core/intentRouterCatalog.js +8 -3
  47. package/dist/core/intentRouterCatalog.js.map +1 -1
  48. package/dist/core/intentRouterDependencySignals.d.ts +1 -0
  49. package/dist/core/intentRouterDependencySignals.js +14 -0
  50. package/dist/core/intentRouterDependencySignals.js.map +1 -1
  51. package/dist/core/intentRouterKeywordEarlyGuards.js +24 -1
  52. package/dist/core/intentRouterKeywordEarlyGuards.js.map +1 -1
  53. package/dist/core/intentRouterKeywordWeights.js +6 -0
  54. package/dist/core/intentRouterKeywordWeights.js.map +1 -1
  55. package/dist/core/intentRouterPreflightSignals.js +7 -2
  56. package/dist/core/intentRouterPreflightSignals.js.map +1 -1
  57. package/dist/core/intentRouterRegressionKeywordMatches.js +9 -2
  58. package/dist/core/intentRouterRegressionKeywordMatches.js.map +1 -1
  59. package/dist/core/intentRouterRegressionSignals.d.ts +1 -0
  60. package/dist/core/intentRouterRegressionSignals.js +11 -1
  61. package/dist/core/intentRouterRegressionSignals.js.map +1 -1
  62. package/dist/core/intentRouterReleaseSignals.js +2 -2
  63. package/dist/core/intentRouterReleaseSignals.js.map +1 -1
  64. package/dist/core/intentRouterVerificationSignals.js +5 -0
  65. package/dist/core/intentRouterVerificationSignals.js.map +1 -1
  66. package/dist/core/intentRouterWorkSignals.js +4 -2
  67. package/dist/core/intentRouterWorkSignals.js.map +1 -1
  68. package/dist/core/languages/LanguageAdapter.d.ts +2 -0
  69. package/dist/core/languages/javascriptAdapter.js +7 -28
  70. package/dist/core/languages/javascriptAdapter.js.map +1 -1
  71. package/dist/core/languages/javascriptProjectConfig.d.ts +20 -0
  72. package/dist/core/languages/javascriptProjectConfig.js +479 -0
  73. package/dist/core/languages/javascriptProjectConfig.js.map +1 -0
  74. package/dist/core/preflightCautionBudget.d.ts +2 -0
  75. package/dist/core/preflightCautionBudget.js +85 -0
  76. package/dist/core/preflightCautionBudget.js.map +1 -0
  77. package/dist/core/preflightInputs.d.ts +30 -2
  78. package/dist/core/preflightInputs.js +39 -12
  79. package/dist/core/preflightInputs.js.map +1 -1
  80. package/dist/core/preflightReasons.js +35 -9
  81. package/dist/core/preflightReasons.js.map +1 -1
  82. package/dist/core/preflightReleaseScale.js +16 -5
  83. package/dist/core/preflightReleaseScale.js.map +1 -1
  84. package/dist/core/preflightReport.js +3 -0
  85. package/dist/core/preflightReport.js.map +1 -1
  86. package/dist/core/preflightSuggestedActions.js +3 -1
  87. package/dist/core/preflightSuggestedActions.js.map +1 -1
  88. package/dist/core/preflightVerdict.js +3 -0
  89. package/dist/core/preflightVerdict.js.map +1 -1
  90. package/dist/core/qualityScorecard.js +39 -21
  91. package/dist/core/qualityScorecard.js.map +1 -1
  92. package/dist/core/releaseEvidence.d.ts +2 -2
  93. package/dist/core/releaseEvidence.js +3 -2
  94. package/dist/core/releaseEvidence.js.map +1 -1
  95. package/dist/core/releaseEvidenceArtifacts.js +12 -4
  96. package/dist/core/releaseEvidenceArtifacts.js.map +1 -1
  97. package/dist/core/releaseTrain.d.ts +11 -1
  98. package/dist/core/releaseTrain.js +54 -2
  99. package/dist/core/releaseTrain.js.map +1 -1
  100. package/dist/core/repositoryScanner.js +5 -2
  101. package/dist/core/repositoryScanner.js.map +1 -1
  102. package/dist/core/reviewVerdict.js +37 -5
  103. package/dist/core/reviewVerdict.js.map +1 -1
  104. package/dist/core/startAdoptionGaps.js +1 -1
  105. package/dist/core/startAdoptionGaps.js.map +1 -1
  106. package/dist/core/startClaimTargets.d.ts +2 -0
  107. package/dist/core/startClaimTargets.js +14 -0
  108. package/dist/core/startClaimTargets.js.map +1 -0
  109. package/dist/core/startDailyWorkflows.d.ts +2 -0
  110. package/dist/core/startDailyWorkflows.js +50 -0
  111. package/dist/core/startDailyWorkflows.js.map +1 -0
  112. package/dist/core/startEnvTargets.d.ts +1 -0
  113. package/dist/core/startEnvTargets.js +9 -0
  114. package/dist/core/startEnvTargets.js.map +1 -0
  115. package/dist/core/startFileTargets.d.ts +2 -0
  116. package/dist/core/startFileTargets.js +19 -0
  117. package/dist/core/startFileTargets.js.map +1 -0
  118. package/dist/core/startGeneratedConfigSearchTargets.d.ts +1 -0
  119. package/dist/core/startGeneratedConfigSearchTargets.js +22 -0
  120. package/dist/core/startGeneratedConfigSearchTargets.js.map +1 -0
  121. package/dist/core/startGraphTargets.d.ts +10 -0
  122. package/dist/core/startGraphTargets.js +82 -0
  123. package/dist/core/startGraphTargets.js.map +1 -0
  124. package/dist/core/startHighPrioritySearchTargets.d.ts +1 -0
  125. package/dist/core/startHighPrioritySearchTargets.js +24 -0
  126. package/dist/core/startHighPrioritySearchTargets.js.map +1 -0
  127. package/dist/core/startImpactTargets.d.ts +1 -0
  128. package/dist/core/startImpactTargets.js +18 -0
  129. package/dist/core/startImpactTargets.js.map +1 -0
  130. package/dist/core/startIntentApiContractQueries.d.ts +1 -0
  131. package/dist/core/startIntentApiContractQueries.js +50 -0
  132. package/dist/core/startIntentApiContractQueries.js.map +1 -0
  133. package/dist/core/startIntentAuthorizationQueries.d.ts +1 -0
  134. package/dist/core/startIntentAuthorizationQueries.js +29 -0
  135. package/dist/core/startIntentAuthorizationQueries.js.map +1 -0
  136. package/dist/core/startIntentBackgroundWorkQueries.d.ts +1 -0
  137. package/dist/core/startIntentBackgroundWorkQueries.js +23 -0
  138. package/dist/core/startIntentBackgroundWorkQueries.js.map +1 -0
  139. package/dist/core/startIntentCommunicationArtifactQueries.d.ts +1 -0
  140. package/dist/core/startIntentCommunicationArtifactQueries.js +25 -0
  141. package/dist/core/startIntentCommunicationArtifactQueries.js.map +1 -0
  142. package/dist/core/startIntentDataAccessQueries.d.ts +1 -0
  143. package/dist/core/startIntentDataAccessQueries.js +60 -0
  144. package/dist/core/startIntentDataAccessQueries.js.map +1 -0
  145. package/dist/core/startIntentDataContractQueries.d.ts +1 -0
  146. package/dist/core/startIntentDataContractQueries.js +75 -0
  147. package/dist/core/startIntentDataContractQueries.js.map +1 -0
  148. package/dist/core/startIntentDomainSearchQueries.d.ts +1 -0
  149. package/dist/core/startIntentDomainSearchQueries.js +47 -0
  150. package/dist/core/startIntentDomainSearchQueries.js.map +1 -0
  151. package/dist/core/startIntentDomainWorkflowQueries.d.ts +1 -0
  152. package/dist/core/startIntentDomainWorkflowQueries.js +28 -0
  153. package/dist/core/startIntentDomainWorkflowQueries.js.map +1 -0
  154. package/dist/core/startIntentFrontendPageRouteQueries.d.ts +1 -0
  155. package/dist/core/startIntentFrontendPageRouteQueries.js +26 -0
  156. package/dist/core/startIntentFrontendPageRouteQueries.js.map +1 -0
  157. package/dist/core/startIntentInfraArtifactQueries.d.ts +1 -0
  158. package/dist/core/startIntentInfraArtifactQueries.js +62 -0
  159. package/dist/core/startIntentInfraArtifactQueries.js.map +1 -0
  160. package/dist/core/startIntentIntegrationQueries.d.ts +1 -0
  161. package/dist/core/startIntentIntegrationQueries.js +96 -0
  162. package/dist/core/startIntentIntegrationQueries.js.map +1 -0
  163. package/dist/core/startIntentNavigationLayoutQueries.d.ts +1 -0
  164. package/dist/core/startIntentNavigationLayoutQueries.js +22 -0
  165. package/dist/core/startIntentNavigationLayoutQueries.js.map +1 -0
  166. package/dist/core/startIntentObservabilityQueries.d.ts +1 -0
  167. package/dist/core/startIntentObservabilityQueries.js +26 -0
  168. package/dist/core/startIntentObservabilityQueries.js.map +1 -0
  169. package/dist/core/startIntentReliabilityQueries.d.ts +1 -0
  170. package/dist/core/startIntentReliabilityQueries.js +85 -0
  171. package/dist/core/startIntentReliabilityQueries.js.map +1 -0
  172. package/dist/core/startIntentStateManagementQueries.d.ts +1 -0
  173. package/dist/core/startIntentStateManagementQueries.js +61 -0
  174. package/dist/core/startIntentStateManagementQueries.js.map +1 -0
  175. package/dist/core/startIntentStyleSystemQueries.d.ts +1 -0
  176. package/dist/core/startIntentStyleSystemQueries.js +26 -0
  177. package/dist/core/startIntentStyleSystemQueries.js.map +1 -0
  178. package/dist/core/startIntentTargetText.d.ts +2 -0
  179. package/dist/core/startIntentTargetText.js +9 -0
  180. package/dist/core/startIntentTargetText.js.map +1 -0
  181. package/dist/core/startIntentTargets.d.ts +10 -24
  182. package/dist/core/startIntentTargets.js +15 -1123
  183. package/dist/core/startIntentTargets.js.map +1 -1
  184. package/dist/core/startIntentTestDataQueries.d.ts +1 -0
  185. package/dist/core/startIntentTestDataQueries.js +28 -0
  186. package/dist/core/startIntentTestDataQueries.js.map +1 -0
  187. package/dist/core/startIntentToolingConfigQueries.d.ts +1 -0
  188. package/dist/core/startIntentToolingConfigQueries.js +31 -0
  189. package/dist/core/startIntentToolingConfigQueries.js.map +1 -0
  190. package/dist/core/startIntentUiInteractionQueries.d.ts +1 -0
  191. package/dist/core/startIntentUiInteractionQueries.js +71 -0
  192. package/dist/core/startIntentUiInteractionQueries.js.map +1 -0
  193. package/dist/core/startIssueTargets.d.ts +1 -0
  194. package/dist/core/startIssueTargets.js +19 -0
  195. package/dist/core/startIssueTargets.js.map +1 -0
  196. package/dist/core/startMissionPolicy.d.ts +2 -2
  197. package/dist/core/startMissionPolicy.js +63 -7
  198. package/dist/core/startMissionPolicy.js.map +1 -1
  199. package/dist/core/startMode.d.ts +3 -1
  200. package/dist/core/startMode.js +39 -7
  201. package/dist/core/startMode.js.map +1 -1
  202. package/dist/core/startOptions.d.ts +2 -2
  203. package/dist/core/startOptions.js +1 -1
  204. package/dist/core/startOptions.js.map +1 -1
  205. package/dist/core/startOwnershipSearchTargets.d.ts +2 -0
  206. package/dist/core/startOwnershipSearchTargets.js +23 -0
  207. package/dist/core/startOwnershipSearchTargets.js.map +1 -0
  208. package/dist/core/startPackageTargets.d.ts +4 -0
  209. package/dist/core/startPackageTargets.js +91 -0
  210. package/dist/core/startPackageTargets.js.map +1 -0
  211. package/dist/core/startQuotedTextTargets.d.ts +1 -0
  212. package/dist/core/startQuotedTextTargets.js +7 -0
  213. package/dist/core/startQuotedTextTargets.js.map +1 -0
  214. package/dist/core/startReportBuilder.d.ts +1 -0
  215. package/dist/core/startReportBuilder.js +2 -1
  216. package/dist/core/startReportBuilder.js.map +1 -1
  217. package/dist/core/startReportContext.d.ts +1 -0
  218. package/dist/core/startReportContext.js +3 -0
  219. package/dist/core/startReportContext.js.map +1 -1
  220. package/dist/core/startReportScopeTargets.d.ts +1 -0
  221. package/dist/core/startReportScopeTargets.js +56 -0
  222. package/dist/core/startReportScopeTargets.js.map +1 -0
  223. package/dist/core/startShellArgs.d.ts +4 -0
  224. package/dist/core/startShellArgs.js +19 -0
  225. package/dist/core/startShellArgs.js.map +1 -0
  226. package/dist/core/startSymbolTargets.d.ts +2 -0
  227. package/dist/core/startSymbolTargets.js +28 -0
  228. package/dist/core/startSymbolTargets.js.map +1 -0
  229. package/dist/core/startTestRouteSearchTargets.d.ts +1 -0
  230. package/dist/core/startTestRouteSearchTargets.js +34 -0
  231. package/dist/core/startTestRouteSearchTargets.js.map +1 -0
  232. package/dist/core/understand.js +20 -22
  233. package/dist/core/understand.js.map +1 -1
  234. package/dist/core/workplan.js +24 -12
  235. package/dist/core/workplan.js.map +1 -1
  236. package/dist/mcp/tools/workspaceGraph.js +12 -9
  237. package/dist/mcp/tools/workspaceGraph.js.map +1 -1
  238. package/dist/projscan-sbom.cdx.json +6 -6
  239. package/dist/publicAgent.d.ts +1 -1
  240. package/dist/publicAgent.js +1 -1
  241. package/dist/publicAgent.js.map +1 -1
  242. package/dist/tool-manifest.json +2 -2
  243. package/dist/types/bugHunt.d.ts +1 -1
  244. package/dist/types/dogfood.d.ts +17 -0
  245. package/dist/types/evidencePack.d.ts +8 -0
  246. package/dist/types/preflight.d.ts +18 -0
  247. package/dist/types/releaseTrain.d.ts +7 -0
  248. package/dist/types/startCommon.d.ts +8 -0
  249. package/dist/types/startMissionControl.d.ts +2 -1
  250. package/dist/utils/fileWalker.d.ts +1 -0
  251. package/dist/utils/fileWalker.js +6 -1
  252. package/dist/utils/fileWalker.js.map +1 -1
  253. package/dist/utils/formatSupport.d.ts +1 -0
  254. package/dist/utils/formatSupport.js +1 -0
  255. package/dist/utils/formatSupport.js.map +1 -1
  256. package/docs/GUIDE.md +50 -11
  257. package/docs/ROADMAP.md +41 -16
  258. package/docs/demos/projscan-4-1-demo.html +4 -4
  259. package/docs/examples/adoption-workflows.md +48 -0
  260. package/docs/projscan-mission-control.gif +0 -0
  261. package/docs/projscan-mission-control.png +0 -0
  262. package/docs/projscan-mission-proof.gif +0 -0
  263. package/docs/projscan-proof-router.png +0 -0
  264. package/package.json +12 -12
@@ -33,7 +33,12 @@ const DEFAULT_IGNORE = [
33
33
  export async function walkFiles(rootPath, options) {
34
34
  const ignore = options?.ignore ?? DEFAULT_IGNORE;
35
35
  let pattern = '**/*';
36
- if (options?.extensions?.length) {
36
+ if (options?.paths) {
37
+ if (options.paths.length === 0)
38
+ return [];
39
+ pattern = options.paths.map((filePath) => fg.escapePath(filePath));
40
+ }
41
+ else if (options?.extensions?.length) {
37
42
  const exts = options.extensions.map((e) => e.replace(/^\./, ''));
38
43
  pattern = exts.length === 1 ? `**/*.${exts[0]}` : `**/*.{${exts.join(',')}}`;
39
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fileWalker.js","sourceRoot":"","sources":["../../src/utils/fileWalker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,cAAc,GAAG;IACrB,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,cAAc;IACd,uBAAuB;IACvB,wBAAwB;IACxB,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,kEAAkE;IAClE,oEAAoE;IACpE,mCAAmC;IACnC,YAAY;IACZ,aAAa;IACb,WAAW;IACX,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,qBAAqB;IACrB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,kBAAkB;CACnB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAqB;IACrE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,cAAc,CAAC;IAEjD,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,IAAI,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE;QAChC,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,IAAI;QACT,MAAM;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;QACf,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAElE,OAAO;YACL,YAAY;YACZ,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;YAClD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YACnD,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"fileWalker.js","sourceRoot":"","sources":["../../src/utils/fileWalker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,MAAM,cAAc,GAAG;IACrB,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,cAAc;IACd,uBAAuB;IACvB,wBAAwB;IACxB,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,kEAAkE;IAClE,oEAAoE;IACpE,mCAAmC;IACnC,YAAY;IACZ,aAAa;IACb,WAAW;IACX,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,qBAAqB;IACrB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,kBAAkB;CACnB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAqB;IACrE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,cAAc,CAAC;IAEjD,IAAI,OAAO,GAAsB,MAAM,CAAC;IACxC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE;QAChC,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,IAAI;QACT,MAAM;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;QACf,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAElE,OAAO;YACL,YAAY;YACZ,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;YAClD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YACnD,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC;AAC7B,CAAC"}
@@ -29,6 +29,7 @@ export declare const COMMAND_FORMAT_SUPPORT: {
29
29
  readonly feedback: readonly ["console", "json"];
30
30
  readonly 'feedback init': readonly ["console", "json"];
31
31
  readonly 'feedback add': readonly ["console", "json"];
32
+ readonly 'feedback intake': readonly ["console", "json"];
32
33
  readonly 'feedback summary': readonly ["console", "json"];
33
34
  readonly explain: readonly ["console", "json", "markdown"];
34
35
  readonly 'explain-issue': readonly ["console", "json", "markdown"];
@@ -34,6 +34,7 @@ export const COMMAND_FORMAT_SUPPORT = {
34
34
  feedback: ['console', 'json'],
35
35
  'feedback init': ['console', 'json'],
36
36
  'feedback add': ['console', 'json'],
37
+ 'feedback intake': ['console', 'json'],
37
38
  'feedback summary': ['console', 'json'],
38
39
  explain: ['console', 'json', 'markdown'],
39
40
  'explain-issue': ['console', 'json', 'markdown'],
@@ -1 +1 @@
1
- {"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"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"}
package/docs/GUIDE.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # ProjScan - Full Guide
2
2
 
3
- A deep dive into everything ProjScan can do. For a quick overview, see the [README](../README.md).
3
+ This guide starts with demonstrated workflows before the command reference. For a quick overview, see the [README](../README.md).
4
4
 
5
- **ProjScan is agent-first**: the MCP server is the primary interface, and the CLI is a consumer of the same primitives. This guide covers both, but if you're integrating with Claude Code / Cursor / Windsurf / Codex, start with [MCP Server for AI Agents](#mcp-server-for-ai-agents).
5
+ **ProjScan is agent-first where agents need local repo evidence**: the MCP server and CLI share the same primitives. This guide covers both, but if you're integrating with Claude Code / Cursor / Windsurf / Codex, start with [MCP Server for AI Agents](#mcp-server-for-ai-agents).
6
6
 
7
7
  ---
8
8
 
@@ -104,6 +104,44 @@ This runs the default `analyze` command. Within a second or two you'll see a ful
104
104
  4. **Dependency summary** - production vs. dev count, package manager, lock file status
105
105
  5. **Issues found** - grouped by severity (error, warning, info)
106
106
 
107
+ ## Daily workflows engineers can trust
108
+
109
+ Use these before the command reference when you want the product's most proven
110
+ paths.
111
+
112
+ ### Before editing a feature
113
+
114
+ ```bash
115
+ projscan start --intent "what files do I need to change for auth?"
116
+ projscan understand --view change --intent "add auth token refresh" --format json
117
+ projscan preflight --mode before_edit --format json
118
+ ```
119
+
120
+ Success criteria: the agent starts with cited files, change-readiness evidence,
121
+ and a before-edit gate instead of a free-form plan.
122
+
123
+ ### Before handoff or commit
124
+
125
+ ```bash
126
+ projscan bug-hunt --format json
127
+ projscan preflight --mode before_commit --format json
128
+ projscan evidence-pack --pr-comment
129
+ ```
130
+
131
+ Success criteria: concrete fix targets, manual review gates, and proof commands
132
+ are separated before a reviewer sees the work.
133
+
134
+ ### Before release-candidate review
135
+
136
+ ```bash
137
+ projscan release-train --format json
138
+ projscan preflight --mode before_merge --format json
139
+ projscan evidence-pack --pr-comment
140
+ ```
141
+
142
+ Success criteria: release-train stays read-only, `caution` names the next
143
+ action, and no version, publish, tag, or deploy step is implied.
144
+
107
145
  ---
108
146
 
109
147
  ## The agent journey
@@ -167,7 +205,7 @@ When the agent first opens a repo, or before starting a refactor, the question i
167
205
  For risky-file, complexity, refactor-priority, and codebase-performance questions, such as `projscan start --intent "what files are risky to touch?"`, `projscan start --intent "which files are too complex?"`, `projscan start --intent "what file should I refactor first?"`, `projscan start --intent "find performance bottlenecks"`, or `projscan start --intent "where are the slow files?"`, it routes to `projscan_hotspots` so the developer sees the highest-risk files before editing. For exact-file risk questions, such as `projscan start --intent "why is src/core/start.ts risky?"`, it routes to `projscan_file` so the file's hotspot, ownership, issue, import, and export context explains the risk. For cleanup questions, such as `projscan start --intent "find dead code"`, `projscan start --intent "find dead code and unused exports I can delete"`, `projscan start --intent "what can I safely delete?"`, or `projscan start --intent "what can I remove safely?"`, it routes to `projscan_doctor` so dead code, unused exports, and adjacent health issues are reviewed before files are removed.
168
206
  For tech-debt and simplification questions, such as `projscan start --intent "what tech debt should I pay down?"` or `projscan start --intent "what code should I simplify?"`, it routes to `projscan_hotspots` instead of incident handling for the word `down`.
169
207
  For reviewer-proof requests, such as `projscan start --intent "write a PR comment for reviewers"`, `projscan start --intent "write a PR description"`, `projscan start --intent "what should my PR say?"`, `projscan start --intent "make a PR checklist"`, `projscan start --intent "summarize my changes for reviewers"`, or `projscan start --intent "what should I tell my team about this change?"`, it routes to `projscan_evidence_pack` with `pr_comment: true` so the developer gets a paste-ready verdict, top risks, owner routing, and next commands.
170
- For shareable scoped-evidence requests, such as `projscan start --intent "share redacted evidence for src/api with a partner"`, it routes to `projscan_analyze` and returns ready analyze, doctor, and CI commands with `--report-scope` and `--redact-paths` so security reviewers and partners can receive path-safe artifacts without a full repo map.
208
+ For shareable scoped-evidence requests, such as `projscan start --intent "share redacted evidence for src/api with a partner"` or `projscan start --intent "share redacted evidence for src/api and packages/backend with a partner"`, it routes to `projscan_analyze` and returns ready analyze, doctor, and CI commands with `--report-scope` and `--redact-paths` so security reviewers and partners can receive path-safe artifacts without a full repo map.
171
209
  For reviewer-routing questions, such as `projscan start --intent "who should review this PR?"`, it routes to `projscan_evidence_pack` so likely owners and reviewer-facing context are prepared before a full review.
172
210
  For PR-readiness questions, such as `projscan start --intent "am I ready to open a PR?"`, it routes to `projscan_evidence_pack` so preflight, owner routing, top risks, and reviewer-facing proof are prepared before review starts.
173
211
  For changed-file owner questions, such as `projscan start --intent "who owns the changed files?"`, it routes to `projscan_evidence_pack` so changed-file owner routing is prepared without confusing it with single-file ownership inspection.
@@ -193,7 +231,7 @@ When the agent first opens a repo, or before starting a refactor, the question i
193
231
  For file-claim requests, such as `projscan start --intent "claim src/core/start.ts for me"`, it routes to `projscan_claim`, lists active claims first, then adds the requested target only after a real agent name replaces `Needs Input`.
194
232
  For architecture-coupling questions, such as `projscan start --intent "show circular dependencies"` or `projscan start --intent "find dependency cycles"`, it routes to `projscan_coupling` with `direction: "cycles_only"` / `projscan coupling --cycles-only --format json`; broader wording such as `projscan start --intent "what modules are tightly coupled"` routes to the full fan-in, fan-out, instability, cross-package-edge, and cycle report.
195
233
  - **`projscan_workplan` / `projscan workplan`** — agent mission control. Composes preflight, review, session, hotspot, plugin-policy, and supply-chain evidence into prioritized tasks with suggested tools, exact verification commands, and short handoff text. Modes: `before_edit`, `before_commit`, `before_merge`, `refactor`, `release`, `bug_hunt`, and `hardening`.
196
- - **`projscan_bug_hunt` / `projscan bug-hunt`** — bug-hunt action queue. Combines doctor issues, preflight, hotspots, and session coordination into ranked actions with verification commands; release-scale findings can be manual sign-off actions, while pure hotspot churn stays as watchlist/top-suspect evidence when health and gates are clean.
234
+ - **`projscan_bug_hunt` / `projscan bug-hunt`** — bug-hunt action queue. Combines doctor issues, preflight, hotspots, and session coordination into ranked actions with verification commands; release-scale-only findings print as manual review/sign-off work while preserving JSON verdict compatibility, and pure hotspot churn stays as watchlist/top-suspect evidence when health and gates are clean.
197
235
  - **`projscan_agent_brief` / `projscan agent-brief`** — compact next-agent context packet with focus items, repo context, coordination hints, guardrails, and suggested next actions.
198
236
  - **`projscan_quality_scorecard` / `projscan quality-scorecard`** — dimensioned quality view across health, security, tests, maintainability, coordination, top risks, and verification commands.
199
237
  - **`projscan_understand` / `projscan understand`** — cited repo-comprehension surface. Returns repo maps, runtime flow maps, contract maps, change-readiness guidance, verification tiers, unknowns, read-first files, and exact next commands.
@@ -205,11 +243,11 @@ When the agent first opens a repo, or before starting a refactor, the question i
205
243
  - **`projscan_preflight` / `projscan preflight`** — agent safety gate. Returns `proceed`, `caution`, or `block` with health, changed-file, review, remembered session, hotspot, plugin-policy, supply-chain, and release-scale evidence. `evidence.riskSources.currentWorktree` is current Git/worktree evidence; `evidence.riskSources.sessionMemory` is remembered handoff context. Use `--mode before_edit` at the start of work and `--mode before_commit` / `--mode before_merge` before handing off or merging; scale-only commit blocks are cautions, while merge gates still require manual release sign-off.
206
244
  - **`projscan_hotspots` / `projscan hotspots`** — files ranked by `git churn × AST cyclomatic complexity × open issues × ownership × coverage`. Pass `view: "functions"` for top-N risky individual functions across the repo (0.13+).
207
245
  - **`projscan_semantic_graph` / `projscan semantic-graph`** — stable v3 graph contract with file, function, package, and symbol nodes plus imports, exports, definitions, and calls edges. Use it when an agent needs one normalized graph shape instead of several targeted queries.
208
- - **`projscan_dataflow` / `projscan dataflow`** — direct, propagated, and bridge source-to-sink dataflow risks, including framework-aware Next.js, Remix, SvelteKit, Hono, Express, Fastify, and Koa request sources. Use it for a focused safety pass before touching command execution, raw SQL, filesystem writes, or DOM sinks.
246
+ - **`projscan_dataflow` / `projscan dataflow`** — direct, propagated, and bridge source-to-sink dataflow risks, including framework-aware Next.js, Remix, SvelteKit, Astro, Hono, Express, Fastify, and Koa request sources. Use it for a focused safety pass before touching command execution, raw SQL, filesystem writes, or DOM sinks.
209
247
  - **`projscan_coupling` / `projscan coupling`** — per-file fan-in / fan-out / instability plus circular-import cycles (Tarjan SCC). Use `direction: cycles_only` or `projscan coupling --cycles-only` to surface architectural debt directly.
210
248
  - **`projscan_analyze` / `projscan analyze`** — the everything report; useful at session start but verbose.
211
249
 
212
- **Typical agent flow:** start with `projscan privacy-check`, then `projscan_start` with an optional plain-language intent. If no explicit mode is supplied, start infers the workflow mode from the intent, such as `before_commit` for commit-safety checks; read `modeSource` and `modeReason` to see whether the mode was explicit, inferred, or defaulted. `modeReason` distinguishes workflow-mode defaulting from action routing, so an impact intent can still route through Mission Control while the workflow stays `before_edit`. The `firstTenMinutes` path and current-worktree coordination hint follow that resolved mode, so a commit-safety start does not send the developer back through a before-edit gate. Follow `missionControl.actionPlan`, call `missionControl.readyActions` immediately, use `missionControl.executionPlan.currentPhase` as the cursor-aligned phase pointer, and use `missionControl.executionPlan.cursor.tool` / `args` when the cursor is directly MCP-callable. Use routed-intent weighted `confidence`, `score`, and `matchedKeywords` to judge weak or ambiguous matches, and read the same confidence line in console output when working manually. Fill any `missionControl.unresolvedInputs` before running placeholder follow-ups, inspect `missionControl.alternatives` when the intent mixes goals, stop only when `missionControl.successCriteria` is satisfied, and hand off with `missionControl.handoff`, `missionControl.runbook`, or the concise `missionControl.handoffPrompt`. Use `missionControl.reviewGate` as the autonomous-work stop boundary: finish the current checklist and proof, capture `git status --short` and `git diff --stat`, then wait for approval before another slice, release, publish, or deploy. Read `missionControl.reviewGate.worktree` for current worktree availability, changed-file count, base ref, and visible changed files. Use `missionControl.reviewGate.proof` when the reviewer needs the remaining proof queue without reading the full resume object. Read `missionControl.reviewGate.doneWhen` for the success criteria the reviewer must confirm before approving more work. Read `missionControl.reviewGate.policy` before continuing from a review handoff; it lists the actions blocked until explicit reviewer approval: another slice, release, publish, deploy, push, merge, and version bump. Use `projscan start --review-gate-json --intent "<goal>"` or saved `review-gate.json` when a script needs proof, worktree evidence, done criteria, decisions, and policy in one review object. Use `projscan start --review-policy --intent "<goal>"` or saved `review-policy.json` when a script only needs that approval boundary. Use `missionControl.reviewGate.decisions` as the approval menu in review gates, task cards, and runbooks; each decision includes copyable reviewer reply text so agents do not infer permission to continue, release, or publish. The default console review gate, saved mission bundle README, concise handoff prompt, `--review-replies`, and saved `review-replies.txt` show those replies for first-open review. `missionControl.handoff.reviewGate`, `--handoff-json`, and saved `handoff.json` carry that same gate for transfer-only flows. The handoff prompt starts with `missionControl.resume.prompt`, so it carries the current cursor, runnable command or blocked input instruction, labeled unlocks or blockers, done criteria, ready proof, review stop condition, and reviewer replies in one copyable sentence; the normal console prints that same value as `Handoff Prompt` without requiring JSON or `--include-handoff`, `projscan start --handoff-prompt --intent "<goal>"` prints only that prompt for piping or copy/paste, and the Markdown runbook renders it as `## Handoff Prompt` so copied runbooks carry the same next-agent prompt. When a human just needs the runnable shell step, `projscan start --next-command --intent "<goal>"` prints only the current cursor command; when an MCP agent needs the callable equivalent, `projscan start --next-tool-call --intent "<goal>"` prints the current cursor tool call as compact JSON. Cite `missionControl.proofSummary` plus the runnable-only `missionControl.proofCommands` in broad handoff notes, and use `missionControl.handoff.readyProof.items` when resuming because it is the complete ordered remaining-proof queue; each item carries its CLI command and an optional MCP `toolCall`. `missionControl.handoff.readyProof.commands` and `toolCalls` remain convenient command-only and MCP-callable views. If the repo has `AGENTLOOP.md` or `agentloop.config.json`, start adds `npm exec agentloop -- status` to the coordination/proof queue; if `.agentflight/config.json` exists, it adds `npm exec agentflight -- verify`. These harness commands are emitted for agents, scripts, saved mission bundles, and `--proof-commands`; start reports them but does not execute them. MCP agents should use `missionControl.resume.toolCall` when present, use `missionControl.resume.inputBindings` to map unlocked placeholders to input steps, then call `missionControl.resume.followUps` as the next template calls; when they need one ordered sequence, follow `missionControl.resume.checklist`, whose `run_proof` rows include `tool` and `args` for MCP-callable proof steps. The normal console `Resume Checklist` and Markdown runbook checklist print callable rows inline as `(MCP: ...)` and mark unmapped proof rows as `(CLI only)`, so a copied runbook or default terminal run remains self-contained even outside the JSON payload. After the current action, prefer `missionControl.resume.remainingProofItems` for complete proof, using `remainingProofToolCalls` for the callable MCP subset without rerunning the current command. Humans can run the matching `command`; the normal console `Ready Proof` command list, normal console `Proof Queue`, and runbook `Proof queue` all use remaining proof so the current cursor command is not repeated, and each queued item shows either its MCP call or `CLI only`. Use `projscan_understand` and `projscan_preflight` when you need broader context or a safety gate. Use `projscan_workplan` when you need an ordered execution plan, `projscan_agent_brief` for a compact handoff, and `projscan_evidence_pack --pr-comment` when you need reviewer-facing proof. Deeper tools such as `doctor`, `hotspots`, `dataflow`, `review`, `bug-hunt`, `quality-scorecard`, `dogfood`, and `trial` are follow-up tools.
250
+ **Typical agent flow:** start with `projscan privacy-check`, then `projscan_start` with an optional plain-language intent. Start JSON also includes `dailyWorkflows`: the three repeated command paths for before-edit, before-handoff/commit, and release-candidate review. If no explicit mode is supplied, start infers the workflow mode from the intent, such as `before_commit` for commit-safety checks; read `modeSource` and `modeReason` to see whether the mode was explicit, inferred, or defaulted. `modeReason` distinguishes workflow-mode defaulting from action routing, so an impact intent can still route through Mission Control while the workflow stays `before_edit`. The `firstTenMinutes` path and current-worktree coordination hint follow that resolved mode, so a commit-safety start does not send the developer back through a before-edit gate. The normal console keeps linear missions focused on Daily Workflows, Mission Control, Resume Checklist, Ready Proof, first-ten commands, Adoption Follow-Up, and a Watch List when healthy p2-only evidence is visible. Follow `missionControl.actionPlan`, call `missionControl.readyActions` immediately, use `missionControl.executionPlan.currentPhase` as the cursor-aligned phase pointer, and use `missionControl.executionPlan.cursor.tool` / `args` when the cursor is directly MCP-callable. Use routed-intent weighted `confidence`, `score`, and `matchedKeywords` to judge weak or ambiguous matches, and read the same confidence line in console output when working manually. Fill any `missionControl.unresolvedInputs` before running placeholder follow-ups, inspect `missionControl.alternatives` when the intent mixes goals, stop only when `missionControl.successCriteria` is satisfied, and hand off with `missionControl.handoff`, `missionControl.runbook`, or the concise `missionControl.handoffPrompt`. Use `missionControl.reviewGate` as the autonomous-work stop boundary: finish the current checklist and proof, capture `git status --short` and `git diff --stat`, then wait for approval before another slice, release, publish, or deploy. Read `missionControl.reviewGate.worktree` for current worktree availability, changed-file count, base ref, and visible changed files. Use `missionControl.reviewGate.proof` when the reviewer needs the remaining proof queue without reading the full resume object. Read `missionControl.reviewGate.doneWhen` for the success criteria the reviewer must confirm before approving more work. Read `missionControl.reviewGate.policy` before continuing from a review handoff; it lists the actions blocked until explicit reviewer approval: another slice, release, publish, deploy, push, merge, and version bump. Use `projscan start --review-gate-json --intent "<goal>"` or saved `review-gate.json` when a script needs proof, worktree evidence, done criteria, decisions, and policy in one review object. Use `projscan start --review-policy --intent "<goal>"` or saved `review-policy.json` when a script only needs that approval boundary. Use `missionControl.reviewGate.decisions` as the approval menu in review gates, task cards, and runbooks; each decision includes copyable reviewer reply text so agents do not infer permission to continue, release, or publish. Saved mission bundle README, concise handoff prompt, `--review-replies`, and saved `review-replies.txt` show those replies for review handoffs. Inline `Handoff Prompt` and `Review Gate` sections appear when the mission has unresolved inputs or the caller explicitly requests handoff output. Use `--handoff-prompt`, `--review-gate`, `--review-replies`, `--handoff-json`, the Markdown runbook, or saved mission bundles when detailed handoff/review policy text is needed. `missionControl.handoff.reviewGate`, `--handoff-json`, and saved `handoff.json` carry that same gate for transfer-only flows. The handoff prompt starts with `missionControl.resume.prompt`, so it carries the current cursor, runnable command or blocked input instruction, labeled unlocks or blockers, done criteria, ready proof, review stop condition, and reviewer replies in one copyable sentence; `projscan start --handoff-prompt --intent "<goal>"` prints only that prompt for piping or copy/paste, and the Markdown runbook renders it as `## Handoff Prompt` so copied runbooks carry the same next-agent prompt. When a human just needs the runnable shell step, `projscan start --next-command --intent "<goal>"` prints only the current cursor command; when an MCP agent needs the callable equivalent, `projscan start --next-tool-call --intent "<goal>"` prints the current cursor tool call as compact JSON. Cite `missionControl.proofSummary` plus the runnable-only `missionControl.proofCommands` in broad handoff notes, and use `missionControl.handoff.readyProof.items` when resuming because it is the complete ordered remaining-proof queue; each item carries its CLI command and an optional MCP `toolCall`. `missionControl.handoff.readyProof.commands` and `toolCalls` remain convenient command-only and MCP-callable views. If the repo has `AGENTLOOP.md` or `agentloop.config.json`, start adds `npm exec agentloop -- status` to the coordination/proof queue; if `.agentflight/config.json` exists, it adds `npm exec agentflight -- verify`. These harness commands are emitted for agents, scripts, saved mission bundles, and `--proof-commands`; start reports them but does not execute them. MCP agents should use `missionControl.resume.toolCall` when present, use `missionControl.resume.inputBindings` to map unlocked placeholders to input steps, then call `missionControl.resume.followUps` as the next template calls; when they need one ordered sequence, follow `missionControl.resume.checklist`, whose `run_proof` rows include `tool` and `args` for MCP-callable proof steps. The normal console `Resume Checklist` and Markdown runbook checklist print callable rows inline as `(MCP: ...)` and mark unmapped proof rows as `(CLI only)`, so a copied runbook or default terminal run remains self-contained even outside the JSON payload. After the current action, prefer `missionControl.resume.remainingProofItems` for complete proof, using `remainingProofToolCalls` for the callable MCP subset without rerunning the current command. Humans can run the matching `command`; the normal console `Ready Proof` command list, normal console `Proof Queue`, and runbook `Proof queue` all use remaining proof so the current cursor command is not repeated, and each queued item shows either its MCP call or `CLI only`. Use `projscan_understand` and `projscan_preflight` when you need broader context or a safety gate. Use `projscan_workplan` when you need an ordered execution plan, `projscan_agent_brief` for a compact handoff, and `projscan_evidence_pack --pr-comment` when you need reviewer-facing proof. Deeper tools such as `doctor`, `hotspots`, `dataflow`, `review`, `bug-hunt`, `quality-scorecard`, `dogfood`, and `trial` are follow-up tools.
213
251
 
214
252
  For shortcut discovery, `projscan start --shortcuts --intent "<goal>"` prints the copyable command menu for the current mission, and `projscan start --shortcuts-json --intent "<goal>"` prints the same menu as JSON for agents and scripts. For shell copy/paste, `projscan start --mission-script --intent "<goal>"` prints a POSIX script that runs the current cursor command, then the remaining proof queue, then prints the review evidence commands. For MCP queue copy/paste, `projscan start --ready-tool-calls --intent "<goal>"` prints the current cursor call followed by remaining MCP-callable proof as compact JSON. For structured resume handoff, `projscan start --resume-json --intent "<goal>"` prints only `missionControl.resume`. For the complete transfer object, `projscan start --handoff-json --intent "<goal>"` prints only `missionControl.handoff`. For a file bundle, `projscan start --save-mission .projscan/mission --intent "<goal>"` writes `README.md`, `next-command.txt`, `next-tool-call.json`, `handoff-prompt.txt`, `resume-prompt.txt`, `task-card.md`, `review-gate.md`, `review-gate.json`, `review-policy.json`, `review-replies.txt`, the runbook, handoff JSON, resume JSON, `ready-tool-calls.json`, `shortcuts.json`, `mission.sh`, `status.sh`, `proof-logs/README.md`, `proof-logs/status.jsonl`, `proof-logs/run-report.md`, `proof-logs/summary.json`, proof commands, and manifest. Saved `mission.sh` writes current-command and proof-command output under `proof-logs/`, appends exit-code rows to `status.jsonl`, refreshes `run-report.md`, and writes `summary.json`, so reviewers and wrappers can scan pass/fail proof before opening raw logs. Bundle `status.sh` reads `summary.json` and uses exit codes `0`, `1`, and `2` for passed, failed, and not-ready states. For verification-only copy/paste, `projscan start --proof-commands --intent "<goal>"` prints the remaining ready proof commands one per line without the rest of the start report. For an ordered checklist without the full report, `projscan start --checklist --intent "<goal>"` prints only the resume checklist rows. For paste-ready PR, issue, or handoff notes, `projscan start --task-card --intent "<goal>"` prints the Markdown task card. MCP agents can read `missionControl.taskCard.markdown` when they need the same checklist without rendering it from `resume.checklist`. For stop-and-review notes, `projscan start --review-gate --intent "<goal>"` prints only `missionControl.reviewGate.markdown`, `projscan start --review-gate-json --intent "<goal>"` prints only the review gate JSON, `projscan start --review-policy --intent "<goal>"` prints only the review policy JSON, and `projscan start --review-replies --intent "<goal>"` prints only the copyable reviewer replies. For a full Markdown artifact, `projscan start --runbook --intent "<goal>"` prints the mission runbook. For post-run proof, `projscan mission-proof --mission .projscan/mission --format markdown` prints a paste-ready evidence report, while `--format json` keeps the same data machine-readable. Add `--list` to show saved mission bundles, status, update time, totals, and copyable resume/proof commands before choosing a target; add `--needs-attention` or `--mission-status failed` to focus that list. Add `--latest` to select the saved mission bundle with the newest `proof-logs/summary.json`. Add `--all` to include `.projscan/mission` and direct child bundles under `.projscan/missions/`. Add `--summary` when logs need one pass/fail line. Add `--require-passed` when a local script should fail unless every selected bundle passed. Add `--write reports/mission-proof.md` or `--write reports/mission-proof.json` when a reviewer, CI job, or next agent needs a saved local artifact. Run `projscan mission-proof --init-baseline manual-runs.json` before manual comparison if the team has not created the baseline file yet; use `--add-baseline-run manual-runs.json --id manual-1 --status passed --minutes-spent 25` to append measured manual runs without editing JSON. Run `--check-baseline manual-runs.json` before comparison when you want to validate the file without scanning mission bundles. Add `--format json` to baseline init, append, or check commands when a wrapper needs the written path, run count, added run, or totals. Baseline run IDs must be non-empty and unique; statuses must be `passed`, `failed`, `running`, `not_run`, or `unknown`; metric fields must be non-negative numbers.
215
253
 
@@ -436,11 +474,11 @@ and a sink wrapper is surfaced even when legacy taint reachability cannot see a
436
474
  downstream call path from source to sink. By default, dataflow suppresses test-file paths,
437
475
  broad readFile/writeFile-style noise, and JavaScript RegExp.exec false positives.
438
476
  Framework request-source detection covers narrow tested patterns for Next.js, Remix,
439
- SvelteKit, Hono, Express, Fastify, and Koa handlers, including SvelteKit
440
- `RequestEvent` request/body/url/params/cookies evidence, Hono validator output,
441
- Express/Fastify/Koa request IP metadata, Fastify host/hostname and raw
442
- URL/header evidence, and Express/Koa header accessors plus Express
443
- `req.param(...)` and `req.originalUrl`, while
477
+ SvelteKit, Astro, Hono, Express, Fastify, and Koa handlers, including SvelteKit
478
+ `RequestEvent` request/body/url/params/cookies evidence, Astro endpoint
479
+ request/params evidence, Hono validator output, Express/Fastify/Koa request IP
480
+ metadata, Fastify host/hostname and raw URL/header evidence, and Express/Koa
481
+ header accessors plus Express `req.param(...)` and `req.originalUrl`, while
444
482
  keeping lookalike helpers quiet.
445
483
 
446
484
  For release hardening, `npm run check:graph-corpus` compares bundled fixture metrics against `docs/graph-corpus-baseline.json`. The gate fails only when graph coverage drops below the baseline or dataflow risks rise above it.
@@ -894,6 +932,7 @@ Machine-readable output. Useful for piping into other tools, storing results, or
894
932
  projscan analyze --format json | jq '.issues[] | select(.severity == "error")'
895
933
  projscan analyze --format json > analysis.json
896
934
  projscan analyze --report-scope src/api --redact-paths --format json > scoped-analysis.json
935
+ projscan analyze --report-scope "src/api,packages/backend" --redact-paths --format json > scoped-analysis.json
897
936
  projscan analyze --report-policy apiEvidence --format json > scoped-analysis.json
898
937
  ```
899
938
 
package/docs/ROADMAP.md CHANGED
@@ -1,14 +1,16 @@
1
1
  # ProjScan Roadmap
2
2
 
3
- Last reviewed 2026-06-17.
3
+ Last reviewed 2026-06-18.
4
4
 
5
5
  ---
6
6
 
7
7
  ## Vision
8
8
 
9
- **The shared code-intelligence substrate that AI coding agents stand on.**
9
+ **Local code evidence for repeatable engineering workflows.**
10
10
 
11
- Every agent Claude Code, Cursor, Codex, Continue, custom orchestrations needs the same things from the codebase it's editing: structural awareness, change-impact analysis, health signals, fix guidance. None of them want to build that themselves. projscan is the open, offline, agent-native MCP server that gives every agent the same accurate view, so they can spend their context and inference budget on the actual reasoning, not on grepping the repo.
11
+ projscan is useful when engineers can repeat three daily workflows with local proof: before editing, before handoff or commit, and before release-candidate review.
12
+
13
+ The CLI and MCP server support those workflows with cited repo context, change-impact analysis, health signals, coordination evidence, and reviewer-facing proof commands. Broader capabilities only matter when they make one of those workflows quieter, more accurate, or easier to review.
12
14
 
13
15
  ## Stable since 1.0
14
16
 
@@ -16,15 +18,15 @@ projscan 1.0 shipped 2026-05-04. The stability contract is in force: MCP tool na
16
18
 
17
19
  ## Strategic context
18
20
 
19
- Three forces define the next 12 months for projscan:
21
+ Three practical forces define the next 12 months for projscan:
20
22
 
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.
23
+ 1. **MCP adoption raises the quality bar.** Agents and editors can call local tools, but teams still trust outputs only when commands are specific, repeatable, and easy to verify.
24
+ 2. **Parallel agent work creates coordination risk.** Separate worktrees and context windows need local evidence for collisions, claims, merge order, and handoff boundaries before integration.
25
+ 3. **Context still has a cost.** Agents that retrieve narrow, cited code evidence leave more room for reasoning. `max_tokens` response shaping, cursor pagination, and per-function chunking are valuable only when they reduce review noise.
24
26
 
25
27
  ## The competitive picture
26
28
 
27
- | Tool | Position | What they do well | What we beat them on |
29
+ | Tool | Position | What they do well | Current projscan edge to validate |
28
30
  | -------------------------- | ---------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
29
31
  | **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
32
  | **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. |
@@ -34,15 +36,15 @@ Three forces define the next 12 months for projscan:
34
36
 
35
37
  **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
38
 
37
- **Where we lead:** breadth (11 languages), agent-native composition (one-call review, fix-suggest, impact), monorepo support, the 1.0 stability contract, and a cleaner agent-journey product story (diagnose review fix reach → live).
39
+ **Where projscan appears useful today:** breadth (11 languages), agent-native composition (one-call review, fix-suggest, impact), monorepo support, the 1.0 stability contract, and the three daily workflows this roadmap now treats as the proof path.
38
40
 
39
41
  ## Strategy
40
42
 
41
43
  Four plays, in order:
42
44
 
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.11.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).
45
- 3. **Become the operator, not the advisor** — stop suggesting and start acting (cross-repo, apply, security gate). ✅ Shipped in the 1.6 arc.
45
+ 1. **Defend the useful basics** — close the obvious gaps so the first local run gives cited context, not setup friction. ✅ Largely complete (1.1-1.3).
46
+ 2. **Make multi-agent work reviewable** — keep collisions, claims, merge order, and handoffs visible when several agents touch one repo. ✅ Largely shipped (1.4 Session, 1.5 Budgeted by default + Project Memory).
47
+ 3. **Turn advice into bounded local actions** — keep automated fixes, cross-repo reads, and security gates explicit, reversible, and reviewable. ✅ Shipped in the 1.6 arc.
46
48
  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
49
  5. **Coordinate the swarm** — collision detection, claims/leases, merge-risk preflight, intent routing, one-call coordination, and live coordinate watch shipped across the 3.6 through 3.7 arc, with the 4.0 tool-surface consolidation now complete. The next work is evidence: prove which commands agents reach for in real multi-worktree sessions, then deepen only the paths that prevent integration failures.
48
50
  6. **Make agent proof release-ready** — 4.1 through 4.6 turned Mission Control into a goal → mission → proof → review harness and packaged the post-4.4 implementation train: current planning surfaces, adoption examples, precise framework dataflow, scoped/redacted evidence exports, Python upgrade previews, coordination evidence, public graph types, and hotspot maintainability cleanup.
@@ -56,21 +58,44 @@ We are _not_ trying to be:
56
58
 
57
59
  ## Now / Next / Later
58
60
 
59
- ### Now — Post-4.6 Validation
61
+ ### Now — Post-4.8 Validation
62
+
63
+ 4.8.0 "Agent Research And Release Hardening" packages the latest post-4.7 validation train. The next work is validation and selective hardening from real use, not another broad feature push or another release push.
60
64
 
61
- 4.6.0 "Agent Coordination And Routing Hardening" packages the latest post-4.4 implementation train. The next work is validation and selective hardening from real use, not another broad feature push or another release push.
65
+ The next work is validation from real PRs and multi-agent sessions, not broader positioning.
62
66
 
63
67
  The active validation lines are:
64
68
 
65
69
  - **Swarm coordination evidence.** Validate how real agents use `collisions`, `claim`, `merge-risk`, `coordinate`, and `coordinate --watch`; deepen only the coordination paths that prevent integration failures.
66
70
  - **Evidence export adoption.** Prove scoped/redacted report controls work for partner, security, and release-review handoffs without leaking unnecessary repo structure.
67
71
  - **Python upgrade coverage.** Extend lockfile support only after Poetry and pinned-requirement evidence prove useful in real repos.
68
- - **Framework dataflow precision.** Add more framework patterns only when each has a narrow request source, sink, and false-positive fixture; current validation includes Remix route data and SvelteKit `RequestEvent` coverage.
72
+ - **Framework dataflow precision.** Add more framework patterns only when each has a narrow request source, sink, and false-positive fixture; current validation includes Remix route data, SvelteKit `RequestEvent` coverage, and Astro endpoint request/params evidence.
69
73
  - **Hotspot maintainability.** Continue extracting and covering high-churn start/review/type surfaces when they show concrete review or defect risk.
70
74
 
71
75
  Strictly **local-first** throughout: same-repo / same-machine evidence, no daemon, no cloud, no hidden network calls, no new telemetry, and no secret-value reads.
72
76
 
73
- Success signals: teams copy the adoption examples into real reviews, scoped/redacted artifacts are accepted by reviewers, Python upgrade previews identify useful local evidence, coordination evidence explains multi-agent decisions, dataflow additions stay quiet on lookalikes, and release bug-hunts remain free of concrete defects.
77
+ Success signals: teams copy the adoption examples into real reviews, scoped/redacted artifacts are accepted by reviewers, Python upgrade previews identify useful local evidence, coordination evidence explains multi-agent decisions, dataflow additions stay quiet on lookalikes, no-release continuation prompts stay in bounded workplans, and release bug-hunts remain free of concrete defects.
78
+
79
+ ### Recently Completed — 4.8.0 (2026)
80
+
81
+ **4.8.0 "Agent Research And Release Hardening"** turned the post-4.7 agent-research loop into release-ready hardening:
82
+
83
+ - SvelteKit `RequestEvent` handlers, server `load`, and hooks are covered by framework-gated request-source fixtures.
84
+ - No-release continuation prompts route to bounded workplans while release, publish, deploy, push, merge, and version-bump actions stay blocked.
85
+ - Scoped evidence prompts infer useful directory scopes such as `tests` and produce local analyze/doctor/CI commands.
86
+ - Agent briefs carry clearer merge-order hints and preflight coordination proof paths for parallel-agent handoffs.
87
+ - Python upgrade evidence handles numeric-looking package names, Poetry source lines, nested requirements, and nested constraints more reliably.
88
+ - Mission Control route criteria, public start types, plugin loading, telemetry helpers, preflight/report assembly, code graph indexing, and HTML reporters were split into focused modules.
89
+
90
+ ### Recently Completed — 4.7.0 (2026)
91
+
92
+ **4.7.0 "Roadmap Validation And Release Readiness"** deepened the validation train after 4.6:
93
+
94
+ - Remix route request-source coverage detects `request` body readers, headers, URL, signal, and params with framework-gated false-positive fixtures.
95
+ - Python requirements include traversal follows local `-r` requirement files and `-c` constraint files for offline upgrade previews.
96
+ - Release-train roadmap routing and read-only roadmap preview evidence support build-next product-planning prompts.
97
+ - Dataflow traversal, plugin manifest validation, file inspection, fix-suggest previews, search indexing, release evidence, and bug-hunt helpers moved into smaller modules.
98
+ - Python lockfile, framework dataflow, intent router, preflight, MCP, and start tests were split into focused suites with architecture guards.
74
99
 
75
100
  ### Recently Completed — 4.6.0 (2026)
76
101
 
@@ -427,7 +427,7 @@
427
427
  <div class="intro">
428
428
  <div>
429
429
  <p class="eyebrow">Mission Outcome Loop</p>
430
- <h1>Resume from real proof.</h1>
430
+ <h1>Resume from saved proof.</h1>
431
431
  <p class="lead">
432
432
  projscan routes a developer goal, saves the mission, reads the proof state, and tells
433
433
  the next agent what changed, what remains, and whether the work is ready for version
@@ -548,7 +548,7 @@
548
548
  <div class="proof-header">
549
549
  <div>
550
550
  <p class="eyebrow">Proof, review, and adoption evidence</p>
551
- <h2>Close the loop.</h2>
551
+ <h2>Check proof before release.</h2>
552
552
  </div>
553
553
  <p>
554
554
  Developers and agents can resume from a saved mission bundle, summarize pass/fail
@@ -577,9 +577,9 @@
577
577
  <span class="line term-heading">{"passed":1,"failed":0,</span>
578
578
  <span class="line success">&nbsp;"reruns":0,"reviewerApprovals":1}</span>
579
579
  <span class="line">&nbsp;</span>
580
- <span class="line term-heading">Risk avoided</span>
580
+ <span class="line term-heading">Review signal</span>
581
581
  <span class="line success">- proof gate passed before release</span>
582
- <span class="line success">- version review is safe to request</span>
582
+ <span class="line success">- request version review next</span>
583
583
  <span class="line notice">Next: projscan start --mission .projscan/mission</span>
584
584
  </div>
585
585
  </section>
@@ -5,6 +5,46 @@ habit. They are written around the personas in `docs/PERSONAS.md`: skeptical
5
5
  senior reviewer, platform lead, product engineer, release owner, and security
6
6
  reviewer.
7
7
 
8
+ ## Daily workflows engineers can trust
9
+
10
+ Start with the workflows below before adding team policy, plugin, or rollout
11
+ machinery.
12
+
13
+ ### Before editing a feature
14
+
15
+ ```bash
16
+ projscan start --intent "what files do I need to change for auth?"
17
+ projscan understand --view change --intent "add auth token refresh" --format json
18
+ projscan preflight --mode before_edit --format json
19
+ ```
20
+
21
+ Success criteria: the product engineer and agent agree on likely touched files,
22
+ read-first context, and before-edit risk before code changes begin.
23
+
24
+ ### Before handoff or commit
25
+
26
+ ```bash
27
+ projscan bug-hunt --format json
28
+ projscan preflight --mode before_commit --format json
29
+ projscan evidence-pack --pr-comment
30
+ ```
31
+
32
+ Success criteria: the senior reviewer sees concrete defects, manual review
33
+ gates, owner routing, and proof commands without reading the whole agent
34
+ transcript.
35
+
36
+ ### Before release-candidate review
37
+
38
+ ```bash
39
+ projscan release-train --format json
40
+ projscan preflight --mode before_merge --format json
41
+ projscan evidence-pack --pr-comment
42
+ ```
43
+
44
+ Success criteria: the release owner gets read-only readiness evidence and a
45
+ specific next action for `caution`, including manual sign-off when the signal is
46
+ release scale rather than a concrete defect.
47
+
8
48
  ## 1. Agent Orchestration
9
49
 
10
50
  Use this when a team is standardizing how agents start work, prove changes, and
@@ -104,8 +144,16 @@ projscan start --intent "share redacted evidence for src/api with a partner" --f
104
144
  The routed start output returns the three artifact commands below as ready
105
145
  actions, using the requested scope when one is present in the intent.
106
146
 
147
+ For a partner review that spans more than one area, name both scopes in the
148
+ intent:
149
+
150
+ ```bash
151
+ projscan start --intent "share redacted evidence for src/api and packages/backend with a partner" --format json
152
+ ```
153
+
107
154
  ```bash
108
155
  projscan analyze --report-scope src/api --redact-paths --format json > reports/api-analysis.json
156
+ projscan analyze --report-scope "src/api,packages/backend" --redact-paths --format json > reports/api-backend-analysis.json
109
157
  projscan doctor --report-scope src/api --redact-paths --format markdown > reports/api-health.md
110
158
  projscan ci --report-scope src/api --redact-paths --format sarif > reports/api.sarif
111
159
  ```
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "projscan",
3
3
  "mcpName": "io.github.abhiyoheswaran1/projscan",
4
- "version": "4.8.0",
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.",
4
+ "version": "4.9.2",
5
+ "description": "Local code intelligence for agent-assisted engineering. Focused daily workflows for repo orientation before edits, proof before handoff or commit, and release-candidate review, with AST-backed evidence through an MCP server and CLI. Runs locally by default.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
9
9
  "bin": {
10
- "projscan": "./dist/cli/index.js"
10
+ "projscan": "dist/cli/index.js"
11
11
  },
12
12
  "files": [
13
13
  "dist",
@@ -60,7 +60,7 @@
60
60
  "release:check": "node scripts/release-check.mjs",
61
61
  "security:release-gate": "node scripts/release-gate.mjs",
62
62
  "sbom:generate": "node scripts/generate-sbom.mjs",
63
- "prepare": "npm run build",
63
+ "prepack": "npm run build",
64
64
  "check:graph-corpus": "node scripts/check-graph-corpus.mjs",
65
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"
66
66
  },
@@ -85,7 +85,7 @@
85
85
  "license": "MIT",
86
86
  "repository": {
87
87
  "type": "git",
88
- "url": "https://github.com/abhiyoheswaran1/projscan.git"
88
+ "url": "git+https://github.com/abhiyoheswaran1/projscan.git"
89
89
  },
90
90
  "homepage": "https://github.com/abhiyoheswaran1/projscan#readme",
91
91
  "bugs": {
@@ -101,13 +101,6 @@
101
101
  "commander": "^12.1.0",
102
102
  "fast-glob": "^3.3.2",
103
103
  "ora": "^8.1.0",
104
- "tree-sitter-c-sharp": "^0.23.5",
105
- "tree-sitter-go": "^0.25.0",
106
- "tree-sitter-java": "^0.23.5",
107
- "tree-sitter-php": "^0.23.12",
108
- "tree-sitter-python": "^0.25.0",
109
- "tree-sitter-ruby": "^0.23.1",
110
- "tree-sitter-rust": "^0.23.3",
111
104
  "web-tree-sitter": "^0.26.8"
112
105
  },
113
106
  "peerDependencies": {
@@ -127,8 +120,15 @@
127
120
  "eslint": "^10.0.3",
128
121
  "prettier": "^3.8.4",
129
122
  "tree-sitter-cli": "^0.26.8",
123
+ "tree-sitter-c-sharp": "^0.23.5",
130
124
  "tree-sitter-cpp": "^0.23.4",
125
+ "tree-sitter-go": "^0.25.0",
126
+ "tree-sitter-java": "^0.23.5",
131
127
  "tree-sitter-kotlin": "^0.3.8",
128
+ "tree-sitter-php": "^0.23.12",
129
+ "tree-sitter-python": "^0.25.0",
130
+ "tree-sitter-ruby": "^0.23.1",
131
+ "tree-sitter-rust": "^0.23.3",
132
132
  "tree-sitter-swift": "^0.7.1",
133
133
  "typescript": "^5.6.0",
134
134
  "typescript-eslint": "^8.57.0",