@tyroneross/navgator 0.2.2 → 0.9.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 (692) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +21 -7
  3. package/.claude-plugin/plugin.json +16 -11
  4. package/.codex-plugin/plugin.json +31 -0
  5. package/.mcp.json +8 -0
  6. package/CLAUDE.md +197 -23
  7. package/LICENSE +202 -21
  8. package/README.md +220 -33
  9. package/agents/architecture-advisor.md +6 -2
  10. package/agents/architecture-investigator.md +163 -0
  11. package/agents/architecture-planner.md +160 -0
  12. package/agents/external-resolver.md +97 -0
  13. package/dist/__tests__/agent-output.test.d.ts +5 -0
  14. package/dist/__tests__/agent-output.test.d.ts.map +1 -0
  15. package/dist/__tests__/agent-output.test.js +233 -0
  16. package/dist/__tests__/agent-output.test.js.map +1 -0
  17. package/dist/__tests__/architecture-insights-stack.test.d.ts +21 -0
  18. package/dist/__tests__/architecture-insights-stack.test.d.ts.map +1 -0
  19. package/dist/__tests__/architecture-insights-stack.test.js +86 -0
  20. package/dist/__tests__/architecture-insights-stack.test.js.map +1 -0
  21. package/dist/__tests__/architecture-insights.test.d.ts +2 -0
  22. package/dist/__tests__/architecture-insights.test.d.ts.map +1 -0
  23. package/dist/__tests__/architecture-insights.test.js +46 -0
  24. package/dist/__tests__/architecture-insights.test.js.map +1 -0
  25. package/dist/__tests__/audit-sampler.test.d.ts +10 -0
  26. package/dist/__tests__/audit-sampler.test.d.ts.map +1 -0
  27. package/dist/__tests__/audit-sampler.test.js +172 -0
  28. package/dist/__tests__/audit-sampler.test.js.map +1 -0
  29. package/dist/__tests__/audit-spc.test.d.ts +5 -0
  30. package/dist/__tests__/audit-spc.test.d.ts.map +1 -0
  31. package/dist/__tests__/audit-spc.test.js +94 -0
  32. package/dist/__tests__/audit-spc.test.js.map +1 -0
  33. package/dist/__tests__/audit-verifiers.test.d.ts +5 -0
  34. package/dist/__tests__/audit-verifiers.test.d.ts.map +1 -0
  35. package/dist/__tests__/audit-verifiers.test.js +248 -0
  36. package/dist/__tests__/audit-verifiers.test.js.map +1 -0
  37. package/dist/__tests__/auto-refresh.test.d.ts +12 -0
  38. package/dist/__tests__/auto-refresh.test.d.ts.map +1 -0
  39. package/dist/__tests__/auto-refresh.test.js +236 -0
  40. package/dist/__tests__/auto-refresh.test.js.map +1 -0
  41. package/dist/__tests__/bare-imports.test.d.ts +8 -0
  42. package/dist/__tests__/bare-imports.test.d.ts.map +1 -0
  43. package/dist/__tests__/bare-imports.test.js +176 -0
  44. package/dist/__tests__/bare-imports.test.js.map +1 -0
  45. package/dist/__tests__/classify.test.d.ts +5 -0
  46. package/dist/__tests__/classify.test.d.ts.map +1 -0
  47. package/dist/__tests__/classify.test.js +158 -0
  48. package/dist/__tests__/classify.test.js.map +1 -0
  49. package/dist/__tests__/cli-commands.test.d.ts +8 -0
  50. package/dist/__tests__/cli-commands.test.d.ts.map +1 -0
  51. package/dist/__tests__/cli-commands.test.js +207 -0
  52. package/dist/__tests__/cli-commands.test.js.map +1 -0
  53. package/dist/__tests__/consolidated-readers.test.d.ts +23 -0
  54. package/dist/__tests__/consolidated-readers.test.d.ts.map +1 -0
  55. package/dist/__tests__/consolidated-readers.test.js +200 -0
  56. package/dist/__tests__/consolidated-readers.test.js.map +1 -0
  57. package/dist/__tests__/coverage.test.d.ts +5 -0
  58. package/dist/__tests__/coverage.test.d.ts.map +1 -0
  59. package/dist/__tests__/coverage.test.js +120 -0
  60. package/dist/__tests__/coverage.test.js.map +1 -0
  61. package/dist/__tests__/deploy-scanner-runtime.test.d.ts +6 -0
  62. package/dist/__tests__/deploy-scanner-runtime.test.d.ts.map +1 -0
  63. package/dist/__tests__/deploy-scanner-runtime.test.js +168 -0
  64. package/dist/__tests__/deploy-scanner-runtime.test.js.map +1 -0
  65. package/dist/__tests__/env-scanner.test.d.ts +2 -0
  66. package/dist/__tests__/env-scanner.test.d.ts.map +1 -0
  67. package/dist/__tests__/env-scanner.test.js +191 -0
  68. package/dist/__tests__/env-scanner.test.js.map +1 -0
  69. package/dist/__tests__/freshness/cli-freshness.test.d.ts +2 -0
  70. package/dist/__tests__/freshness/cli-freshness.test.d.ts.map +1 -0
  71. package/dist/__tests__/freshness/cli-freshness.test.js +26 -0
  72. package/dist/__tests__/freshness/cli-freshness.test.js.map +1 -0
  73. package/dist/__tests__/freshness/dirty-ledger.test.d.ts +2 -0
  74. package/dist/__tests__/freshness/dirty-ledger.test.d.ts.map +1 -0
  75. package/dist/__tests__/freshness/dirty-ledger.test.js +39 -0
  76. package/dist/__tests__/freshness/dirty-ledger.test.js.map +1 -0
  77. package/dist/__tests__/freshness/drainer.test.d.ts +2 -0
  78. package/dist/__tests__/freshness/drainer.test.d.ts.map +1 -0
  79. package/dist/__tests__/freshness/drainer.test.js +103 -0
  80. package/dist/__tests__/freshness/drainer.test.js.map +1 -0
  81. package/dist/__tests__/freshness/paths.test.d.ts +2 -0
  82. package/dist/__tests__/freshness/paths.test.d.ts.map +1 -0
  83. package/dist/__tests__/freshness/paths.test.js +19 -0
  84. package/dist/__tests__/freshness/paths.test.js.map +1 -0
  85. package/dist/__tests__/freshness/scan-lock.test.d.ts +2 -0
  86. package/dist/__tests__/freshness/scan-lock.test.d.ts.map +1 -0
  87. package/dist/__tests__/freshness/scan-lock.test.js +40 -0
  88. package/dist/__tests__/freshness/scan-lock.test.js.map +1 -0
  89. package/dist/__tests__/freshness/stamp.test.d.ts +2 -0
  90. package/dist/__tests__/freshness/stamp.test.d.ts.map +1 -0
  91. package/dist/__tests__/freshness/stamp.test.js +36 -0
  92. package/dist/__tests__/freshness/stamp.test.js.map +1 -0
  93. package/dist/__tests__/gitignore-safety.test.d.ts +2 -0
  94. package/dist/__tests__/gitignore-safety.test.d.ts.map +1 -0
  95. package/dist/__tests__/gitignore-safety.test.js +110 -0
  96. package/dist/__tests__/gitignore-safety.test.js.map +1 -0
  97. package/dist/__tests__/helpers.d.ts +37 -0
  98. package/dist/__tests__/helpers.d.ts.map +1 -0
  99. package/dist/__tests__/helpers.js +134 -0
  100. package/dist/__tests__/helpers.js.map +1 -0
  101. package/dist/__tests__/impact.test.d.ts +5 -0
  102. package/dist/__tests__/impact.test.d.ts.map +1 -0
  103. package/dist/__tests__/impact.test.js +221 -0
  104. package/dist/__tests__/impact.test.js.map +1 -0
  105. package/dist/__tests__/lessons-store.test.d.ts +8 -0
  106. package/dist/__tests__/lessons-store.test.d.ts.map +1 -0
  107. package/dist/__tests__/lessons-store.test.js +232 -0
  108. package/dist/__tests__/lessons-store.test.js.map +1 -0
  109. package/dist/__tests__/llm-dedup.test.d.ts +2 -0
  110. package/dist/__tests__/llm-dedup.test.d.ts.map +1 -0
  111. package/dist/__tests__/llm-dedup.test.js +155 -0
  112. package/dist/__tests__/llm-dedup.test.js.map +1 -0
  113. package/dist/__tests__/mjs-frontend-fetch.test.d.ts +19 -0
  114. package/dist/__tests__/mjs-frontend-fetch.test.d.ts.map +1 -0
  115. package/dist/__tests__/mjs-frontend-fetch.test.js +179 -0
  116. package/dist/__tests__/mjs-frontend-fetch.test.js.map +1 -0
  117. package/dist/__tests__/multi-stack-discovery.test.d.ts +11 -0
  118. package/dist/__tests__/multi-stack-discovery.test.d.ts.map +1 -0
  119. package/dist/__tests__/multi-stack-discovery.test.js +75 -0
  120. package/dist/__tests__/multi-stack-discovery.test.js.map +1 -0
  121. package/dist/__tests__/per-entity-files-gate.test.d.ts +22 -0
  122. package/dist/__tests__/per-entity-files-gate.test.d.ts.map +1 -0
  123. package/dist/__tests__/per-entity-files-gate.test.js +160 -0
  124. package/dist/__tests__/per-entity-files-gate.test.js.map +1 -0
  125. package/dist/__tests__/prisma-calls.test.d.ts +2 -0
  126. package/dist/__tests__/prisma-calls.test.d.ts.map +1 -0
  127. package/dist/__tests__/prisma-calls.test.js +125 -0
  128. package/dist/__tests__/prisma-calls.test.js.map +1 -0
  129. package/dist/__tests__/prisma-parser.test.d.ts +2 -0
  130. package/dist/__tests__/prisma-parser.test.d.ts.map +1 -0
  131. package/dist/__tests__/prisma-parser.test.js +252 -0
  132. package/dist/__tests__/prisma-parser.test.js.map +1 -0
  133. package/dist/__tests__/prompt-detector.test.d.ts +5 -0
  134. package/dist/__tests__/prompt-detector.test.d.ts.map +1 -0
  135. package/dist/__tests__/prompt-detector.test.js +75 -0
  136. package/dist/__tests__/prompt-detector.test.js.map +1 -0
  137. package/dist/__tests__/queue-scanner.test.d.ts +5 -0
  138. package/dist/__tests__/queue-scanner.test.d.ts.map +1 -0
  139. package/dist/__tests__/queue-scanner.test.js +85 -0
  140. package/dist/__tests__/queue-scanner.test.js.map +1 -0
  141. package/dist/__tests__/resolve.test.d.ts +5 -0
  142. package/dist/__tests__/resolve.test.d.ts.map +1 -0
  143. package/dist/__tests__/resolve.test.js +196 -0
  144. package/dist/__tests__/resolve.test.js.map +1 -0
  145. package/dist/__tests__/rules.test.d.ts +2 -0
  146. package/dist/__tests__/rules.test.d.ts.map +1 -0
  147. package/dist/__tests__/rules.test.js +343 -0
  148. package/dist/__tests__/rules.test.js.map +1 -0
  149. package/dist/__tests__/sandbox.test.d.ts +5 -0
  150. package/dist/__tests__/sandbox.test.d.ts.map +1 -0
  151. package/dist/__tests__/sandbox.test.js +189 -0
  152. package/dist/__tests__/sandbox.test.js.map +1 -0
  153. package/dist/__tests__/scanner-audit.test.d.ts +9 -0
  154. package/dist/__tests__/scanner-audit.test.d.ts.map +1 -0
  155. package/dist/__tests__/scanner-audit.test.js +64 -0
  156. package/dist/__tests__/scanner-audit.test.js.map +1 -0
  157. package/dist/__tests__/scanner-characterization.test.d.ts +16 -0
  158. package/dist/__tests__/scanner-characterization.test.d.ts.map +1 -0
  159. package/dist/__tests__/scanner-characterization.test.js +167 -0
  160. package/dist/__tests__/scanner-characterization.test.js.map +1 -0
  161. package/dist/__tests__/scanner-incremental.test.d.ts +13 -0
  162. package/dist/__tests__/scanner-incremental.test.d.ts.map +1 -0
  163. package/dist/__tests__/scanner-incremental.test.js +725 -0
  164. package/dist/__tests__/scanner-incremental.test.js.map +1 -0
  165. package/dist/__tests__/scanner-integration.test.d.ts +7 -0
  166. package/dist/__tests__/scanner-integration.test.d.ts.map +1 -0
  167. package/dist/__tests__/scanner-integration.test.js +211 -0
  168. package/dist/__tests__/scanner-integration.test.js.map +1 -0
  169. package/dist/__tests__/scip-new-catches.test.d.ts +19 -0
  170. package/dist/__tests__/scip-new-catches.test.d.ts.map +1 -0
  171. package/dist/__tests__/scip-new-catches.test.js +90 -0
  172. package/dist/__tests__/scip-new-catches.test.js.map +1 -0
  173. package/dist/__tests__/subgraph.test.d.ts +5 -0
  174. package/dist/__tests__/subgraph.test.d.ts.map +1 -0
  175. package/dist/__tests__/subgraph.test.js +145 -0
  176. package/dist/__tests__/subgraph.test.js.map +1 -0
  177. package/dist/__tests__/trace.test.d.ts +5 -0
  178. package/dist/__tests__/trace.test.d.ts.map +1 -0
  179. package/dist/__tests__/trace.test.js +221 -0
  180. package/dist/__tests__/trace.test.js.map +1 -0
  181. package/dist/agent-output.d.ts +16 -0
  182. package/dist/agent-output.d.ts.map +1 -0
  183. package/dist/agent-output.js +142 -0
  184. package/dist/agent-output.js.map +1 -0
  185. package/dist/architecture-insights.d.ts +17 -0
  186. package/dist/architecture-insights.d.ts.map +1 -0
  187. package/dist/architecture-insights.js +178 -0
  188. package/dist/architecture-insights.js.map +1 -0
  189. package/dist/audit/index.d.ts +69 -0
  190. package/dist/audit/index.d.ts.map +1 -0
  191. package/dist/audit/index.js +255 -0
  192. package/dist/audit/index.js.map +1 -0
  193. package/dist/audit/sampler.d.ts +98 -0
  194. package/dist/audit/sampler.d.ts.map +1 -0
  195. package/dist/audit/sampler.js +298 -0
  196. package/dist/audit/sampler.js.map +1 -0
  197. package/dist/audit/spc.d.ts +62 -0
  198. package/dist/audit/spc.d.ts.map +1 -0
  199. package/dist/audit/spc.js +81 -0
  200. package/dist/audit/spc.js.map +1 -0
  201. package/dist/audit/verifiers.d.ts +81 -0
  202. package/dist/audit/verifiers.d.ts.map +1 -0
  203. package/dist/audit/verifiers.js +366 -0
  204. package/dist/audit/verifiers.js.map +1 -0
  205. package/dist/classify.d.ts +19 -0
  206. package/dist/classify.d.ts.map +1 -0
  207. package/dist/classify.js +124 -0
  208. package/dist/classify.js.map +1 -0
  209. package/dist/cli/commands/connections.d.ts +3 -0
  210. package/dist/cli/commands/connections.d.ts.map +1 -0
  211. package/dist/cli/commands/connections.js +125 -0
  212. package/dist/cli/commands/connections.js.map +1 -0
  213. package/dist/cli/commands/coverage.d.ts +3 -0
  214. package/dist/cli/commands/coverage.d.ts.map +1 -0
  215. package/dist/cli/commands/coverage.js +94 -0
  216. package/dist/cli/commands/coverage.js.map +1 -0
  217. package/dist/cli/commands/dead.d.ts +3 -0
  218. package/dist/cli/commands/dead.d.ts.map +1 -0
  219. package/dist/cli/commands/dead.js +80 -0
  220. package/dist/cli/commands/dead.js.map +1 -0
  221. package/dist/cli/commands/diagram.d.ts +3 -0
  222. package/dist/cli/commands/diagram.d.ts.map +1 -0
  223. package/dist/cli/commands/diagram.js +102 -0
  224. package/dist/cli/commands/diagram.js.map +1 -0
  225. package/dist/cli/commands/find.d.ts +3 -0
  226. package/dist/cli/commands/find.d.ts.map +1 -0
  227. package/dist/cli/commands/find.js +128 -0
  228. package/dist/cli/commands/find.js.map +1 -0
  229. package/dist/cli/commands/freshness.d.ts +20 -0
  230. package/dist/cli/commands/freshness.d.ts.map +1 -0
  231. package/dist/cli/commands/freshness.js +90 -0
  232. package/dist/cli/commands/freshness.js.map +1 -0
  233. package/dist/cli/commands/helpers.d.ts +7 -0
  234. package/dist/cli/commands/helpers.d.ts.map +1 -0
  235. package/dist/cli/commands/helpers.js +30 -0
  236. package/dist/cli/commands/helpers.js.map +1 -0
  237. package/dist/cli/commands/impact.d.ts +3 -0
  238. package/dist/cli/commands/impact.d.ts.map +1 -0
  239. package/dist/cli/commands/impact.js +172 -0
  240. package/dist/cli/commands/impact.js.map +1 -0
  241. package/dist/cli/commands/lessons.d.ts +6 -0
  242. package/dist/cli/commands/lessons.d.ts.map +1 -0
  243. package/dist/cli/commands/lessons.js +279 -0
  244. package/dist/cli/commands/lessons.js.map +1 -0
  245. package/dist/cli/commands/list.d.ts +3 -0
  246. package/dist/cli/commands/list.d.ts.map +1 -0
  247. package/dist/cli/commands/list.js +91 -0
  248. package/dist/cli/commands/list.js.map +1 -0
  249. package/dist/cli/commands/llm-map.d.ts +3 -0
  250. package/dist/cli/commands/llm-map.d.ts.map +1 -0
  251. package/dist/cli/commands/llm-map.js +121 -0
  252. package/dist/cli/commands/llm-map.js.map +1 -0
  253. package/dist/cli/commands/misc.d.ts +17 -0
  254. package/dist/cli/commands/misc.d.ts.map +1 -0
  255. package/dist/cli/commands/misc.js +495 -0
  256. package/dist/cli/commands/misc.js.map +1 -0
  257. package/dist/cli/commands/prompts.d.ts +3 -0
  258. package/dist/cli/commands/prompts.d.ts.map +1 -0
  259. package/dist/cli/commands/prompts.js +74 -0
  260. package/dist/cli/commands/prompts.js.map +1 -0
  261. package/dist/cli/commands/rules.d.ts +3 -0
  262. package/dist/cli/commands/rules.d.ts.map +1 -0
  263. package/dist/cli/commands/rules.js +61 -0
  264. package/dist/cli/commands/rules.js.map +1 -0
  265. package/dist/cli/commands/scan.d.ts +3 -0
  266. package/dist/cli/commands/scan.d.ts.map +1 -0
  267. package/dist/cli/commands/scan.js +177 -0
  268. package/dist/cli/commands/scan.js.map +1 -0
  269. package/dist/cli/commands/schema.d.ts +3 -0
  270. package/dist/cli/commands/schema.d.ts.map +1 -0
  271. package/dist/cli/commands/schema.js +126 -0
  272. package/dist/cli/commands/schema.js.map +1 -0
  273. package/dist/cli/commands/status.d.ts +3 -0
  274. package/dist/cli/commands/status.d.ts.map +1 -0
  275. package/dist/cli/commands/status.js +340 -0
  276. package/dist/cli/commands/status.js.map +1 -0
  277. package/dist/cli/commands/subgraph.d.ts +3 -0
  278. package/dist/cli/commands/subgraph.d.ts.map +1 -0
  279. package/dist/cli/commands/subgraph.js +55 -0
  280. package/dist/cli/commands/subgraph.js.map +1 -0
  281. package/dist/cli/commands/temporal.d.ts +3 -0
  282. package/dist/cli/commands/temporal.d.ts.map +1 -0
  283. package/dist/cli/commands/temporal.js +112 -0
  284. package/dist/cli/commands/temporal.js.map +1 -0
  285. package/dist/cli/commands/trace.d.ts +3 -0
  286. package/dist/cli/commands/trace.d.ts.map +1 -0
  287. package/dist/cli/commands/trace.js +65 -0
  288. package/dist/cli/commands/trace.js.map +1 -0
  289. package/dist/cli/index.js +88 -825
  290. package/dist/cli/index.js.map +1 -1
  291. package/dist/config.d.ts +13 -2
  292. package/dist/config.d.ts.map +1 -1
  293. package/dist/config.js +106 -12
  294. package/dist/config.js.map +1 -1
  295. package/dist/coverage.d.ts +37 -0
  296. package/dist/coverage.d.ts.map +1 -0
  297. package/dist/coverage.js +177 -0
  298. package/dist/coverage.js.map +1 -0
  299. package/dist/diagram.d.ts.map +1 -1
  300. package/dist/diagram.js +41 -0
  301. package/dist/diagram.js.map +1 -1
  302. package/dist/diff.d.ts +57 -0
  303. package/dist/diff.d.ts.map +1 -0
  304. package/dist/diff.js +527 -0
  305. package/dist/diff.js.map +1 -0
  306. package/dist/enrich/cache.d.ts +41 -0
  307. package/dist/enrich/cache.d.ts.map +1 -0
  308. package/dist/enrich/cache.js +97 -0
  309. package/dist/enrich/cache.js.map +1 -0
  310. package/dist/enrich/external-enrichment.types.d.ts +91 -0
  311. package/dist/enrich/external-enrichment.types.d.ts.map +1 -0
  312. package/dist/enrich/external-enrichment.types.js +38 -0
  313. package/dist/enrich/external-enrichment.types.js.map +1 -0
  314. package/dist/enrich/external-resolver.d.ts +95 -0
  315. package/dist/enrich/external-resolver.d.ts.map +1 -0
  316. package/dist/enrich/external-resolver.js +222 -0
  317. package/dist/enrich/external-resolver.js.map +1 -0
  318. package/dist/enrich/fetchers.d.ts +30 -0
  319. package/dist/enrich/fetchers.d.ts.map +1 -0
  320. package/dist/enrich/fetchers.js +89 -0
  321. package/dist/enrich/fetchers.js.map +1 -0
  322. package/dist/file-resolve.d.ts +35 -0
  323. package/dist/file-resolve.d.ts.map +1 -0
  324. package/dist/file-resolve.js +159 -0
  325. package/dist/file-resolve.js.map +1 -0
  326. package/dist/freshness/dirty-ledger.d.ts +7 -0
  327. package/dist/freshness/dirty-ledger.d.ts.map +1 -0
  328. package/dist/freshness/dirty-ledger.js +56 -0
  329. package/dist/freshness/dirty-ledger.js.map +1 -0
  330. package/dist/freshness/drainer.d.ts +38 -0
  331. package/dist/freshness/drainer.d.ts.map +1 -0
  332. package/dist/freshness/drainer.js +88 -0
  333. package/dist/freshness/drainer.js.map +1 -0
  334. package/dist/freshness/paths.d.ts +9 -0
  335. package/dist/freshness/paths.d.ts.map +1 -0
  336. package/dist/freshness/paths.js +24 -0
  337. package/dist/freshness/paths.js.map +1 -0
  338. package/dist/freshness/scan-lock.d.ts +8 -0
  339. package/dist/freshness/scan-lock.d.ts.map +1 -0
  340. package/dist/freshness/scan-lock.js +68 -0
  341. package/dist/freshness/scan-lock.js.map +1 -0
  342. package/dist/freshness/stamp.d.ts +25 -0
  343. package/dist/freshness/stamp.d.ts.map +1 -0
  344. package/dist/freshness/stamp.js +50 -0
  345. package/dist/freshness/stamp.js.map +1 -0
  346. package/dist/git.d.ts +12 -0
  347. package/dist/git.d.ts.map +1 -0
  348. package/dist/git.js +42 -0
  349. package/dist/git.js.map +1 -0
  350. package/dist/gitignore-safety.d.ts +41 -0
  351. package/dist/gitignore-safety.d.ts.map +1 -0
  352. package/dist/gitignore-safety.js +107 -0
  353. package/dist/gitignore-safety.js.map +1 -0
  354. package/dist/impact.d.ts +20 -0
  355. package/dist/impact.d.ts.map +1 -0
  356. package/dist/impact.js +89 -0
  357. package/dist/impact.js.map +1 -0
  358. package/dist/index.d.ts +24 -2
  359. package/dist/index.d.ts.map +1 -1
  360. package/dist/index.js +31 -1
  361. package/dist/index.js.map +1 -1
  362. package/dist/lessons-store.d.ts +93 -0
  363. package/dist/lessons-store.d.ts.map +1 -0
  364. package/dist/lessons-store.js +265 -0
  365. package/dist/lessons-store.js.map +1 -0
  366. package/dist/llm-dedup.d.ts +40 -0
  367. package/dist/llm-dedup.d.ts.map +1 -0
  368. package/dist/llm-dedup.js +373 -0
  369. package/dist/llm-dedup.js.map +1 -0
  370. package/dist/mcp/server.d.ts +9 -0
  371. package/dist/mcp/server.d.ts.map +1 -0
  372. package/dist/mcp/server.js +87 -0
  373. package/dist/mcp/server.js.map +1 -0
  374. package/dist/mcp/tools.d.ts +198 -0
  375. package/dist/mcp/tools.d.ts.map +1 -0
  376. package/dist/mcp/tools.js +744 -0
  377. package/dist/mcp/tools.js.map +1 -0
  378. package/dist/metrics/pagerank-louvain.d.ts +44 -0
  379. package/dist/metrics/pagerank-louvain.d.ts.map +1 -0
  380. package/dist/metrics/pagerank-louvain.js +128 -0
  381. package/dist/metrics/pagerank-louvain.js.map +1 -0
  382. package/dist/parsers/scip-runner.d.ts +63 -0
  383. package/dist/parsers/scip-runner.d.ts.map +1 -0
  384. package/dist/parsers/scip-runner.js +179 -0
  385. package/dist/parsers/scip-runner.js.map +1 -0
  386. package/dist/projects.d.ts +54 -0
  387. package/dist/projects.d.ts.map +1 -0
  388. package/dist/projects.js +153 -0
  389. package/dist/projects.js.map +1 -0
  390. package/dist/resolve.d.ts +22 -0
  391. package/dist/resolve.d.ts.map +1 -0
  392. package/dist/resolve.js +128 -0
  393. package/dist/resolve.js.map +1 -0
  394. package/dist/rules.d.ts +36 -0
  395. package/dist/rules.d.ts.map +1 -0
  396. package/dist/rules.js +484 -0
  397. package/dist/rules.js.map +1 -0
  398. package/dist/sandbox.d.ts +33 -0
  399. package/dist/sandbox.d.ts.map +1 -0
  400. package/dist/sandbox.js +91 -0
  401. package/dist/sandbox.js.map +1 -0
  402. package/dist/scan-lock.d.ts +37 -0
  403. package/dist/scan-lock.d.ts.map +1 -0
  404. package/dist/scan-lock.js +145 -0
  405. package/dist/scan-lock.js.map +1 -0
  406. package/dist/scanner.d.ts +126 -1
  407. package/dist/scanner.d.ts.map +1 -1
  408. package/dist/scanner.js +1711 -235
  409. package/dist/scanner.js.map +1 -1
  410. package/dist/scanners/connections/ast-scanner.d.ts +9 -2
  411. package/dist/scanners/connections/ast-scanner.d.ts.map +1 -1
  412. package/dist/scanners/connections/ast-scanner.js +19 -4
  413. package/dist/scanners/connections/ast-scanner.js.map +1 -1
  414. package/dist/scanners/connections/import-scanner.d.ts +27 -0
  415. package/dist/scanners/connections/import-scanner.d.ts.map +1 -0
  416. package/dist/scanners/connections/import-scanner.js +537 -0
  417. package/dist/scanners/connections/import-scanner.js.map +1 -0
  418. package/dist/scanners/connections/llm-call-tracer.d.ts +1 -1
  419. package/dist/scanners/connections/llm-call-tracer.d.ts.map +1 -1
  420. package/dist/scanners/connections/llm-call-tracer.js +6 -2
  421. package/dist/scanners/connections/llm-call-tracer.js.map +1 -1
  422. package/dist/scanners/connections/prisma-calls.d.ts +11 -0
  423. package/dist/scanners/connections/prisma-calls.d.ts.map +1 -0
  424. package/dist/scanners/connections/prisma-calls.js +237 -0
  425. package/dist/scanners/connections/prisma-calls.js.map +1 -0
  426. package/dist/scanners/connections/service-calls.d.ts +1 -1
  427. package/dist/scanners/connections/service-calls.d.ts.map +1 -1
  428. package/dist/scanners/connections/service-calls.js +35 -3
  429. package/dist/scanners/connections/service-calls.js.map +1 -1
  430. package/dist/scanners/infrastructure/cron-scanner.d.ts +14 -0
  431. package/dist/scanners/infrastructure/cron-scanner.d.ts.map +1 -0
  432. package/dist/scanners/infrastructure/cron-scanner.js +383 -0
  433. package/dist/scanners/infrastructure/cron-scanner.js.map +1 -0
  434. package/dist/scanners/infrastructure/deploy-scanner.d.ts +11 -0
  435. package/dist/scanners/infrastructure/deploy-scanner.d.ts.map +1 -0
  436. package/dist/scanners/infrastructure/deploy-scanner.js +508 -0
  437. package/dist/scanners/infrastructure/deploy-scanner.js.map +1 -0
  438. package/dist/scanners/infrastructure/env-scanner.d.ts +55 -0
  439. package/dist/scanners/infrastructure/env-scanner.d.ts.map +1 -0
  440. package/dist/scanners/infrastructure/env-scanner.js +431 -0
  441. package/dist/scanners/infrastructure/env-scanner.js.map +1 -0
  442. package/dist/scanners/infrastructure/field-usage-analyzer.d.ts +52 -0
  443. package/dist/scanners/infrastructure/field-usage-analyzer.d.ts.map +1 -0
  444. package/dist/scanners/infrastructure/field-usage-analyzer.js +480 -0
  445. package/dist/scanners/infrastructure/field-usage-analyzer.js.map +1 -0
  446. package/dist/scanners/infrastructure/prisma-parser.d.ts +21 -0
  447. package/dist/scanners/infrastructure/prisma-parser.d.ts.map +1 -0
  448. package/dist/scanners/infrastructure/prisma-parser.js +58 -0
  449. package/dist/scanners/infrastructure/prisma-parser.js.map +1 -0
  450. package/dist/scanners/infrastructure/prisma-scanner.d.ts +30 -0
  451. package/dist/scanners/infrastructure/prisma-scanner.d.ts.map +1 -0
  452. package/dist/scanners/infrastructure/prisma-scanner.js +329 -0
  453. package/dist/scanners/infrastructure/prisma-scanner.js.map +1 -0
  454. package/dist/scanners/infrastructure/queue-scanner.d.ts +14 -0
  455. package/dist/scanners/infrastructure/queue-scanner.d.ts.map +1 -0
  456. package/dist/scanners/infrastructure/queue-scanner.js +455 -0
  457. package/dist/scanners/infrastructure/queue-scanner.js.map +1 -0
  458. package/dist/scanners/infrastructure/typespec-validator.d.ts +50 -0
  459. package/dist/scanners/infrastructure/typespec-validator.d.ts.map +1 -0
  460. package/dist/scanners/infrastructure/typespec-validator.js +407 -0
  461. package/dist/scanners/infrastructure/typespec-validator.js.map +1 -0
  462. package/dist/scanners/packages/swift.d.ts +5 -0
  463. package/dist/scanners/packages/swift.d.ts.map +1 -1
  464. package/dist/scanners/packages/swift.js +23 -0
  465. package/dist/scanners/packages/swift.js.map +1 -1
  466. package/dist/scanners/prompts/detector.d.ts +13 -2
  467. package/dist/scanners/prompts/detector.d.ts.map +1 -1
  468. package/dist/scanners/prompts/detector.js +97 -46
  469. package/dist/scanners/prompts/detector.js.map +1 -1
  470. package/dist/scanners/prompts/index.d.ts +1 -1
  471. package/dist/scanners/prompts/index.d.ts.map +1 -1
  472. package/dist/scanners/prompts/index.js +2 -2
  473. package/dist/scanners/prompts/index.js.map +1 -1
  474. package/dist/scanners/swift/code-scanner.d.ts +1 -1
  475. package/dist/scanners/swift/code-scanner.d.ts.map +1 -1
  476. package/dist/scanners/swift/code-scanner.js +216 -2
  477. package/dist/scanners/swift/code-scanner.js.map +1 -1
  478. package/dist/scanners/swift/swiftui-scanner.d.ts +45 -0
  479. package/dist/scanners/swift/swiftui-scanner.d.ts.map +1 -0
  480. package/dist/scanners/swift/swiftui-scanner.js +606 -0
  481. package/dist/scanners/swift/swiftui-scanner.js.map +1 -0
  482. package/dist/scanners/xcode/pbxproj-parser.d.ts +32 -0
  483. package/dist/scanners/xcode/pbxproj-parser.d.ts.map +1 -0
  484. package/dist/scanners/xcode/pbxproj-parser.js +407 -0
  485. package/dist/scanners/xcode/pbxproj-parser.js.map +1 -0
  486. package/dist/scanners/xcode/storyboard-scanner.d.ts +13 -0
  487. package/dist/scanners/xcode/storyboard-scanner.d.ts.map +1 -0
  488. package/dist/scanners/xcode/storyboard-scanner.js +236 -0
  489. package/dist/scanners/xcode/storyboard-scanner.js.map +1 -0
  490. package/dist/storage/markdown-view.d.ts +49 -0
  491. package/dist/storage/markdown-view.d.ts.map +1 -0
  492. package/dist/storage/markdown-view.js +233 -0
  493. package/dist/storage/markdown-view.js.map +1 -0
  494. package/dist/storage.d.ts +225 -9
  495. package/dist/storage.d.ts.map +1 -1
  496. package/dist/storage.js +945 -86
  497. package/dist/storage.js.map +1 -1
  498. package/dist/subgraph.d.ts +30 -0
  499. package/dist/subgraph.d.ts.map +1 -0
  500. package/dist/subgraph.js +106 -0
  501. package/dist/subgraph.js.map +1 -0
  502. package/dist/temporal/git-store.d.ts +65 -0
  503. package/dist/temporal/git-store.d.ts.map +1 -0
  504. package/dist/temporal/git-store.js +166 -0
  505. package/dist/temporal/git-store.js.map +1 -0
  506. package/dist/trace.d.ts +38 -0
  507. package/dist/trace.d.ts.map +1 -0
  508. package/dist/trace.js +292 -0
  509. package/dist/trace.js.map +1 -0
  510. package/dist/types.d.ts +322 -2
  511. package/dist/types.d.ts.map +1 -1
  512. package/dist/types.js +53 -0
  513. package/dist/types.js.map +1 -1
  514. package/hooks/hooks.json +1 -55
  515. package/hooks/mark-dirty.sh +20 -0
  516. package/hooks/post-bash-suggest.sh +30 -0
  517. package/hooks/post-edit-suggest.sh +29 -0
  518. package/hooks/pre-edit-warn.sh +28 -0
  519. package/hooks/session-start.sh +19 -0
  520. package/hooks/stop-suggest.sh +49 -0
  521. package/package.json +30 -11
  522. package/scripts/install-codex-plugin.sh +119 -0
  523. package/scripts/install-plugin.sh +29 -24
  524. package/skills/architecture-export/SKILL.md +79 -0
  525. package/skills/architecture-scan/SKILL.md +64 -0
  526. package/skills/code-review/SKILL.md +368 -0
  527. package/skills/impact-analysis/SKILL.md +80 -0
  528. package/skills/infrastructure-scanning.md +42 -0
  529. package/skills/navgator-setup/SKILL.md +108 -0
  530. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  531. package/web/.next/standalone/web/.next/app-path-routes-manifest.json +3 -0
  532. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  533. package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
  534. package/web/.next/standalone/web/.next/required-server-files.json +4 -4
  535. package/web/.next/standalone/web/.next/routes-manifest.json +18 -0
  536. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  537. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  538. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  539. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  540. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  541. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  542. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  543. package/web/.next/standalone/web/.next/server/app/_not-found/page/next-font-manifest.json +2 -2
  544. package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  545. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  546. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +3 -3
  547. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  548. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  549. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  550. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  551. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  552. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  553. package/web/.next/standalone/web/.next/server/app/api/prompts/route.js.nft.json +1 -1
  554. package/web/.next/standalone/web/.next/server/app/api/rules/route/app-paths-manifest.json +3 -0
  555. package/web/.next/standalone/web/.next/server/app/api/rules/route/build-manifest.json +11 -0
  556. package/web/.next/standalone/web/.next/server/app/api/rules/route/server-reference-manifest.json +4 -0
  557. package/web/.next/standalone/web/.next/server/app/api/rules/route.js +6 -0
  558. package/web/.next/standalone/web/.next/server/app/api/rules/route.js.map +5 -0
  559. package/web/.next/standalone/web/.next/server/app/api/rules/route.js.nft.json +1 -0
  560. package/web/.next/standalone/web/.next/server/app/api/rules/route_client-reference-manifest.js +2 -0
  561. package/web/.next/standalone/web/.next/server/app/api/subgraph/route/app-paths-manifest.json +3 -0
  562. package/web/.next/standalone/web/.next/server/app/api/subgraph/route/build-manifest.json +11 -0
  563. package/web/.next/standalone/web/.next/server/app/api/subgraph/route/server-reference-manifest.json +4 -0
  564. package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js +6 -0
  565. package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.map +5 -0
  566. package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.nft.json +1 -0
  567. package/web/.next/standalone/web/.next/server/app/api/subgraph/route_client-reference-manifest.js +2 -0
  568. package/web/.next/standalone/web/.next/server/app/api/trace/route/app-paths-manifest.json +3 -0
  569. package/web/.next/standalone/web/.next/server/app/api/trace/route/build-manifest.json +11 -0
  570. package/web/.next/standalone/web/.next/server/app/api/trace/route/server-reference-manifest.json +4 -0
  571. package/web/.next/standalone/web/.next/server/app/api/trace/route.js +6 -0
  572. package/web/.next/standalone/web/.next/server/app/api/trace/route.js.map +5 -0
  573. package/web/.next/standalone/web/.next/server/app/api/trace/route.js.nft.json +1 -0
  574. package/web/.next/standalone/web/.next/server/app/api/trace/route_client-reference-manifest.js +2 -0
  575. package/web/.next/standalone/web/.next/server/app/index.html +1 -1
  576. package/web/.next/standalone/web/.next/server/app/index.rsc +6 -6
  577. package/web/.next/standalone/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  578. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +6 -6
  579. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  580. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +3 -3
  581. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +5 -5
  582. package/web/.next/standalone/web/.next/server/app/page/next-font-manifest.json +2 -2
  583. package/web/.next/standalone/web/.next/server/app/page_client-reference-manifest.js +1 -1
  584. package/web/.next/standalone/web/.next/server/app-paths-manifest.json +3 -0
  585. package/web/.next/standalone/web/.next/server/chunks/2374f_next_dist_esm_build_templates_app-route_0bb4e66a.js +1 -1
  586. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__006b837d._.js +1 -1
  587. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__0426efe8._.js +3 -0
  588. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__2e09fec9._.js +1 -1
  589. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__38d0390f._.js +1 -1
  590. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__594bcf20._.js +1 -1
  591. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__b888fadf._.js +1 -1
  592. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__cd5f36ce._.js +3 -0
  593. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__ee6fc95f._.js +3 -0
  594. package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__fa2ec862._.js +1 -1
  595. package/web/.next/standalone/web/.next/server/chunks/ssr/web_171de0df._.js +9 -4
  596. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_rules_route_actions_3de01bd5.js +3 -0
  597. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_subgraph_route_actions_d8b5a63f.js +3 -0
  598. package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_trace_route_actions_b0703ae2.js +3 -0
  599. package/web/.next/standalone/web/.next/server/next-font-manifest.js +1 -1
  600. package/web/.next/standalone/web/.next/server/next-font-manifest.json +4 -4
  601. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  602. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  603. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
  604. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
  605. package/web/.next/standalone/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
  606. package/web/.next/standalone/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
  607. package/web/.next/standalone/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
  608. package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
  609. package/web/.next/standalone/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
  610. package/web/.next/standalone/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
  611. package/web/.next/standalone/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
  612. package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
  613. package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
  614. package/web/.next/standalone/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
  615. package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
  616. package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
  617. package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
  618. package/web/.next/standalone/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
  619. package/web/.next/standalone/web/app/api/components/route.ts +1 -1
  620. package/web/.next/standalone/web/app/api/connections/route.ts +3 -1
  621. package/web/.next/standalone/web/app/api/graph/route.ts +3 -3
  622. package/web/.next/standalone/web/app/api/projects/route.ts +1 -1
  623. package/web/.next/standalone/web/app/api/prompts/route.ts +2 -2
  624. package/web/.next/standalone/web/app/api/rules/route.ts +213 -0
  625. package/web/.next/standalone/web/app/api/settings/route.ts +2 -2
  626. package/web/.next/standalone/web/app/api/status/route.ts +1 -1
  627. package/web/.next/standalone/web/app/api/subgraph/route.ts +267 -0
  628. package/web/.next/standalone/web/app/api/trace/route.ts +321 -0
  629. package/web/.next/standalone/web/app/page.tsx +9 -1
  630. package/web/.next/standalone/web/components/connections-panel.tsx +23 -6
  631. package/web/.next/standalone/web/components/coverage-panel.tsx +309 -0
  632. package/web/.next/standalone/web/components/rules-panel.tsx +156 -0
  633. package/web/.next/standalone/web/components/sidebar.tsx +8 -0
  634. package/web/.next/standalone/web/components/status-overview.tsx +24 -1
  635. package/web/.next/standalone/web/components/subgraph-panel.tsx +382 -0
  636. package/web/.next/standalone/web/components/trace-panel.tsx +325 -0
  637. package/web/.next/standalone/web/lib/hooks/index.ts +3 -0
  638. package/web/.next/standalone/web/lib/hooks/use-coverage.ts +68 -0
  639. package/web/.next/standalone/web/lib/hooks/use-subgraph.ts +85 -0
  640. package/web/.next/standalone/web/lib/hooks/use-trace.ts +84 -0
  641. package/web/.next/standalone/web/lib/types.ts +108 -0
  642. package/web/.next/standalone/web/package-lock.json +218 -0
  643. package/web/.next/standalone/web/package.json +4 -2
  644. package/web/.next/standalone/web/server.js +1 -1
  645. package/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
  646. package/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
  647. package/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
  648. package/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
  649. package/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
  650. package/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
  651. package/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
  652. package/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
  653. package/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
  654. package/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
  655. package/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
  656. package/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
  657. package/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
  658. package/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
  659. package/skills/check/SKILL.md +0 -64
  660. package/skills/connections/SKILL.md +0 -54
  661. package/skills/diagram/SKILL.md +0 -64
  662. package/skills/export/SKILL.md +0 -49
  663. package/skills/impact/SKILL.md +0 -58
  664. package/skills/install/SKILL.md +0 -94
  665. package/skills/scan/SKILL.md +0 -75
  666. package/skills/status/SKILL.md +0 -37
  667. package/skills/ui/SKILL.md +0 -43
  668. package/skills/update/SKILL.md +0 -43
  669. package/web/.next/standalone/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
  670. package/web/.next/standalone/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
  671. package/web/.next/standalone/web/.next/static/chunks/cb3513192b63e480.js +0 -12
  672. package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  673. package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  674. package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  675. package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  676. package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  677. package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  678. package/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
  679. package/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
  680. package/web/.next/static/chunks/cb3513192b63e480.js +0 -12
  681. package/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  682. package/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  683. package/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  684. package/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  685. package/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  686. package/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  687. /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
  688. /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
  689. /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
  690. /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
  691. /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
  692. /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env bash
