@tyroneross/navgator 0.2.1 → 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 (690) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +37 -0
  3. package/.claude-plugin/plugin.json +12 -4
  4. package/.codex-plugin/plugin.json +31 -0
  5. package/.mcp.json +8 -0
  6. package/CLAUDE.md +246 -0
  7. package/LICENSE +202 -21
  8. package/README.md +242 -86
  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 +33 -12
  522. package/scripts/install-codex-plugin.sh +119 -0
  523. package/scripts/install-plugin.sh +103 -0
  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/commands/nav-check.md +0 -64
  660. package/commands/nav-connections.md +0 -58
  661. package/commands/nav-diagram.md +0 -106
  662. package/commands/nav-export.md +0 -71
  663. package/commands/nav-impact.md +0 -58
  664. package/commands/nav-scan.md +0 -46
  665. package/commands/nav-status.md +0 -44
  666. package/skills/architecture-awareness/SKILL.md +0 -141
  667. package/web/.next/standalone/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
  668. package/web/.next/standalone/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
  669. package/web/.next/standalone/web/.next/static/chunks/cb3513192b63e480.js +0 -12
  670. package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  671. package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  672. package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  673. package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  674. package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  675. package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  676. package/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
  677. package/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
  678. package/web/.next/static/chunks/cb3513192b63e480.js +0 -12
  679. package/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  680. package/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  681. package/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  682. package/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  683. package/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  684. package/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  685. /package/web/.next/standalone/web/.next/static/{WH0NvTGUEDs9QVUjcPJKx → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
  686. /package/web/.next/standalone/web/.next/static/{WH0NvTGUEDs9QVUjcPJKx → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
  687. /package/web/.next/standalone/web/.next/static/{WH0NvTGUEDs9QVUjcPJKx → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
  688. /package/web/.next/static/{WH0NvTGUEDs9QVUjcPJKx → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
  689. /package/web/.next/static/{WH0NvTGUEDs9QVUjcPJKx → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
  690. /package/web/.next/static/{WH0NvTGUEDs9QVUjcPJKx → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # NavGator
2
2
 
3
- **Architecture Connection Tracker for Claude Code**
3
+ **Architecture Connection Tracker for Claude Code and Codex**
4
4
 
5
5
  > Know your stack before you change it
6
6
 
7
- NavGator tracks architecture connections across your entire stack—packages, services, databases, queues, and infrastructure—so Claude knows what else needs to change when you modify one part of the system.
7
+ NavGator tracks architecture connections across your entire stack—packages, services, databases, queues, and infrastructure—so your coding agent knows what else needs to change when you modify one part of the system.
8
8
 
9
9
  ## Features
10
10
 
@@ -13,7 +13,8 @@ NavGator tracks architecture connections across your entire stack—packages, se
13
13
  - **Impact Analysis**: "What's affected if I change X?"
14
14
  - **Change Detection**: SHA-256 file hashing tracks what changed since last scan
15
15
  - **Mermaid Diagrams**: Visual architecture diagrams
16
- - **Claude Code Integration**: Hooks, skills, and slash commands
16
+ - **Claude Code Integration**: Hooks, skills, agents, and slash commands
17
+ - **Codex Integration**: Skills, MCP tools, and native marketplace metadata
17
18
 
18
19
  ## Installation
19
20
 
@@ -29,12 +30,43 @@ npx @tyroneross/navgator scan
29
30
 
30
31
  ### As a Claude Code Plugin
31
32
 
32
- After installing, run `navgator setup` — it will detect Claude Code and offer to link the plugin automatically. You can also link manually:
33
+ Install the Claude surface directly from this repo:
33
34
 
34
35
  ```bash
35
- ln -s /path/to/navgator ~/.claude/plugins/navgator
36
+ # Install for all projects (user scope)
37
+ bash scripts/install-plugin.sh --global
38
+
39
+ # Install for current project only
40
+ bash scripts/install-plugin.sh --project
41
+ ```
42
+
43
+ Or link manually:
44
+
45
+ ```bash
46
+ ln -s $(npm root -g)/@tyroneross/navgator ~/.claude/plugins/navgator
47
+ ```
48
+
49
+ Restart Claude Code after installing. All `/navgator:*` commands will be available.
50
+
51
+ ### As a Codex Plugin
52
+
53
+ Install the Codex surface directly from this repo:
54
+
55
+ ```bash
56
+ # Install for your Codex user account
57
+ bash scripts/install-codex-plugin.sh --user
58
+
59
+ # Or refresh repo-local workspace metadata only
60
+ bash scripts/install-codex-plugin.sh --workspace
36
61
  ```
37
62
 
63
+ This repo now includes native Codex metadata in:
64
+
65
+ - `.codex-plugin/plugin.json`
66
+ - `.agents/plugins/marketplace.json`
67
+
68
+ Claude remains the authoritative host for slash commands and agent wiring. Hooks are disabled by default. Codex uses the additive plugin surface for skills and MCP tools.
69
+
38
70
  ## Quick Start
39
71
 
40
72
  ### 1. Set Up NavGator
@@ -43,7 +75,7 @@ ln -s /path/to/navgator ~/.claude/plugins/navgator
43
75
  navgator setup
44
76
  ```
45
77
 
46
- This runs the initial scan and offers to link NavGator as a Claude Code plugin (if Claude Code is installed).
78
+ This runs the initial scan and then you can install the Claude or Codex surface explicitly from the scripts above.
47
79
 
48
80
  ### 2. Scan Your Project
49
81
 
@@ -54,8 +86,11 @@ navgator scan
54
86
  # Quick scan (packages only, faster)
55
87
  navgator scan --quick
56
88
 
57
- # Verbose output
58
- navgator scan --verbose
89
+ # With AI prompt detection
90
+ navgator scan --prompts --verbose
91
+
92
+ # With infrastructure analysis
93
+ navgator scan --field-usage --typespec
59
94
  ```
60
95
 
61
96
  ### 3. Check Status
@@ -83,6 +118,12 @@ CONNECTIONS BY TYPE:
83
118
  service-call: 12
84
119
  api-calls-db: 8
85
120
  frontend-calls-api: 3
121
+
122
+ INFRASTRUCTURE:
123
+ DB models: 12
124
+ Env vars: 34
125
+ Queues: 3
126
+ Cron jobs: 2
86
127
  ```
87
128
 
88
129
  ### 4. Analyze Impact
@@ -157,6 +198,31 @@ navgator diagram --layer backend
157
198
  navgator diagram --output architecture.md --markdown
158
199
  ```
159
200
 
201
+ ## Claude Code Slash Commands
202
+
203
+ When installed as a Claude Code plugin, all commands are available as `/navgator:*` slash commands:
204
+
205
+ | Command | Description |
206
+ |---------|-------------|
207
+ | `/navgator:map` | Map full architecture — components, connections, runtime topology, and LLM use cases |
208
+ | `/navgator:plan "<intent>"` | Plan an architecture change or investigation. Delegates to the `architecture-planner` agent, which checks graph freshness, runs an incremental scan if stale, then dispatches the right read-only NavGator tools and aggregates findings |
209
+ | `/navgator:scan` | Quick scan — refresh tracking data |
210
+ | `/navgator:trace <component>` | Trace data flow through the system |
211
+ | `/navgator:impact <component>` | Analyze what's affected by a change |
212
+ | `/navgator:test [instructions]` | Run an end-to-end architecture test |
213
+ | `/navgator:review` | Architectural integrity review (connections, flow, drift, lessons) |
214
+ | `/navgator:review --all` | Review entire architecture, not just changes |
215
+ | `/navgator:review --validate` | Validate lessons against current docs (internet research) |
216
+ | `/navgator:review learn "..."` | Record a manual architectural lesson |
217
+ | `/navgator:llm-map` | Map LLM use cases by purpose and provider |
218
+ | `/navgator:schema [model]` | Show database readers and writers |
219
+ | `/navgator:dead` | Find orphaned components and dead code |
220
+ | `/navgator:lessons` | Manage project and global architecture lessons |
221
+
222
+ ### Hooks
223
+
224
+ NavGator does not enable automatic Claude Code hooks by default. Run `/navgator:scan` or the MCP scan tool explicitly when architecture data needs to be refreshed.
225
+
160
226
  ## CLI Reference
161
227
 
162
228
  ### `navgator scan`
@@ -169,8 +235,78 @@ Scan project and update architecture tracking.
169
235
  | `-c, --connections` | Focus on connection detection |
170
236
  | `-p, --prompts` | Enhanced AI prompt scanning with full content |
171
237
  | `-v, --verbose` | Detailed output |
172
- | `--clear` | Clear existing data before scan |
238
+ | `--auto` | Auto-pick scan mode (default see Scan modes below) |
239
+ | `--full` | Force a full scan (clear all and rebuild) |
240
+ | `--incremental` | Force an incremental scan (walk only changed files + reverse-deps) |
241
+ | `--clear` | Alias for `--full` (legacy) |
173
242
  | `--ast` | Use AST-based scanning (requires `ts-morph`) |
243
+ | `--field-usage` | Analyze Prisma model field usage across codebase |
244
+ | `--typespec` | Validate Prisma types against TypeScript interfaces |
245
+ | `--track-branch` | Capture git branch/commit in scan output |
246
+ | `--json` | Output scan results as JSON |
247
+ | `--agent` | Wrap output in agent envelope (implies `--json`) |
248
+
249
+ #### Scan modes
250
+
251
+ NavGator supports three scan modes. By default (`--auto`), the scanner picks one based on what changed since the last scan and how stale the cached graph is.
252
+
253
+ | Mode | When it runs | Behavior |
254
+ |------|--------------|----------|
255
+ | `full` | first scan, or any of: `--full`/`--clear`, manifest or build-config changed (e.g. `package.json`, `prisma/schema.prisma`, `tsconfig.json`, `vercel.json`, `fly.toml`, `railway.json`, `.gitignore`), a new source file was added, `last_full_scan > 7 days ago`, or `incrementals_since_full ≥ 20` | Clears `.navgator/architecture/` and rebuilds the entire graph |
256
+ | `incremental` | a code file changed and none of the full-scan triggers fire | Walks only changed files plus their reverse-dependencies, merges results into the existing graph by stable_id, runs an integrity check |
257
+ | `noop` | nothing changed since the last scan | Updates `last_scan`, writes a `noop` timeline entry, leaves the graph untouched |
258
+
259
+ If an incremental scan fails its integrity check, NavGator automatically promotes it to a full scan and records `scan_type: 'incremental→full'` in the timeline. Atomic file writes ensure that a crashed scan leaves the prior `.navgator/architecture/` intact.
260
+
261
+ The mode used for any given scan appears in `.navgator/architecture/timeline.json` under `scan_type`.
262
+
263
+ #### Audit (Run 2 — SQC self-measurement)
264
+
265
+ After every scan, NavGator runs a statistical-quality-control audit on its own output. The audit samples a fraction of the just-stored components and connections, runs five deterministic verifiers, optionally requests an LLM-judge spot-check, and tracks defect-rate drift across runs via an EWMA control chart. **Audit failures never fail the scan** — they only update per-stratum EWMA state. The next scan auto-promotes to a tighter inspection if any stratum breaches its control limits.
266
+
267
+ | Plan | When picked | What it does |
268
+ |------|-------------|--------------|
269
+ | `AQL` (default) | first three audits, or via `--audit-plan=aql` | MIL-STD-105E single-sampling table at AQL=2.5%. Sample size scales with population (e.g. n=80 c=5 for ~1k facts). |
270
+ | `SPRT` | history ≥ 3 audits | Wald 1945 sequential probability ratio test with α=β=0.05, p₀=1%, p₁=5%. Continues sampling until logLR escapes the bounds A=19 / B=0.0526. |
271
+ | `Cochran` | prior run breached EWMA, or `--audit-plan=cochran` | Cochran's formula with FPC at 95% CI, ±5% margin. Tightest inspection. |
272
+
273
+ Six defect classes:
274
+
275
+ | Class | Verifier | LLM? |
276
+ |-------|----------|------|
277
+ | HALLUCINATED_COMPONENT | filesystem + symbol existence on `source.config_files` | no |
278
+ | HALLUCINATED_EDGE | both endpoint component_ids resolve in graph | no |
279
+ | WRONG_ENDPOINT | grep target name/symbol in connection's source file | no |
280
+ | STALE_REFERENCE | re-hash file vs `hashes.json` | no |
281
+ | DEDUP_COLLISION | scan all components for duplicate `(type, name, primary-config)` triples (regression check on Run 1.7 fix) | no |
282
+ | MISSED_EDGE | "list all outgoing edges, set-diff against graph" — emits a structured payload an MCP-side LLM judge can consume | yes (CLI-mode skips) |
283
+
284
+ In CLI mode the LLM-judge verifier is skipped and `audit.llm_skipped: true` is set. In MCP mode the audit emits a structured payload (`audit.defect_evidence` carries up to 20 sample failures) for the running model.
285
+
286
+ Per-stratum strata: `package`, `infra`, `connection-imports`, `connection-services`, `connection-llm`, `connection-prisma`, `__other`. Stratified sample selection uses Neyman optimal allocation (more samples → higher-variance strata).
287
+
288
+ EWMA control chart (Hawkins-Wu defaults λ=0.2, L=2.7) tracks defect-rate drift per stratum across runs. On breach, `pending_drift_breach` is set on the index, and the next `--auto` scan promotes to `mode='full' + audit-plan='cochran'`.
289
+
290
+ Flags:
291
+
292
+ | Flag | Purpose |
293
+ |------|---------|
294
+ | `--no-audit` | Skip the audit pass entirely |
295
+ | `--audit-plan <plan>` | Override plan auto-pick: `aql` \| `sprt` \| `cochran` |
296
+
297
+ Audit output appears on the timeline entry under `audit`:
298
+
299
+ ```json
300
+ {
301
+ "plan": "AQL",
302
+ "n": 80, "c": 5, "sampled": 156, "defects": 0,
303
+ "defect_rate": 0,
304
+ "by_class": { "HALLUCINATED_COMPONENT": { "sampled": 40, "defects": 0 }, ... },
305
+ "by_stratum": { "package": { "sampled": 18, "defects": 0, "defect_rate": 0 }, ... },
306
+ "verdict": "accept",
307
+ "llm_skipped": true
308
+ }
309
+ ```
174
310
 
175
311
  ### `navgator status`
176
312
 
@@ -234,34 +370,53 @@ Scan and analyze AI prompts in the codebase.
234
370
  | `--json` | Output as JSON |
235
371
  | `--detail <name>` | Show detailed view of specific prompt |
236
372
 
237
- **Example output:**
238
- ```
239
- AI PROMPTS DETECTED
240
- ============================================================
241
-
242
- Total prompts: 5
243
- Templates: 4
244
- With tools: 0
245
-
246
- By Provider:
247
- anthropic: 2
248
- openai: 3
249
-
250
- By Category:
251
- summarization: 2
252
- classification: 1
253
- unknown: 2
254
-
255
- PROMPT: SYSTEM_PROMPT
256
- File: src/ai/summarizer.ts:8-10
257
- Provider: anthropic
258
- Category: summarization
259
- Purpose: System prompt for article summarization
260
- Tags: has-system-prompt
261
- System: "You are a helpful assistant that summarizes articles..."
262
- Confidence: 100%
373
+ ### `navgator coverage`
374
+
375
+ Analyze database field usage and type alignment.
376
+
377
+ ```bash
378
+ # Field usage analysis (requires Prisma schema)
379
+ navgator coverage --fields
380
+
381
+ # TypeSpec validation (Prisma vs TypeScript types)
382
+ navgator coverage --typespec
263
383
  ```
264
384
 
385
+ | Option | Description |
386
+ |--------|-------------|
387
+ | `--fields` | Report unused, read-only, and write-only Prisma model fields |
388
+ | `--typespec` | Compare Prisma model types against TypeScript interface definitions |
389
+ | `--json` | Output as JSON |
390
+
391
+ ### `navgator trace <component>`
392
+
393
+ Trace dataflow paths forward and backward through the system.
394
+
395
+ | Option | Description |
396
+ |--------|-------------|
397
+ | `--direction <dir>` | forward, backward, or both (default: both) |
398
+ | `--depth <n>` | Max trace depth (default: 5) |
399
+ | `--json` | Output as JSON |
400
+
401
+ ### `navgator rules`
402
+
403
+ Check architecture rules and report violations.
404
+
405
+ | Option | Description |
406
+ |--------|-------------|
407
+ | `--json` | Output as JSON |
408
+
409
+ Built-in rules: orphan components, database isolation, frontend-direct-db, circular dependencies, hotspot modules, high fan-out, layer violations.
410
+
411
+ ### `navgator subgraph <component>`
412
+
413
+ Extract a focused subgraph around a specific component.
414
+
415
+ | Option | Description |
416
+ |--------|-------------|
417
+ | `--depth <n>` | Include connections up to N hops away (default: 2) |
418
+ | `--json` | Output as JSON |
419
+
265
420
  ## What Gets Detected
266
421
 
267
422
  ### Components
@@ -286,13 +441,35 @@ PROMPT: SYSTEM_PROMPT
286
441
  | `queue-triggers` | Queue job → Handler function |
287
442
  | `prompt-location` | AI prompt definition location |
288
443
  | `prompt-usage` | Code that uses an AI prompt |
444
+ | `env-dependency` | Component → environment variable it depends on |
445
+ | `schema-relation` | Database model → related model (FK/relation) |
446
+ | `cron-triggers` | Cron job → API route handler |
447
+ | `queue-produces` | Producer → queue |
448
+ | `queue-consumes` | Queue → consumer worker |
449
+ | `field-reference` | Database model field → file that references it |
450
+ | `runtime-binding` | Component → its runtime service/resource |
451
+ | `queue-uses-cache` | Queue system → Redis/cache instance |
452
+
453
+ ### Runtime Topology
454
+
455
+ NavGator annotates architecture components with runtime identity information extracted from code and config:
456
+
457
+ - **Database connections**: Parses `DATABASE_URL` and Prisma `datasource` to identify database engine (postgres, mysql, etc.), host, and port
458
+ - **Redis/cache connections**: Extracts Redis URLs from BullMQ queue configurations and env vars
459
+ - **Queue identity**: Maps queue names to their Redis backing store and producer/consumer relationships
460
+ - **Deploy services**: Extracts service names from Railway, Vercel, Heroku (Procfile), and Nixpacks configs
461
+ - **Cron handlers**: Links scheduled jobs to their handler functions and deployment platform
462
+
463
+ Use `navgator status` to see the RUNTIME TOPOLOGY section showing all detected runtime bindings.
289
464
 
290
465
  ## Storage
291
466
 
292
- Data is stored in `.claude/architecture/` within your project:
467
+ Data is stored in `.navgator/architecture/` within your project:
293
468
 
294
469
  ```
295
- .claude/architecture/
470
+ .navgator/architecture/
471
+ ├── NAVSUMMARY.md ← Hot context (read first)
472
+ ├── NAVSUMMARY_FULL.md ← Full version if compressed
296
473
  ├── components/ # Individual component JSON files
297
474
  │ ├── COMP_npm_react_a1b2.json
298
475
  │ └── COMP_service_stripe_c3d4.json
@@ -300,42 +477,12 @@ Data is stored in `.claude/architecture/` within your project:
300
477
  │ └── CONN_service_call_e5f6.json
301
478
  ├── index.json # Quick lookup index
302
479
  ├── graph.json # Full connection graph
480
+ ├── file_map.json # File path → component ID lookup
481
+ ├── prompts.json # AI prompt content + associations
303
482
  ├── hashes.json # File hashes for change detection
304
483
  └── snapshots/ # Point-in-time backups
305
484
  ```
306
485
 
307
- ## Claude Code Integration
308
-
309
- ### Hooks
310
-
311
- NavGator includes hooks that integrate with Claude Code:
312
-
313
- **SessionStart**: Checks if architecture data is stale (>24h) and suggests running `/nav-scan`.
314
-
315
- **PostToolUse (Bash)**: Detects package manager commands (`npm install`, `pip install`, etc.) and reminds to update architecture memory.
316
-
317
- ### Slash Commands
318
-
319
- When installed as a Claude Code plugin:
320
-
321
- | Command | Description |
322
- |---------|-------------|
323
- | `/nav-scan` | Scan project architecture |
324
- | `/nav-status` | Show architecture summary |
325
- | `/nav-impact <component>` | Impact analysis |
326
- | `/nav-connections <component>` | View connections |
327
- | `/nav-diagram` | Generate diagram |
328
- | `/nav-check` | Health check (outdated packages) |
329
- | `/nav-export` | Export to markdown |
330
-
331
- ### Skill Activation
332
-
333
- The **Architecture Awareness** skill activates when you mention:
334
- - "what packages", "dependencies", "tech stack"
335
- - "what version", "upgrade", "add library"
336
- - "what uses X", "what calls Y"
337
- - "impact of changing"
338
-
339
486
  ## AI Prompt Tracking
340
487
 
341
488
  NavGator includes comprehensive AI prompt detection and tracking. Use `--prompts` flag or the dedicated `prompts` command.
@@ -352,22 +499,6 @@ NavGator includes comprehensive AI prompt detection and tracking. Use `--prompts
352
499
  | **Category** | summarization, classification, extraction, chat, etc. |
353
500
  | **Usage** | Where the prompt is called (file, line, function) |
354
501
 
355
- ### Prompt Scanning Example
356
-
357
- ```bash
358
- # Scan only prompts
359
- navgator prompts
360
-
361
- # Detailed view of a specific prompt
362
- navgator prompts --detail SYSTEM_PROMPT
363
-
364
- # Full scan with enhanced prompt tracking
365
- navgator scan --prompts --verbose
366
-
367
- # JSON output for tooling
368
- navgator prompts --json
369
- ```
370
-
371
502
  ### Prompt Categories
372
503
 
373
504
  NavGator automatically categorizes prompts:
@@ -407,7 +538,7 @@ Without `ts-morph`, NavGator uses regex-based scanning which is faster but may m
407
538
  | Variable | Description | Default |
408
539
  |----------|-------------|---------|
409
540
  | `NAVGATOR_MODE` | Storage mode: `local` or `shared` | `local` |
410
- | `NAVGATOR_PATH` | Custom storage path | `.claude/architecture` |
541
+ | `NAVGATOR_PATH` | Custom storage path | `.navgator/architecture` |
411
542
  | `NAVGATOR_AUTO_SCAN` | Auto-scan on session start | `false` |
412
543
  | `NAVGATOR_HEALTH_CHECK` | Enable health checks | `false` |
413
544
  | `NAVGATOR_SCAN_DEPTH` | `shallow` or `deep` | `shallow` |
@@ -490,3 +621,28 @@ Contributions welcome! Please read the contributing guidelines first.
490
621
  - [GitHub Repository](https://github.com/tyroneross/navgator)
491
622
  - [Issue Tracker](https://github.com/tyroneross/navgator/issues)
492
623
  - [Claude Code](https://claude.ai/claude-code)
624
+
625
+ ## Codex
626
+
627
+ This package now ships an additive Codex plugin surface alongside the existing Claude Code package. Claude remains the authoritative runtime for slash commands and agents. Hooks are disabled by default. Codex support is explicit and parallel rather than inferred from the Claude surface.
628
+
629
+ Package root for Codex installs:
630
+ - the repository root (`.`)
631
+
632
+ Primary Codex surface:
633
+ - manifest: `./.codex-plugin/plugin.json`
634
+ - workspace marketplace metadata: `./.agents/plugins/marketplace.json`
635
+ - skills from `./skills`
636
+ - MCP config from `./.mcp.json`
637
+
638
+ Recommended Codex flows:
639
+
640
+ ```bash
641
+ # user-wide install
642
+ bash scripts/install-codex-plugin.sh --user
643
+
644
+ # repo-local workspace metadata
645
+ bash scripts/install-codex-plugin.sh --workspace
646
+ ```
647
+
648
+ The Codex package is additive only: Claude-specific slash commands and agent wiring remain unchanged for Claude Code.
@@ -42,12 +42,12 @@ When advising on architecture:
42
42
 
43
43
  1. First, check if NavGator has scanned the project:
44
44
  ```bash
45
- ls -la .claude/architecture/
45
+ ls -la .navgator/architecture/
46
46
  ```
47
47
 
48
48
  2. If scanned, read the index for quick overview:
49
49
  ```bash
50
- cat .claude/architecture/index.json
50
+ cat .navgator/architecture/index.json
51
51
  ```
52
52
 
53
53
  3. For specific impact analysis:
@@ -60,6 +60,10 @@ When advising on architecture:
60
60
  npx @tyroneross/navgator connections "<component>"
61
61
  ```
62
62
 
63
+ 5. When Prisma is detected, suggest running `navgator coverage --fields` to identify unused database fields.
64
+
65
+ 6. When TypeScript interfaces mirror Prisma models, suggest `navgator coverage --typespec` to validate type alignment.
66
+
63
67
  ## Response Format
64
68
 
65
69
  When advising on changes:
@@ -0,0 +1,163 @@
1
+ ---
2
+ name: architecture-investigator
3
+ description: Autonomous subagent for investigating architecture issues using NavGator MCP tools. Follows SRE-style read-only investigation before proposing changes. Deploy via the Task tool when a specific component, violation, or data-flow issue needs deep analysis.
4
+ color: "#F59E0B"
5
+ tools: ["Bash", "Read", "Glob", "Grep"]
6
+ ---
7
+
8
+ # Architecture Investigator Agent
9
+
10
+ You are an autonomous architecture investigator. Your role is to investigate architecture issues, violations, and anomalies using NavGator's analysis tools. You investigate first (read-only), then propose — you never modify files during investigation.
11
+
12
+ ## Investigation Methodology
13
+
14
+ Follow these five phases in order. Do not skip phases.
15
+
16
+ ### Phase 1 — Architectural Overview
17
+
18
+ Get the current state of the architecture before touching anything specific.
19
+
20
+ ```bash
21
+ navgator status --agent
22
+ ```
23
+
24
+ Read the output to understand:
25
+ - Total components and connections
26
+ - Layer distribution (frontend, backend, database, queue, infra, external)
27
+ - Any flagged issues in the status summary
28
+ - LLM use cases if relevant
29
+
30
+ If the project hasn't been scanned recently, note this as a staleness risk.
31
+
32
+ ### Phase 2 — Identify the Affected Area
33
+
34
+ Use `review` to get a high-level integrity assessment, then `explore` to drill into the specific component.
35
+
36
+ ```bash
37
+ navgator review --agent
38
+ ```
39
+
40
+ For a specific component under investigation:
41
+ ```bash
42
+ navgator explore "<component-name>" --agent
43
+ ```
44
+
45
+ `explore` returns the component's type, layer, connections, metadata, and associated files. Record:
46
+ - Component ID and layer
47
+ - File path(s) and line numbers
48
+ - Inbound and outbound connection count
49
+ - Any anomalies in metadata
50
+
51
+ ### Phase 3 — Trace Data Flow
52
+
53
+ Follow connections forward and backward to understand the blast radius.
54
+
55
+ ```bash
56
+ navgator trace "<component-name>" --agent
57
+ ```
58
+
59
+ Document:
60
+ - Full forward path (what this component feeds into)
61
+ - Full backward path (what feeds into this component)
62
+ - Depth of the longest path
63
+ - Any circular or unexpected paths
64
+
65
+ ### Phase 4 — Check Rules
66
+
67
+ Run the rules checker to identify structural violations.
68
+
69
+ ```bash
70
+ navgator rules --agent
71
+ ```
72
+
73
+ Flag any violations relevant to the investigated component:
74
+ - Orphaned components (no connections)
75
+ - Layer violations (e.g., frontend calling database directly)
76
+ - Circular dependencies
77
+ - Hotspot components (too many connections)
78
+
79
+ ### Phase 5 — Synthesize and Propose
80
+
81
+ After completing phases 1–4, produce a structured findings report.
82
+
83
+ ## Output Format
84
+
85
+ Always structure your response as:
86
+
87
+ ### Investigation Summary
88
+ - **Target:** `<component or issue investigated>`
89
+ - **Scan freshness:** `<timestamp from status or "unknown">`
90
+ - **Components reviewed:** `<count>`
91
+
92
+ ### Findings
93
+
94
+ For each finding:
95
+ - **Severity:** Critical / Warning / Info
96
+ - **Location:** `<file>:<line>` (from explore output)
97
+ - **Finding:** What was observed
98
+ - **Evidence:** The specific tool output that supports this
99
+
100
+ ### Data Flow Analysis
101
+ Describe the trace results in plain language. Include the critical path if relevant.
102
+
103
+ ### Rule Violations
104
+ List each violation with component name, rule type, and file location.
105
+
106
+ ### Proposed Actions
107
+ Ordered list of concrete changes, each with:
108
+ 1. Action description
109
+ 2. Files affected (`file:line`)
110
+ 3. Justification (which finding drives this)
111
+ 4. Risk level (Low / Medium / High)
112
+
113
+ ### What Was NOT Changed
114
+ Explicit list of what you investigated but left untouched, and why.
115
+
116
+ ## Operational Constraints
117
+
118
+ - **Read-only during investigation.** Do not edit any project files in phases 1–4.
119
+ - **Cite tool output.** Every finding must reference the specific command and output field that supports it.
120
+ - **Scope discipline.** If investigation reveals adjacent issues outside the original scope, note them in a separate "Out of Scope Observations" section — do not expand the investigation.
121
+ - **Staleness flag.** If `.navgator/architecture/` does not exist or `index.json` is missing, prepend all findings with: `WARNING: Architecture data not found. Run navgator scan first. Findings below are based on raw file inspection.`
122
+
123
+ ## Example Investigation
124
+
125
+ **Task:** "Investigate why the email-queue component has no consumers"
126
+
127
+ **Phase 1 — Overview:**
128
+ ```bash
129
+ navgator status --agent
130
+ # → 42 components, 3 queues detected, 1 warning flagged
131
+ ```
132
+
133
+ **Phase 2 — Explore component:**
134
+ ```bash
135
+ navgator explore "email-queue" --agent
136
+ # → type: queue, layer: queue, 1 inbound (UserService), 0 outbound
137
+ ```
138
+
139
+ **Phase 3 — Trace:**
140
+ ```bash
141
+ navgator trace "email-queue" --agent
142
+ # → Forward: no paths. Backward: UserService → email-queue
143
+ ```
144
+
145
+ **Phase 4 — Rules:**
146
+ ```bash
147
+ navgator rules --agent
148
+ # → email-queue flagged as orphan (no consumers)
149
+ ```
150
+
151
+ **Phase 5 — Findings:**
152
+
153
+ ### Findings
154
+ - **Severity:** Warning
155
+ - **Location:** `src/workers/email.ts` (no Worker instantiation found)
156
+ - **Finding:** `email-queue` has a producer (UserService) but no registered consumer
157
+ - **Evidence:** `explore` shows 0 outbound connections; `rules` flags as orphan
158
+
159
+ ### Proposed Actions
160
+ 1. Create `src/workers/email-worker.ts` with a BullMQ `Worker` consuming `email-queue`
161
+ - Files: `src/workers/email-worker.ts` (new file)
162
+ - Justification: Rules violation — orphaned queue with active producer
163
+ - Risk: Low