2
+ # PostToolUse (Write|Edit) — suggest a scan only after touching architecture-critical files.
3
+ # (The original "3+ files modified" heuristic would need persistent state across
4
+ # hook invocations and produced noise anyway. Pattern-matching on the edited
5
+ # path alone is silent by default and still catches the cases that matter.)
6
+ set -u
7
+
8
+ project="${CLAUDE_PROJECT_DIR:-$PWD}"
9
+ [ -f "$project/.navgator/architecture/index.json" ] || exit 0
10
+
11
+ path=$(python3 -c '
12
+ import sys, json
13
+ try:
14
+ print(json.loads(sys.stdin.read()).get("tool_input", {}).get("file_path", ""))
15
+ except Exception:
16
+ pass
17
+ ' 2>/dev/null)
18
+
19
+ [ -z "$path" ] && exit 0
20
+
21
+ case "$path" in
22
+ *schema.prisma|*/migrations/*|*/drizzle/*|\
23
+ */api/*/route.ts|*/api/*/route.js|*/app/api/*|*/pages/api/*|\
24
+ *Package.swift|*.pbxproj|*Podfile|*.entitlements|*Info.plist)
25
+ echo "Architecture-critical file changed — consider running the navgator \`scan\` MCP tool to keep tracking fresh."
26
+ ;;
27
+ *) exit 0 ;;
28
+ esac
29
+ exit 0
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env bash
2
+ # PreToolUse (Edit|Write) — warn only when editing an architecture-critical file.
3
+ # Silent otherwise.
4
+ set -u
5
+
6
+ project="${CLAUDE_PROJECT_DIR:-$PWD}"
7
+ [ -f "$project/.navgator/architecture/index.json" ] || exit 0
8
+
9
+ path=$(python3 -c '
10
+ import sys, json
11
+ try:
12
+ print(json.loads(sys.stdin.read()).get("tool_input", {}).get("file_path", ""))
13
+ except Exception:
14
+ pass
15
+ ' 2>/dev/null)
16
+
17
+ [ -z "$path" ] && exit 0
18
+
19
+ case "$path" in
20
+ *schema.prisma|*/migrations/*|*/drizzle/*|*/prisma/*|\
21
+ */api/*/route.ts|*/api/*/route.js|*/app/api/*|*/pages/api/*|\
22
+ */workers/*|*/queues/*|*/jobs/*|\
23
+ *Package.swift|*.pbxproj|*Podfile|*.entitlements|*Info.plist)
24
+ echo "Architecture-critical file. Consider running the navgator \`explore\` MCP tool first to check downstream impact."
25
+ ;;
26
+ *) exit 0 ;;
27
+ esac
28
+ exit 0
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bash
2
+ # SessionStart hook — suggest a scan only when navgator data is missing or stale.
3
+ # Silent otherwise (exits 0 with no stdout).
4
+ set -u
5
+
6
+ project="${CLAUDE_PROJECT_DIR:-$PWD}"
7
+ index="$project/.navgator/architecture/index.json"
8
+
9
+ # Not a navgator-tracked project yet — stay silent. A user who wants tracking
10
+ # runs `/navgator:scan` explicitly; auto-nagging on every SessionStart across
11
+ # every project is noise.
12
+ [ -f "$index" ] || exit 0
13
+
14
+ # Tracked project: check freshness. Suggest refresh only if >24h old.
15
+ if [ "$(find "$index" -mtime +1 -print 2>/dev/null)" ]; then
16
+ echo "NavGator data is >24h old. Consider running the navgator \`scan\` MCP tool to refresh."
17
+ fi
18
+
19
+ exit 0
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+ # Stop hook — suggest a scan only if the architecture index is clearly stale
3
+ # relative to tracked source files. Silent otherwise.
4
+ #
5
+ # "Clearly stale" = index.json exists and is older than any file in common
6
+ # source dirs within the last 24h.
7
+ set -u
8
+
9
+ emit_empty() {
10
+ printf '{}\n'
11
+ }
12
+
13
+ emit_context() {
14
+ python3 - "$1" <<'PY' || emit_empty
15
+ import json
16
+ import sys
17
+
18
+ print(json.dumps({
19
+ "hookSpecificOutput": {
20
+ "hookEventName": "Stop",
21
+ "additionalContext": sys.argv[1],
22
+ }
23
+ }))
24
+ PY
25
+ }
26
+
27
+ project="${CLAUDE_PROJECT_DIR:-$PWD}"
28
+ index="$project/.navgator/architecture/index.json"
29
+ [ -f "$index" ] || {
30
+ emit_empty
31
+ exit 0
32
+ }
33
+
34
+ # If anything under typical source dirs is newer than index.json, suggest refresh.
35
+ # find -newer is POSIX; errors silenced for dirs that don't exist.
36
+ newer=$(find \
37
+ "$project/src" "$project/app" "$project/lib" "$project/core" \
38
+ "$project/server" "$project/api" "$project/packages" \
39
+ -type f -newer "$index" -not -path "*/node_modules/*" -not -path "*/.next/*" \
40
+ -not -path "*/dist/*" -not -path "*/build/*" -not -path "*/.turbo/*" \
41
+ -print -quit 2>/dev/null)
42
+
43
+ if [ -n "$newer" ]; then
44
+ emit_context "Source files have changed since the last navgator scan — consider running the navgator \`scan\` MCP tool before ending the session."
45
+ else
46
+ emit_empty
47
+ fi
48
+
49
+ exit 0
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@tyroneross/navgator",
3
- "version": "0.2.2",
4
- "description": "Architecture connection tracker for Claude Code - know your stack before you change it",
3
+ "version": "0.9.0",
4
+ "description": "Architecture connection tracker for Claude Code and Codex - know your stack before you change it",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "bin": {
9
- "navgator": "./dist/cli/index.js"
9
+ "navgator": "dist/cli/index.js"
10
10
  },
11
11
  "exports": {
12
12
  ".": {
@@ -31,10 +31,18 @@
31
31
  "hooks",
32
32
  "agents",
33
33
  ".claude-plugin",
34
+ ".codex-plugin",
35
+ ".agents",
36
+ ".mcp.json",
34
37
  "scripts/install-plugin.sh",
38
+ "scripts/install-codex-plugin.sh",
35
39
  "CLAUDE.md",
36
40
  "README.md"
37
41
  ],
42
+ "publishConfig": {
43
+ "access": "public",
44
+ "provenance": true
45
+ },
38
46
  "scripts": {
39
47
  "build": "npm run build:cli && npm run build:web",
40
48
  "build:cli": "tsc && npm run build:fixshebang",
@@ -44,15 +52,21 @@
44
52
  "dev": "tsc --watch",
45
53
  "dev:web": "cd web && next dev",
46
54
  "start": "node dist/cli/index.js",
47
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
55
+ "test": "vitest run",
56
+ "test:release": "vitest run --exclude __tests__/scanner-audit.test.ts --exclude __tests__/scanner-characterization.test.ts --exclude __tests__/scanner-incremental.test.ts",
48
57
  "lint": "eslint src/**/*.ts",
49
58
  "clean": "rm -rf dist web/.next",
50
59
  "prepublishOnly": "npm run clean && npm run build",
51
60
  "link:local": "npm run build && npm link",
52
- "install-plugin": "bash scripts/install-plugin.sh --global"
61
+ "install:claude": "bash scripts/install-plugin.sh --global",
62
+ "install:codex": "bash scripts/install-codex-plugin.sh --user",
63
+ "install:codex-workspace": "bash scripts/install-codex-plugin.sh --workspace",
64
+ "install-plugin": "bash scripts/install-plugin.sh --global",
65
+ "mcp": "node dist/mcp/server.js"
53
66
  },
54
67
  "keywords": [
55
68
  "claude-code",
69
+ "codex",
56
70
  "architecture",
57
71
  "dependencies",
58
72
  "devtools",
@@ -61,27 +75,32 @@
61
75
  "impact-analysis"
62
76
  ],
63
77
  "author": "Tyrone Ross",
64
- "license": "MIT",
78
+ "license": "Apache-2.0",
65
79
  "repository": {
66
80
  "type": "git",
67
- "url": "https://github.com/tyroneross/navgator"
81
+ "url": "git+https://github.com/tyroneross/NavGator.git"
68
82
  },
69
- "homepage": "https://github.com/tyroneross/navgator#readme",
83
+ "homepage": "https://github.com/tyroneross/NavGator#readme",
70
84
  "bugs": {
71
- "url": "https://github.com/tyroneross/navgator/issues"
85
+ "url": "https://github.com/tyroneross/NavGator/issues"
72
86
  },
73
87
  "engines": {
74
88
  "node": ">=20.0.0"
75
89
  },
76
90
  "dependencies": {
77
91
  "commander": "^14.0.0",
78
- "glob": "^13.0.0"
92
+ "glob": "^13.0.0",
93
+ "graphology": "^0.26.0",
94
+ "graphology-communities-louvain": "^2.0.2",
95
+ "graphology-metrics": "^2.4.0"
79
96
  },
80
97
  "optionalDependencies": {
81
98
  "ts-morph": "^27.0.0"
82
99
  },
83
100
  "devDependencies": {
101
+ "@sourcegraph/scip-typescript": "^0.4.0",
84
102
  "@types/node": "^22.0.0",
85
- "typescript": "^5.3.0"
103
+ "typescript": "^5.3.0",
104
+ "vitest": "^4.0.18"
86
105
  }
87
106
  }
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # NavGator Codex plugin installer
5
+ # Usage: ./install-codex-plugin.sh [--user | --workspace]
6
+
7
+ SCOPE="${1:---user}"
8
+ BOLD="\033[1m"
9
+ GREEN="\033[0;32m"
10
+ YELLOW="\033[0;33m"
11
+ RED="\033[0;31m"
12
+ RESET="\033[0m"
13
+
14
+ info() { echo -e "${BOLD}$1${RESET}"; }
15
+ ok() { echo -e "${GREEN}$1${RESET}"; }
16
+ warn() { echo -e "${YELLOW}$1${RESET}"; }
17
+ err() { echo -e "${RED}$1${RESET}" >&2; }
18
+
19
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
20
+ PLUGIN_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
21
+
22
+ update_marketplace() {
23
+ local marketplace_path="$1"
24
+ local marketplace_name="$2"
25
+ local display_name="$3"
26
+ local source_path="$4"
27
+
28
+ mkdir -p "$(dirname "$marketplace_path")"
29
+
30
+ node - <<'NODE' "$marketplace_path" "$marketplace_name" "$display_name" "$source_path"
31
+ const fs = require("fs");
32
+
33
+ const [marketplacePath, marketplaceName, displayName, sourcePath] = process.argv.slice(2);
34
+
35
+ let data = {
36
+ name: marketplaceName,
37
+ interface: { displayName },
38
+ plugins: [],
39
+ };
40
+
41
+ if (fs.existsSync(marketplacePath)) {
42
+ data = JSON.parse(fs.readFileSync(marketplacePath, "utf8"));
43
+ if (!data || typeof data !== "object") data = {};
44
+ if (!Array.isArray(data.plugins)) data.plugins = [];
45
+ if (!data.interface || typeof data.interface !== "object") data.interface = {};
46
+ if (!data.name) data.name = marketplaceName;
47
+ if (!data.interface.displayName) data.interface.displayName = displayName;
48
+ }
49
+
50
+ const entry = {
51
+ name: "navgator",
52
+ source: {
53
+ source: "local",
54
+ path: sourcePath,
55
+ },
56
+ policy: {
57
+ installation: "AVAILABLE",
58
+ authentication: "ON_INSTALL",
59
+ },
60
+ category: "Coding",
61
+ };
62
+
63
+ const index = data.plugins.findIndex((plugin) => plugin && plugin.name === "navgator");
64
+ if (index >= 0) {
65
+ data.plugins[index] = {
66
+ ...data.plugins[index],
67
+ ...entry,
68
+ source: entry.source,
69
+ policy: entry.policy,
70
+ };
71
+ } else {
72
+ data.plugins.push(entry);
73
+ }
74
+
75
+ fs.writeFileSync(marketplacePath, `${JSON.stringify(data, null, 2)}\n`);
76
+ NODE
77
+ }
78
+
79
+ case "$SCOPE" in
80
+ --user)
81
+ TARGET_DIR="$HOME/plugins"
82
+ MARKETPLACE_PATH="$HOME/.agents/plugins/marketplace.json"
83
+ LINK_PATH="$TARGET_DIR/navgator"
84
+ info "Installing navgator for Codex at user scope..."
85
+ mkdir -p "$TARGET_DIR" "$HOME/.agents/plugins"
86
+ ln -sfn "$PLUGIN_ROOT" "$LINK_PATH"
87
+ if [ -L "$TARGET_DIR/gator" ]; then
88
+ warn "Removing legacy Codex alias ~/plugins/gator ..."
89
+ rm -f "$TARGET_DIR/gator"
90
+ fi
91
+ update_marketplace "$MARKETPLACE_PATH" "local" "Local Plugins" "./plugins/navgator"
92
+ echo ""
93
+ ok "navgator Codex plugin installed for your user account."
94
+ echo ""
95
+ echo " Plugin link: $LINK_PATH -> $PLUGIN_ROOT"
96
+ echo " Marketplace: $MARKETPLACE_PATH"
97
+ echo ""
98
+ warn "Restart Codex if the plugin does not appear immediately."
99
+ ;;
100
+ --workspace)
101
+ MARKETPLACE_PATH="$PLUGIN_ROOT/.agents/plugins/marketplace.json"
102
+ info "Refreshing repo-local Codex marketplace metadata..."
103
+ update_marketplace "$MARKETPLACE_PATH" "navgator-local-workspace" "NavGator Workspace Plugins" "./"
104
+ echo ""
105
+ ok "navgator Codex workspace metadata refreshed."
106
+ echo ""
107
+ echo " Marketplace: $MARKETPLACE_PATH"
108
+ echo " Source path: ./"
109
+ echo ""
110
+ warn "Open this repository as the Codex workspace, or symlink it into another workspace's plugins directory."
111
+ ;;
112
+ *)
113
+ echo "Usage: $0 [--user | --workspace]"
114
+ echo ""
115
+ echo " --user Install for your Codex user account (~/.agents/plugins/marketplace.json)"
116
+ echo " --workspace Refresh repo-local workspace metadata (.agents/plugins/marketplace.json)"
117
+ exit 1
118
+ ;;
119
+ esac
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- # NavGator (gator) plugin installer for Claude Code
4
+ # NavGator Claude Code plugin installer
5
5
  # Usage: ./install-plugin.sh [--global | --project]
6
6
 
7
7
  SCOPE="${1:---global}"
@@ -20,19 +20,21 @@ err() { echo -e "${RED}$1${RESET}" >&2; }
20
20
  case "$SCOPE" in
21
21
  --global)
22
22
  TARGET_DIR="$HOME/.claude/plugins"
23
- LINK_NAME="gator"
24
- info "Installing gator plugin globally (all projects)..."
23
+ LINK_NAME="navgator"
24
+ info "Installing navgator plugin globally for Claude Code..."
25
25
  ;;
26
26
  --project)
27
27
  TARGET_DIR=".claude/plugins"
28
- LINK_NAME="gator"
29
- info "Installing gator plugin for current project only..."
28
+ LINK_NAME="navgator"
29
+ info "Installing navgator plugin for the current Claude Code project..."
30
30
  ;;
31
31
  *)
32
32
  echo "Usage: $0 [--global | --project]"
33
33
  echo ""
34
- echo " --global Install for all projects (~/.claude/plugins/gator)"
35
- echo " --project Install for current project only (.claude/plugins/gator)"
34
+ echo " --global Install for all Claude projects (~/.claude/plugins/navgator)"
35
+ echo " --project Install for the current Claude project (.claude/plugins/navgator)"
36
+ echo ""
37
+ echo "For Codex installs, run: bash scripts/install-codex-plugin.sh [--user | --workspace]"
36
38
  exit 1
37
39
  ;;
38
40
  esac
@@ -53,11 +55,11 @@ if [ ! -f "$NAVGATOR_PATH/.claude-plugin/plugin.json" ]; then
53
55
  exit 1
54
56
  fi
55
57
 
56
- # --- Clean up old navgator symlink ---
57
- OLD_LINK="$HOME/.claude/plugins/navgator"
58
- if [ -L "$OLD_LINK" ]; then
59
- warn "Removing old 'navgator' symlink..."
60
- rm -f "$OLD_LINK"
58
+ # --- Clean up old navgator alias ---
59
+ OLD_ALIAS="$TARGET_DIR/navgator"
60
+ if [ -L "$OLD_ALIAS" ]; then
61
+ warn "Removing legacy 'navgator' Claude plugin alias..."
62
+ rm -f "$OLD_ALIAS"
61
63
  fi
62
64
 
63
65
  # --- Create symlink ---
@@ -74,22 +76,25 @@ ln -sfn "$NAVGATOR_PATH" "$FULL_LINK"
74
76
  # --- Verify ---
75
77
  if [ -f "$FULL_LINK/.claude-plugin/plugin.json" ]; then
76
78
  echo ""
77
- ok "gator plugin installed successfully!"
79
+ ok "navgator Claude plugin installed successfully!"
78
80
  echo ""
79
81
  echo " Location: $FULL_LINK -> $NAVGATOR_PATH"
80
82
  echo " Scope: $([ "$SCOPE" = "--global" ] && echo "all projects" || echo "current project only")"
81
83
  echo ""
82
- echo " Available commands:"
83
- echo " /gator:scan Scan project architecture"
84
- echo " /gator:status Show architecture summary"
85
- echo " /gator:impact Analyze change impact"
86
- echo " /gator:connections Show component connections"
87
- echo " /gator:diagram Generate architecture diagram"
88
- echo " /gator:export Export architecture data"
89
- echo " /gator:check Run health checks"
90
- echo " /gator:ui Launch web dashboard"
91
- echo " /gator:update Update to latest version"
92
- echo " /gator:install Re-run this installer"
84
+ echo " Claude slash commands:"
85
+ echo " /navgator:scan"
86
+ echo " /navgator:map"
87
+ echo " /navgator:trace"
88
+ echo " /navgator:impact"
89
+ echo " /navgator:test"
90
+ echo " /navgator:review"
91
+ echo " /navgator:llm-map"
92
+ echo " /navgator:schema"
93
+ echo " /navgator:dead"
94
+ echo " /navgator:lessons"
95
+ echo ""
96
+ echo " Codex install:"
97
+ echo " bash scripts/install-codex-plugin.sh --user"
93
98
  echo ""
94
99
  warn "Restart Claude Code for changes to take effect."
95
100
  else
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: architecture-export
3
+ description: Use when user asks to show or generate an architecture diagram, visualize dependencies, export architecture docs, create architecture documentation, save architecture output, or create a mermaid diagram of their project.
4
+ version: 0.4.0
5
+ user-invocable: true
6
+ argument-hint: "[diagram|export] [options]"
7
+ ---
8
+
9
+ # Architecture Diagrams & Export
10
+
11
+ Generate architecture diagrams and export architecture summaries using the real NavGator MCP and CLI surfaces.
12
+
13
+ ## Prerequisites
14
+
15
+ Before generating output, check whether architecture data exists. If the MCP tool or CLI reports missing data, run or recommend `navgator scan` first. Do not fabricate architecture from raw source when scan data is unavailable.
16
+
17
+ ## Diagrams
18
+
19
+ For in-chat diagrams, use the `navgator diagram` MCP tool.
20
+
21
+ **MCP modes:**
22
+ - `summary`: top connected components only (default)
23
+ - `focus`: center on a specific component; pass `focus: "<component-name>"`
24
+ - `layer`: show one layer; pass `focus: "<layer-name>"` such as `frontend`, `backend`, `database`, `queue`, `infra`, or `external`
25
+
26
+ The MCP tool returns Mermaid markdown that can be rendered in any Mermaid-compatible viewer.
27
+
28
+ For file output, use the CLI `diagram` command. NavGator does not have an `export` command.
29
+
30
+ ```bash
31
+ # Raw Mermaid
32
+ npx @tyroneross/navgator diagram --summary --output architecture.mmd
33
+
34
+ # Markdown-wrapped Mermaid
35
+ npx @tyroneross/navgator diagram --summary --markdown --output ARCHITECTURE.md
36
+
37
+ # Focused component diagram
38
+ npx @tyroneross/navgator diagram --focus "component-name" --markdown --output component-architecture.md
39
+
40
+ # Layer diagram
41
+ npx @tyroneross/navgator diagram --layer backend --markdown --output backend-architecture.md
42
+ ```
43
+
44
+ ## Summary Export
45
+
46
+ For an in-chat executive summary, use the `navgator summary` MCP tool.
47
+
48
+ For a JSON file, use the CLI `summary` command and shell redirection:
49
+
50
+ ```bash
51
+ npx @tyroneross/navgator summary > architecture-summary.json
52
+ ```
53
+
54
+ If the user asks for machine-readable graph data, point them to the generated scan artifacts rather than inventing an export command:
55
+
56
+ - `.navgator/architecture/index.json`
57
+ - `.navgator/architecture/graph.json`
58
+ - `.navgator/architecture/file_map.json`
59
+
60
+ ## Decision Tree
61
+
62
+ | User Intent | Tool | Notes |
63
+ |-------------|------|-------|
64
+ | "Show architecture diagram" | MCP `navgator diagram` | Summary mode |
65
+ | "Diagram of X component" | MCP `navgator diagram` with `mode: "focus"` | Component-focused |
66
+ | "Show backend layer" | MCP `navgator diagram` with `mode: "layer"` | Pass layer name as `focus` |
67
+ | "Save a Mermaid diagram" | CLI `npx @tyroneross/navgator diagram --output <file>` | Add `--markdown` for Markdown docs |
68
+ | "Export architecture summary" | CLI `npx @tyroneross/navgator summary > <file>.json` | JSON file output |
69
+ | "Architecture summary in chat" | MCP `navgator summary` | Executive summary |
70
+ | "Export full graph JSON" | Existing `.navgator/architecture/*.json` files | No CLI export command exists |
71
+
72
+ ## Guardrails
73
+
74
+ - Do not use `navgator export`; that command is not registered.
75
+ - Do not run npm or write files unless the user asked for file output.
76
+ - Use `focus` for complex diagrams so the output stays readable.
77
+ - Prefer Markdown-wrapped Mermaid for documentation files and raw Mermaid for diagram-only artifacts.
78
+
79
+ *navgator - architecture tracker*
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: architecture-scan
3
+ description: Use when user asks to scan architecture, check dependencies, find outdated packages, show project structure, refresh architecture, or run a health check. Navgator scan, status, and staleness check.
4
+ version: 0.4.0
5
+ user-invocable: false
6
+ ---
7
+
8
+ # Architecture Scan & Status
9
+
10
+ Scan project architecture, check health, and monitor staleness using NavGator MCP tools. This skill covers scanning, status display, and health checks.
11
+
12
+ ## When to Activate
13
+
14
+ - User asks about project architecture, stack, or dependencies
15
+ - User wants to check for outdated packages or vulnerabilities
16
+ - Session starts and architecture data may be stale (>24h since last scan)
17
+ - User adds/removes dependencies or makes structural changes
18
+ - After `npm install`, `pip install`, or similar dependency operations
19
+
20
+ ## Scanning
21
+
22
+ Use the `navgator scan` MCP tool to detect components, connections, AI prompts, and infrastructure.
23
+
24
+ **Options:**
25
+ - Default: Full scan including code analysis
26
+ - `quick: true`: Package files only, skip code analysis (faster)
27
+
28
+ After scanning, present a smart brevity brief:
29
+ - **Line 1**: "Scanned [project]. [N] components, [N] connections."
30
+ - **What's new**: Added/removed components since last scan
31
+ - **What to watch**: Outdated packages, vulnerabilities, low-confidence detections
32
+ - **AI routing**: Providers and model count if AI calls detected
33
+
34
+ ## Status
35
+
36
+ Use the `navgator status` MCP tool to show architecture summary without re-scanning.
37
+
38
+ Returns: component counts by type/layer, connection counts, AI routing table, last scan timestamp, and staleness indicator.
39
+
40
+ If no architecture data exists, recommend running a scan first.
41
+
42
+ ## Health Checks
43
+
44
+ Use the `navgator scan` MCP tool with a follow-up review of the results. Health information is included in scan output:
45
+ - Outdated packages
46
+ - Security vulnerabilities
47
+ - Orphaned connections (dead code references)
48
+ - Missing imports and unused dependencies
49
+
50
+ ## Decision Tree
51
+
52
+ | User Intent | MCP Tool | Notes |
53
+ |-------------|----------|-------|
54
+ | "Scan my project" | `navgator scan` | Full scan |
55
+ | "Quick scan" | `navgator scan` (quick: true) | Packages only |
56
+ | "What's my stack?" | `navgator status` | No re-scan needed |
57
+ | "Any outdated packages?" | `navgator scan` | Check health results |
58
+ | "Is architecture data fresh?" | `navgator status` | Check timestamp |
59
+
60
+ ## Output Format
61
+
62
+ Keep output concise. Do NOT dump raw CLI output. Summarize into a scannable brief.
63
+
64
+ *navgator — architecture tracker*