@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.
- package/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +21 -7
- package/.claude-plugin/plugin.json +16 -11
- package/.codex-plugin/plugin.json +31 -0
- package/.mcp.json +8 -0
- package/CLAUDE.md +197 -23
- package/LICENSE +202 -21
- package/README.md +220 -33
- package/agents/architecture-advisor.md +6 -2
- package/agents/architecture-investigator.md +163 -0
- package/agents/architecture-planner.md +160 -0
- package/agents/external-resolver.md +97 -0
- package/dist/__tests__/agent-output.test.d.ts +5 -0
- package/dist/__tests__/agent-output.test.d.ts.map +1 -0
- package/dist/__tests__/agent-output.test.js +233 -0
- package/dist/__tests__/agent-output.test.js.map +1 -0
- package/dist/__tests__/architecture-insights-stack.test.d.ts +21 -0
- package/dist/__tests__/architecture-insights-stack.test.d.ts.map +1 -0
- package/dist/__tests__/architecture-insights-stack.test.js +86 -0
- package/dist/__tests__/architecture-insights-stack.test.js.map +1 -0
- package/dist/__tests__/architecture-insights.test.d.ts +2 -0
- package/dist/__tests__/architecture-insights.test.d.ts.map +1 -0
- package/dist/__tests__/architecture-insights.test.js +46 -0
- package/dist/__tests__/architecture-insights.test.js.map +1 -0
- package/dist/__tests__/audit-sampler.test.d.ts +10 -0
- package/dist/__tests__/audit-sampler.test.d.ts.map +1 -0
- package/dist/__tests__/audit-sampler.test.js +172 -0
- package/dist/__tests__/audit-sampler.test.js.map +1 -0
- package/dist/__tests__/audit-spc.test.d.ts +5 -0
- package/dist/__tests__/audit-spc.test.d.ts.map +1 -0
- package/dist/__tests__/audit-spc.test.js +94 -0
- package/dist/__tests__/audit-spc.test.js.map +1 -0
- package/dist/__tests__/audit-verifiers.test.d.ts +5 -0
- package/dist/__tests__/audit-verifiers.test.d.ts.map +1 -0
- package/dist/__tests__/audit-verifiers.test.js +248 -0
- package/dist/__tests__/audit-verifiers.test.js.map +1 -0
- package/dist/__tests__/auto-refresh.test.d.ts +12 -0
- package/dist/__tests__/auto-refresh.test.d.ts.map +1 -0
- package/dist/__tests__/auto-refresh.test.js +236 -0
- package/dist/__tests__/auto-refresh.test.js.map +1 -0
- package/dist/__tests__/bare-imports.test.d.ts +8 -0
- package/dist/__tests__/bare-imports.test.d.ts.map +1 -0
- package/dist/__tests__/bare-imports.test.js +176 -0
- package/dist/__tests__/bare-imports.test.js.map +1 -0
- package/dist/__tests__/classify.test.d.ts +5 -0
- package/dist/__tests__/classify.test.d.ts.map +1 -0
- package/dist/__tests__/classify.test.js +158 -0
- package/dist/__tests__/classify.test.js.map +1 -0
- package/dist/__tests__/cli-commands.test.d.ts +8 -0
- package/dist/__tests__/cli-commands.test.d.ts.map +1 -0
- package/dist/__tests__/cli-commands.test.js +207 -0
- package/dist/__tests__/cli-commands.test.js.map +1 -0
- package/dist/__tests__/consolidated-readers.test.d.ts +23 -0
- package/dist/__tests__/consolidated-readers.test.d.ts.map +1 -0
- package/dist/__tests__/consolidated-readers.test.js +200 -0
- package/dist/__tests__/consolidated-readers.test.js.map +1 -0
- package/dist/__tests__/coverage.test.d.ts +5 -0
- package/dist/__tests__/coverage.test.d.ts.map +1 -0
- package/dist/__tests__/coverage.test.js +120 -0
- package/dist/__tests__/coverage.test.js.map +1 -0
- package/dist/__tests__/deploy-scanner-runtime.test.d.ts +6 -0
- package/dist/__tests__/deploy-scanner-runtime.test.d.ts.map +1 -0
- package/dist/__tests__/deploy-scanner-runtime.test.js +168 -0
- package/dist/__tests__/deploy-scanner-runtime.test.js.map +1 -0
- package/dist/__tests__/env-scanner.test.d.ts +2 -0
- package/dist/__tests__/env-scanner.test.d.ts.map +1 -0
- package/dist/__tests__/env-scanner.test.js +191 -0
- package/dist/__tests__/env-scanner.test.js.map +1 -0
- package/dist/__tests__/freshness/cli-freshness.test.d.ts +2 -0
- package/dist/__tests__/freshness/cli-freshness.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/cli-freshness.test.js +26 -0
- package/dist/__tests__/freshness/cli-freshness.test.js.map +1 -0
- package/dist/__tests__/freshness/dirty-ledger.test.d.ts +2 -0
- package/dist/__tests__/freshness/dirty-ledger.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/dirty-ledger.test.js +39 -0
- package/dist/__tests__/freshness/dirty-ledger.test.js.map +1 -0
- package/dist/__tests__/freshness/drainer.test.d.ts +2 -0
- package/dist/__tests__/freshness/drainer.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/drainer.test.js +103 -0
- package/dist/__tests__/freshness/drainer.test.js.map +1 -0
- package/dist/__tests__/freshness/paths.test.d.ts +2 -0
- package/dist/__tests__/freshness/paths.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/paths.test.js +19 -0
- package/dist/__tests__/freshness/paths.test.js.map +1 -0
- package/dist/__tests__/freshness/scan-lock.test.d.ts +2 -0
- package/dist/__tests__/freshness/scan-lock.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/scan-lock.test.js +40 -0
- package/dist/__tests__/freshness/scan-lock.test.js.map +1 -0
- package/dist/__tests__/freshness/stamp.test.d.ts +2 -0
- package/dist/__tests__/freshness/stamp.test.d.ts.map +1 -0
- package/dist/__tests__/freshness/stamp.test.js +36 -0
- package/dist/__tests__/freshness/stamp.test.js.map +1 -0
- package/dist/__tests__/gitignore-safety.test.d.ts +2 -0
- package/dist/__tests__/gitignore-safety.test.d.ts.map +1 -0
- package/dist/__tests__/gitignore-safety.test.js +110 -0
- package/dist/__tests__/gitignore-safety.test.js.map +1 -0
- package/dist/__tests__/helpers.d.ts +37 -0
- package/dist/__tests__/helpers.d.ts.map +1 -0
- package/dist/__tests__/helpers.js +134 -0
- package/dist/__tests__/helpers.js.map +1 -0
- package/dist/__tests__/impact.test.d.ts +5 -0
- package/dist/__tests__/impact.test.d.ts.map +1 -0
- package/dist/__tests__/impact.test.js +221 -0
- package/dist/__tests__/impact.test.js.map +1 -0
- package/dist/__tests__/lessons-store.test.d.ts +8 -0
- package/dist/__tests__/lessons-store.test.d.ts.map +1 -0
- package/dist/__tests__/lessons-store.test.js +232 -0
- package/dist/__tests__/lessons-store.test.js.map +1 -0
- package/dist/__tests__/llm-dedup.test.d.ts +2 -0
- package/dist/__tests__/llm-dedup.test.d.ts.map +1 -0
- package/dist/__tests__/llm-dedup.test.js +155 -0
- package/dist/__tests__/llm-dedup.test.js.map +1 -0
- package/dist/__tests__/mjs-frontend-fetch.test.d.ts +19 -0
- package/dist/__tests__/mjs-frontend-fetch.test.d.ts.map +1 -0
- package/dist/__tests__/mjs-frontend-fetch.test.js +179 -0
- package/dist/__tests__/mjs-frontend-fetch.test.js.map +1 -0
- package/dist/__tests__/multi-stack-discovery.test.d.ts +11 -0
- package/dist/__tests__/multi-stack-discovery.test.d.ts.map +1 -0
- package/dist/__tests__/multi-stack-discovery.test.js +75 -0
- package/dist/__tests__/multi-stack-discovery.test.js.map +1 -0
- package/dist/__tests__/per-entity-files-gate.test.d.ts +22 -0
- package/dist/__tests__/per-entity-files-gate.test.d.ts.map +1 -0
- package/dist/__tests__/per-entity-files-gate.test.js +160 -0
- package/dist/__tests__/per-entity-files-gate.test.js.map +1 -0
- package/dist/__tests__/prisma-calls.test.d.ts +2 -0
- package/dist/__tests__/prisma-calls.test.d.ts.map +1 -0
- package/dist/__tests__/prisma-calls.test.js +125 -0
- package/dist/__tests__/prisma-calls.test.js.map +1 -0
- package/dist/__tests__/prisma-parser.test.d.ts +2 -0
- package/dist/__tests__/prisma-parser.test.d.ts.map +1 -0
- package/dist/__tests__/prisma-parser.test.js +252 -0
- package/dist/__tests__/prisma-parser.test.js.map +1 -0
- package/dist/__tests__/prompt-detector.test.d.ts +5 -0
- package/dist/__tests__/prompt-detector.test.d.ts.map +1 -0
- package/dist/__tests__/prompt-detector.test.js +75 -0
- package/dist/__tests__/prompt-detector.test.js.map +1 -0
- package/dist/__tests__/queue-scanner.test.d.ts +5 -0
- package/dist/__tests__/queue-scanner.test.d.ts.map +1 -0
- package/dist/__tests__/queue-scanner.test.js +85 -0
- package/dist/__tests__/queue-scanner.test.js.map +1 -0
- package/dist/__tests__/resolve.test.d.ts +5 -0
- package/dist/__tests__/resolve.test.d.ts.map +1 -0
- package/dist/__tests__/resolve.test.js +196 -0
- package/dist/__tests__/resolve.test.js.map +1 -0
- package/dist/__tests__/rules.test.d.ts +2 -0
- package/dist/__tests__/rules.test.d.ts.map +1 -0
- package/dist/__tests__/rules.test.js +343 -0
- package/dist/__tests__/rules.test.js.map +1 -0
- package/dist/__tests__/sandbox.test.d.ts +5 -0
- package/dist/__tests__/sandbox.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox.test.js +189 -0
- package/dist/__tests__/sandbox.test.js.map +1 -0
- package/dist/__tests__/scanner-audit.test.d.ts +9 -0
- package/dist/__tests__/scanner-audit.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-audit.test.js +64 -0
- package/dist/__tests__/scanner-audit.test.js.map +1 -0
- package/dist/__tests__/scanner-characterization.test.d.ts +16 -0
- package/dist/__tests__/scanner-characterization.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-characterization.test.js +167 -0
- package/dist/__tests__/scanner-characterization.test.js.map +1 -0
- package/dist/__tests__/scanner-incremental.test.d.ts +13 -0
- package/dist/__tests__/scanner-incremental.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-incremental.test.js +725 -0
- package/dist/__tests__/scanner-incremental.test.js.map +1 -0
- package/dist/__tests__/scanner-integration.test.d.ts +7 -0
- package/dist/__tests__/scanner-integration.test.d.ts.map +1 -0
- package/dist/__tests__/scanner-integration.test.js +211 -0
- package/dist/__tests__/scanner-integration.test.js.map +1 -0
- package/dist/__tests__/scip-new-catches.test.d.ts +19 -0
- package/dist/__tests__/scip-new-catches.test.d.ts.map +1 -0
- package/dist/__tests__/scip-new-catches.test.js +90 -0
- package/dist/__tests__/scip-new-catches.test.js.map +1 -0
- package/dist/__tests__/subgraph.test.d.ts +5 -0
- package/dist/__tests__/subgraph.test.d.ts.map +1 -0
- package/dist/__tests__/subgraph.test.js +145 -0
- package/dist/__tests__/subgraph.test.js.map +1 -0
- package/dist/__tests__/trace.test.d.ts +5 -0
- package/dist/__tests__/trace.test.d.ts.map +1 -0
- package/dist/__tests__/trace.test.js +221 -0
- package/dist/__tests__/trace.test.js.map +1 -0
- package/dist/agent-output.d.ts +16 -0
- package/dist/agent-output.d.ts.map +1 -0
- package/dist/agent-output.js +142 -0
- package/dist/agent-output.js.map +1 -0
- package/dist/architecture-insights.d.ts +17 -0
- package/dist/architecture-insights.d.ts.map +1 -0
- package/dist/architecture-insights.js +178 -0
- package/dist/architecture-insights.js.map +1 -0
- package/dist/audit/index.d.ts +69 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +255 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/sampler.d.ts +98 -0
- package/dist/audit/sampler.d.ts.map +1 -0
- package/dist/audit/sampler.js +298 -0
- package/dist/audit/sampler.js.map +1 -0
- package/dist/audit/spc.d.ts +62 -0
- package/dist/audit/spc.d.ts.map +1 -0
- package/dist/audit/spc.js +81 -0
- package/dist/audit/spc.js.map +1 -0
- package/dist/audit/verifiers.d.ts +81 -0
- package/dist/audit/verifiers.d.ts.map +1 -0
- package/dist/audit/verifiers.js +366 -0
- package/dist/audit/verifiers.js.map +1 -0
- package/dist/classify.d.ts +19 -0
- package/dist/classify.d.ts.map +1 -0
- package/dist/classify.js +124 -0
- package/dist/classify.js.map +1 -0
- package/dist/cli/commands/connections.d.ts +3 -0
- package/dist/cli/commands/connections.d.ts.map +1 -0
- package/dist/cli/commands/connections.js +125 -0
- package/dist/cli/commands/connections.js.map +1 -0
- package/dist/cli/commands/coverage.d.ts +3 -0
- package/dist/cli/commands/coverage.d.ts.map +1 -0
- package/dist/cli/commands/coverage.js +94 -0
- package/dist/cli/commands/coverage.js.map +1 -0
- package/dist/cli/commands/dead.d.ts +3 -0
- package/dist/cli/commands/dead.d.ts.map +1 -0
- package/dist/cli/commands/dead.js +80 -0
- package/dist/cli/commands/dead.js.map +1 -0
- package/dist/cli/commands/diagram.d.ts +3 -0
- package/dist/cli/commands/diagram.d.ts.map +1 -0
- package/dist/cli/commands/diagram.js +102 -0
- package/dist/cli/commands/diagram.js.map +1 -0
- package/dist/cli/commands/find.d.ts +3 -0
- package/dist/cli/commands/find.d.ts.map +1 -0
- package/dist/cli/commands/find.js +128 -0
- package/dist/cli/commands/find.js.map +1 -0
- package/dist/cli/commands/freshness.d.ts +20 -0
- package/dist/cli/commands/freshness.d.ts.map +1 -0
- package/dist/cli/commands/freshness.js +90 -0
- package/dist/cli/commands/freshness.js.map +1 -0
- package/dist/cli/commands/helpers.d.ts +7 -0
- package/dist/cli/commands/helpers.d.ts.map +1 -0
- package/dist/cli/commands/helpers.js +30 -0
- package/dist/cli/commands/helpers.js.map +1 -0
- package/dist/cli/commands/impact.d.ts +3 -0
- package/dist/cli/commands/impact.d.ts.map +1 -0
- package/dist/cli/commands/impact.js +172 -0
- package/dist/cli/commands/impact.js.map +1 -0
- package/dist/cli/commands/lessons.d.ts +6 -0
- package/dist/cli/commands/lessons.d.ts.map +1 -0
- package/dist/cli/commands/lessons.js +279 -0
- package/dist/cli/commands/lessons.js.map +1 -0
- package/dist/cli/commands/list.d.ts +3 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +91 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/llm-map.d.ts +3 -0
- package/dist/cli/commands/llm-map.d.ts.map +1 -0
- package/dist/cli/commands/llm-map.js +121 -0
- package/dist/cli/commands/llm-map.js.map +1 -0
- package/dist/cli/commands/misc.d.ts +17 -0
- package/dist/cli/commands/misc.d.ts.map +1 -0
- package/dist/cli/commands/misc.js +495 -0
- package/dist/cli/commands/misc.js.map +1 -0
- package/dist/cli/commands/prompts.d.ts +3 -0
- package/dist/cli/commands/prompts.d.ts.map +1 -0
- package/dist/cli/commands/prompts.js +74 -0
- package/dist/cli/commands/prompts.js.map +1 -0
- package/dist/cli/commands/rules.d.ts +3 -0
- package/dist/cli/commands/rules.d.ts.map +1 -0
- package/dist/cli/commands/rules.js +61 -0
- package/dist/cli/commands/rules.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +3 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +177 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/schema.d.ts +3 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +126 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +340 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/subgraph.d.ts +3 -0
- package/dist/cli/commands/subgraph.d.ts.map +1 -0
- package/dist/cli/commands/subgraph.js +55 -0
- package/dist/cli/commands/subgraph.js.map +1 -0
- package/dist/cli/commands/temporal.d.ts +3 -0
- package/dist/cli/commands/temporal.d.ts.map +1 -0
- package/dist/cli/commands/temporal.js +112 -0
- package/dist/cli/commands/temporal.js.map +1 -0
- package/dist/cli/commands/trace.d.ts +3 -0
- package/dist/cli/commands/trace.d.ts.map +1 -0
- package/dist/cli/commands/trace.js +65 -0
- package/dist/cli/commands/trace.js.map +1 -0
- package/dist/cli/index.js +88 -825
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts +13 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +106 -12
- package/dist/config.js.map +1 -1
- package/dist/coverage.d.ts +37 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +177 -0
- package/dist/coverage.js.map +1 -0
- package/dist/diagram.d.ts.map +1 -1
- package/dist/diagram.js +41 -0
- package/dist/diagram.js.map +1 -1
- package/dist/diff.d.ts +57 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +527 -0
- package/dist/diff.js.map +1 -0
- package/dist/enrich/cache.d.ts +41 -0
- package/dist/enrich/cache.d.ts.map +1 -0
- package/dist/enrich/cache.js +97 -0
- package/dist/enrich/cache.js.map +1 -0
- package/dist/enrich/external-enrichment.types.d.ts +91 -0
- package/dist/enrich/external-enrichment.types.d.ts.map +1 -0
- package/dist/enrich/external-enrichment.types.js +38 -0
- package/dist/enrich/external-enrichment.types.js.map +1 -0
- package/dist/enrich/external-resolver.d.ts +95 -0
- package/dist/enrich/external-resolver.d.ts.map +1 -0
- package/dist/enrich/external-resolver.js +222 -0
- package/dist/enrich/external-resolver.js.map +1 -0
- package/dist/enrich/fetchers.d.ts +30 -0
- package/dist/enrich/fetchers.d.ts.map +1 -0
- package/dist/enrich/fetchers.js +89 -0
- package/dist/enrich/fetchers.js.map +1 -0
- package/dist/file-resolve.d.ts +35 -0
- package/dist/file-resolve.d.ts.map +1 -0
- package/dist/file-resolve.js +159 -0
- package/dist/file-resolve.js.map +1 -0
- package/dist/freshness/dirty-ledger.d.ts +7 -0
- package/dist/freshness/dirty-ledger.d.ts.map +1 -0
- package/dist/freshness/dirty-ledger.js +56 -0
- package/dist/freshness/dirty-ledger.js.map +1 -0
- package/dist/freshness/drainer.d.ts +38 -0
- package/dist/freshness/drainer.d.ts.map +1 -0
- package/dist/freshness/drainer.js +88 -0
- package/dist/freshness/drainer.js.map +1 -0
- package/dist/freshness/paths.d.ts +9 -0
- package/dist/freshness/paths.d.ts.map +1 -0
- package/dist/freshness/paths.js +24 -0
- package/dist/freshness/paths.js.map +1 -0
- package/dist/freshness/scan-lock.d.ts +8 -0
- package/dist/freshness/scan-lock.d.ts.map +1 -0
- package/dist/freshness/scan-lock.js +68 -0
- package/dist/freshness/scan-lock.js.map +1 -0
- package/dist/freshness/stamp.d.ts +25 -0
- package/dist/freshness/stamp.d.ts.map +1 -0
- package/dist/freshness/stamp.js +50 -0
- package/dist/freshness/stamp.js.map +1 -0
- package/dist/git.d.ts +12 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +42 -0
- package/dist/git.js.map +1 -0
- package/dist/gitignore-safety.d.ts +41 -0
- package/dist/gitignore-safety.d.ts.map +1 -0
- package/dist/gitignore-safety.js +107 -0
- package/dist/gitignore-safety.js.map +1 -0
- package/dist/impact.d.ts +20 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +89 -0
- package/dist/impact.js.map +1 -0
- package/dist/index.d.ts +24 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/lessons-store.d.ts +93 -0
- package/dist/lessons-store.d.ts.map +1 -0
- package/dist/lessons-store.js +265 -0
- package/dist/lessons-store.js.map +1 -0
- package/dist/llm-dedup.d.ts +40 -0
- package/dist/llm-dedup.d.ts.map +1 -0
- package/dist/llm-dedup.js +373 -0
- package/dist/llm-dedup.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +87 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +198 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +744 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/metrics/pagerank-louvain.d.ts +44 -0
- package/dist/metrics/pagerank-louvain.d.ts.map +1 -0
- package/dist/metrics/pagerank-louvain.js +128 -0
- package/dist/metrics/pagerank-louvain.js.map +1 -0
- package/dist/parsers/scip-runner.d.ts +63 -0
- package/dist/parsers/scip-runner.d.ts.map +1 -0
- package/dist/parsers/scip-runner.js +179 -0
- package/dist/parsers/scip-runner.js.map +1 -0
- package/dist/projects.d.ts +54 -0
- package/dist/projects.d.ts.map +1 -0
- package/dist/projects.js +153 -0
- package/dist/projects.js.map +1 -0
- package/dist/resolve.d.ts +22 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +128 -0
- package/dist/resolve.js.map +1 -0
- package/dist/rules.d.ts +36 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +484 -0
- package/dist/rules.js.map +1 -0
- package/dist/sandbox.d.ts +33 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +91 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/scan-lock.d.ts +37 -0
- package/dist/scan-lock.d.ts.map +1 -0
- package/dist/scan-lock.js +145 -0
- package/dist/scan-lock.js.map +1 -0
- package/dist/scanner.d.ts +126 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +1711 -235
- package/dist/scanner.js.map +1 -1
- package/dist/scanners/connections/ast-scanner.d.ts +9 -2
- package/dist/scanners/connections/ast-scanner.d.ts.map +1 -1
- package/dist/scanners/connections/ast-scanner.js +19 -4
- package/dist/scanners/connections/ast-scanner.js.map +1 -1
- package/dist/scanners/connections/import-scanner.d.ts +27 -0
- package/dist/scanners/connections/import-scanner.d.ts.map +1 -0
- package/dist/scanners/connections/import-scanner.js +537 -0
- package/dist/scanners/connections/import-scanner.js.map +1 -0
- package/dist/scanners/connections/llm-call-tracer.d.ts +1 -1
- package/dist/scanners/connections/llm-call-tracer.d.ts.map +1 -1
- package/dist/scanners/connections/llm-call-tracer.js +6 -2
- package/dist/scanners/connections/llm-call-tracer.js.map +1 -1
- package/dist/scanners/connections/prisma-calls.d.ts +11 -0
- package/dist/scanners/connections/prisma-calls.d.ts.map +1 -0
- package/dist/scanners/connections/prisma-calls.js +237 -0
- package/dist/scanners/connections/prisma-calls.js.map +1 -0
- package/dist/scanners/connections/service-calls.d.ts +1 -1
- package/dist/scanners/connections/service-calls.d.ts.map +1 -1
- package/dist/scanners/connections/service-calls.js +35 -3
- package/dist/scanners/connections/service-calls.js.map +1 -1
- package/dist/scanners/infrastructure/cron-scanner.d.ts +14 -0
- package/dist/scanners/infrastructure/cron-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/cron-scanner.js +383 -0
- package/dist/scanners/infrastructure/cron-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/deploy-scanner.d.ts +11 -0
- package/dist/scanners/infrastructure/deploy-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/deploy-scanner.js +508 -0
- package/dist/scanners/infrastructure/deploy-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/env-scanner.d.ts +55 -0
- package/dist/scanners/infrastructure/env-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/env-scanner.js +431 -0
- package/dist/scanners/infrastructure/env-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.d.ts +52 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.d.ts.map +1 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.js +480 -0
- package/dist/scanners/infrastructure/field-usage-analyzer.js.map +1 -0
- package/dist/scanners/infrastructure/prisma-parser.d.ts +21 -0
- package/dist/scanners/infrastructure/prisma-parser.d.ts.map +1 -0
- package/dist/scanners/infrastructure/prisma-parser.js +58 -0
- package/dist/scanners/infrastructure/prisma-parser.js.map +1 -0
- package/dist/scanners/infrastructure/prisma-scanner.d.ts +30 -0
- package/dist/scanners/infrastructure/prisma-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/prisma-scanner.js +329 -0
- package/dist/scanners/infrastructure/prisma-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/queue-scanner.d.ts +14 -0
- package/dist/scanners/infrastructure/queue-scanner.d.ts.map +1 -0
- package/dist/scanners/infrastructure/queue-scanner.js +455 -0
- package/dist/scanners/infrastructure/queue-scanner.js.map +1 -0
- package/dist/scanners/infrastructure/typespec-validator.d.ts +50 -0
- package/dist/scanners/infrastructure/typespec-validator.d.ts.map +1 -0
- package/dist/scanners/infrastructure/typespec-validator.js +407 -0
- package/dist/scanners/infrastructure/typespec-validator.js.map +1 -0
- package/dist/scanners/packages/swift.d.ts +5 -0
- package/dist/scanners/packages/swift.d.ts.map +1 -1
- package/dist/scanners/packages/swift.js +23 -0
- package/dist/scanners/packages/swift.js.map +1 -1
- package/dist/scanners/prompts/detector.d.ts +13 -2
- package/dist/scanners/prompts/detector.d.ts.map +1 -1
- package/dist/scanners/prompts/detector.js +97 -46
- package/dist/scanners/prompts/detector.js.map +1 -1
- package/dist/scanners/prompts/index.d.ts +1 -1
- package/dist/scanners/prompts/index.d.ts.map +1 -1
- package/dist/scanners/prompts/index.js +2 -2
- package/dist/scanners/prompts/index.js.map +1 -1
- package/dist/scanners/swift/code-scanner.d.ts +1 -1
- package/dist/scanners/swift/code-scanner.d.ts.map +1 -1
- package/dist/scanners/swift/code-scanner.js +216 -2
- package/dist/scanners/swift/code-scanner.js.map +1 -1
- package/dist/scanners/swift/swiftui-scanner.d.ts +45 -0
- package/dist/scanners/swift/swiftui-scanner.d.ts.map +1 -0
- package/dist/scanners/swift/swiftui-scanner.js +606 -0
- package/dist/scanners/swift/swiftui-scanner.js.map +1 -0
- package/dist/scanners/xcode/pbxproj-parser.d.ts +32 -0
- package/dist/scanners/xcode/pbxproj-parser.d.ts.map +1 -0
- package/dist/scanners/xcode/pbxproj-parser.js +407 -0
- package/dist/scanners/xcode/pbxproj-parser.js.map +1 -0
- package/dist/scanners/xcode/storyboard-scanner.d.ts +13 -0
- package/dist/scanners/xcode/storyboard-scanner.d.ts.map +1 -0
- package/dist/scanners/xcode/storyboard-scanner.js +236 -0
- package/dist/scanners/xcode/storyboard-scanner.js.map +1 -0
- package/dist/storage/markdown-view.d.ts +49 -0
- package/dist/storage/markdown-view.d.ts.map +1 -0
- package/dist/storage/markdown-view.js +233 -0
- package/dist/storage/markdown-view.js.map +1 -0
- package/dist/storage.d.ts +225 -9
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +945 -86
- package/dist/storage.js.map +1 -1
- package/dist/subgraph.d.ts +30 -0
- package/dist/subgraph.d.ts.map +1 -0
- package/dist/subgraph.js +106 -0
- package/dist/subgraph.js.map +1 -0
- package/dist/temporal/git-store.d.ts +65 -0
- package/dist/temporal/git-store.d.ts.map +1 -0
- package/dist/temporal/git-store.js +166 -0
- package/dist/temporal/git-store.js.map +1 -0
- package/dist/trace.d.ts +38 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +292 -0
- package/dist/trace.js.map +1 -0
- package/dist/types.d.ts +322 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +53 -0
- package/dist/types.js.map +1 -1
- package/hooks/hooks.json +1 -55
- package/hooks/mark-dirty.sh +20 -0
- package/hooks/post-bash-suggest.sh +30 -0
- package/hooks/post-edit-suggest.sh +29 -0
- package/hooks/pre-edit-warn.sh +28 -0
- package/hooks/session-start.sh +19 -0
- package/hooks/stop-suggest.sh +49 -0
- package/package.json +30 -11
- package/scripts/install-codex-plugin.sh +119 -0
- package/scripts/install-plugin.sh +29 -24
- package/skills/architecture-export/SKILL.md +79 -0
- package/skills/architecture-scan/SKILL.md +64 -0
- package/skills/code-review/SKILL.md +368 -0
- package/skills/impact-analysis/SKILL.md +80 -0
- package/skills/infrastructure-scanning.md +42 -0
- package/skills/navgator-setup/SKILL.md +108 -0
- package/web/.next/standalone/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/web/.next/app-path-routes-manifest.json +3 -0
- package/web/.next/standalone/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/web/.next/required-server-files.json +4 -4
- package/web/.next/standalone/web/.next/routes-manifest.json +18 -0
- package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found/page/next-font-manifest.json +2 -2
- package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/api/prompts/route.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/api/rules/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route/build-manifest.json +11 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route.js +6 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route.js.map +5 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route.js.nft.json +1 -0
- package/web/.next/standalone/web/.next/server/app/api/rules/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route/build-manifest.json +11 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js +6 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.map +5 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route.js.nft.json +1 -0
- package/web/.next/standalone/web/.next/server/app/api/subgraph/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route/build-manifest.json +11 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route.js +6 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route.js.map +5 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route.js.nft.json +1 -0
- package/web/.next/standalone/web/.next/server/app/api/trace/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/web/.next/server/app/index.rsc +6 -6
- package/web/.next/standalone/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +6 -6
- package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +5 -5
- package/web/.next/standalone/web/.next/server/app/page/next-font-manifest.json +2 -2
- package/web/.next/standalone/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app-paths-manifest.json +3 -0
- package/web/.next/standalone/web/.next/server/chunks/2374f_next_dist_esm_build_templates_app-route_0bb4e66a.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__006b837d._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__0426efe8._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__2e09fec9._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__38d0390f._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__594bcf20._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__b888fadf._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__cd5f36ce._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__ee6fc95f._.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/[root-of-the-server]__fa2ec862._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/web_171de0df._.js +9 -4
- package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_rules_route_actions_3de01bd5.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_subgraph_route_actions_d8b5a63f.js +3 -0
- package/web/.next/standalone/web/.next/server/chunks/web__next-internal_server_app_api_trace_route_actions_b0703ae2.js +3 -0
- package/web/.next/standalone/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/next-font-manifest.json +4 -4
- package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
- package/web/.next/standalone/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
- package/web/.next/standalone/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
- package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
- package/web/.next/standalone/web/app/api/components/route.ts +1 -1
- package/web/.next/standalone/web/app/api/connections/route.ts +3 -1
- package/web/.next/standalone/web/app/api/graph/route.ts +3 -3
- package/web/.next/standalone/web/app/api/projects/route.ts +1 -1
- package/web/.next/standalone/web/app/api/prompts/route.ts +2 -2
- package/web/.next/standalone/web/app/api/rules/route.ts +213 -0
- package/web/.next/standalone/web/app/api/settings/route.ts +2 -2
- package/web/.next/standalone/web/app/api/status/route.ts +1 -1
- package/web/.next/standalone/web/app/api/subgraph/route.ts +267 -0
- package/web/.next/standalone/web/app/api/trace/route.ts +321 -0
- package/web/.next/standalone/web/app/page.tsx +9 -1
- package/web/.next/standalone/web/components/connections-panel.tsx +23 -6
- package/web/.next/standalone/web/components/coverage-panel.tsx +309 -0
- package/web/.next/standalone/web/components/rules-panel.tsx +156 -0
- package/web/.next/standalone/web/components/sidebar.tsx +8 -0
- package/web/.next/standalone/web/components/status-overview.tsx +24 -1
- package/web/.next/standalone/web/components/subgraph-panel.tsx +382 -0
- package/web/.next/standalone/web/components/trace-panel.tsx +325 -0
- package/web/.next/standalone/web/lib/hooks/index.ts +3 -0
- package/web/.next/standalone/web/lib/hooks/use-coverage.ts +68 -0
- package/web/.next/standalone/web/lib/hooks/use-subgraph.ts +85 -0
- package/web/.next/standalone/web/lib/hooks/use-trace.ts +84 -0
- package/web/.next/standalone/web/lib/types.ts +108 -0
- package/web/.next/standalone/web/package-lock.json +218 -0
- package/web/.next/standalone/web/package.json +4 -2
- package/web/.next/standalone/web/server.js +1 -1
- package/web/.next/static/chunks/22a09ecf6ba35cfd.js +17 -0
- package/web/.next/static/chunks/9857ba86ce4e82d8.css +2 -0
- package/web/.next/static/chunks/f899547f99ef4b76.css +1 -0
- package/web/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
- package/web/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
- package/web/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
- package/web/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
- package/web/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
- package/web/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
- package/web/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
- package/web/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
- package/web/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
- package/web/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
- package/web/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
- package/skills/check/SKILL.md +0 -64
- package/skills/connections/SKILL.md +0 -54
- package/skills/diagram/SKILL.md +0 -64
- package/skills/export/SKILL.md +0 -49
- package/skills/impact/SKILL.md +0 -58
- package/skills/install/SKILL.md +0 -94
- package/skills/scan/SKILL.md +0 -75
- package/skills/status/SKILL.md +0 -37
- package/skills/ui/SKILL.md +0 -43
- package/skills/update/SKILL.md +0 -43
- package/web/.next/standalone/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
- package/web/.next/standalone/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
- package/web/.next/standalone/web/.next/static/chunks/cb3513192b63e480.js +0 -12
- package/web/.next/standalone/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/web/.next/standalone/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- package/web/.next/static/chunks/8a80e7184ad3a13f.css +0 -2
- package/web/.next/static/chunks/c056475f5f4424b6.css +0 -1
- package/web/.next/static/chunks/cb3513192b63e480.js +0 -12
- package/web/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/web/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/web/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/web/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/web/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/web/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_ssgManifest.js +0 -0
- /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_buildManifest.js +0 -0
- /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → qZVrJ4kmwXfw4Ikgj1oXR}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{P-ZMQO7_Wnj487ks3guqa → 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
|
|
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,7 +30,7 @@ npx @tyroneross/navgator scan
|
|
|
29
30
|
|
|
30
31
|
### As a Claude Code Plugin
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
Install the Claude surface directly from this repo:
|
|
33
34
|
|
|
34
35
|
```bash
|
|
35
36
|
# Install for all projects (user scope)
|
|
@@ -42,10 +43,29 @@ bash scripts/install-plugin.sh --project
|
|
|
42
43
|
Or link manually:
|
|
43
44
|
|
|
44
45
|
```bash
|
|
45
|
-
ln -s $(npm root -g)/@tyroneross/navgator ~/.claude/plugins/
|
|
46
|
+
ln -s $(npm root -g)/@tyroneross/navgator ~/.claude/plugins/navgator
|
|
46
47
|
```
|
|
47
48
|
|
|
48
|
-
Restart Claude Code after installing. All `/
|
|
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
|
|
61
|
+
```
|
|
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.
|
|
49
69
|
|
|
50
70
|
## Quick Start
|
|
51
71
|
|
|
@@ -55,7 +75,7 @@ Restart Claude Code after installing. All `/gator:*` commands will be available.
|
|
|
55
75
|
navgator setup
|
|
56
76
|
```
|
|
57
77
|
|
|
58
|
-
This runs the initial scan and
|
|
78
|
+
This runs the initial scan and then you can install the Claude or Codex surface explicitly from the scripts above.
|
|
59
79
|
|
|
60
80
|
### 2. Scan Your Project
|
|
61
81
|
|
|
@@ -68,6 +88,9 @@ navgator scan --quick
|
|
|
68
88
|
|
|
69
89
|
# With AI prompt detection
|
|
70
90
|
navgator scan --prompts --verbose
|
|
91
|
+
|
|
92
|
+
# With infrastructure analysis
|
|
93
|
+
navgator scan --field-usage --typespec
|
|
71
94
|
```
|
|
72
95
|
|
|
73
96
|
### 3. Check Status
|
|
@@ -95,6 +118,12 @@ CONNECTIONS BY TYPE:
|
|
|
95
118
|
service-call: 12
|
|
96
119
|
api-calls-db: 8
|
|
97
120
|
frontend-calls-api: 3
|
|
121
|
+
|
|
122
|
+
INFRASTRUCTURE:
|
|
123
|
+
DB models: 12
|
|
124
|
+
Env vars: 34
|
|
125
|
+
Queues: 3
|
|
126
|
+
Cron jobs: 2
|
|
98
127
|
```
|
|
99
128
|
|
|
100
129
|
### 4. Analyze Impact
|
|
@@ -171,32 +200,28 @@ navgator diagram --output architecture.md --markdown
|
|
|
171
200
|
|
|
172
201
|
## Claude Code Slash Commands
|
|
173
202
|
|
|
174
|
-
When installed as a Claude Code plugin, all commands are available as `/
|
|
203
|
+
When installed as a Claude Code plugin, all commands are available as `/navgator:*` slash commands:
|
|
175
204
|
|
|
176
205
|
| Command | Description |
|
|
177
206
|
|---------|-------------|
|
|
178
|
-
| `/
|
|
179
|
-
| `/
|
|
180
|
-
| `/
|
|
181
|
-
| `/
|
|
182
|
-
| `/
|
|
183
|
-
| `/
|
|
184
|
-
| `/
|
|
185
|
-
| `/
|
|
186
|
-
| `/
|
|
187
|
-
| `/
|
|
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 |
|
|
188
221
|
|
|
189
222
|
### Hooks
|
|
190
223
|
|
|
191
|
-
NavGator
|
|
192
|
-
|
|
193
|
-
**SessionStart**: Checks if architecture data is stale (>24h) and suggests running `/gator:scan`.
|
|
194
|
-
|
|
195
|
-
**PreToolUse (Edit/Write)**: Before modifying architecture-critical files, reminds to check impact with `/gator:impact`.
|
|
196
|
-
|
|
197
|
-
**PostToolUse (Bash)**: Detects package manager commands (`npm install`, `pip install`, etc.) and reminds to update architecture with `/gator:scan`.
|
|
198
|
-
|
|
199
|
-
**Stop**: After significant changes, reminds to rescan.
|
|
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.
|
|
200
225
|
|
|
201
226
|
## CLI Reference
|
|
202
227
|
|
|
@@ -210,8 +235,78 @@ Scan project and update architecture tracking.
|
|
|
210
235
|
| `-c, --connections` | Focus on connection detection |
|
|
211
236
|
| `-p, --prompts` | Enhanced AI prompt scanning with full content |
|
|
212
237
|
| `-v, --verbose` | Detailed output |
|
|
213
|
-
| `--
|
|
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) |
|
|
214
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
|
+
```
|
|
215
310
|
|
|
216
311
|
### `navgator status`
|
|
217
312
|
|
|
@@ -275,6 +370,53 @@ Scan and analyze AI prompts in the codebase.
|
|
|
275
370
|
| `--json` | Output as JSON |
|
|
276
371
|
| `--detail <name>` | Show detailed view of specific prompt |
|
|
277
372
|
|
|
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
|
|
383
|
+
```
|
|
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
|
+
|
|
278
420
|
## What Gets Detected
|
|
279
421
|
|
|
280
422
|
### Components
|
|
@@ -299,15 +441,35 @@ Scan and analyze AI prompts in the codebase.
|
|
|
299
441
|
| `queue-triggers` | Queue job → Handler function |
|
|
300
442
|
| `prompt-location` | AI prompt definition location |
|
|
301
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.
|
|
302
464
|
|
|
303
465
|
## Storage
|
|
304
466
|
|
|
305
|
-
Data is stored in `.
|
|
467
|
+
Data is stored in `.navgator/architecture/` within your project:
|
|
306
468
|
|
|
307
469
|
```
|
|
308
|
-
.
|
|
309
|
-
├──
|
|
310
|
-
├──
|
|
470
|
+
.navgator/architecture/
|
|
471
|
+
├── NAVSUMMARY.md ← Hot context (read first)
|
|
472
|
+
├── NAVSUMMARY_FULL.md ← Full version if compressed
|
|
311
473
|
├── components/ # Individual component JSON files
|
|
312
474
|
│ ├── COMP_npm_react_a1b2.json
|
|
313
475
|
│ └── COMP_service_stripe_c3d4.json
|
|
@@ -376,7 +538,7 @@ Without `ts-morph`, NavGator uses regex-based scanning which is faster but may m
|
|
|
376
538
|
| Variable | Description | Default |
|
|
377
539
|
|----------|-------------|---------|
|
|
378
540
|
| `NAVGATOR_MODE` | Storage mode: `local` or `shared` | `local` |
|
|
379
|
-
| `NAVGATOR_PATH` | Custom storage path | `.
|
|
541
|
+
| `NAVGATOR_PATH` | Custom storage path | `.navgator/architecture` |
|
|
380
542
|
| `NAVGATOR_AUTO_SCAN` | Auto-scan on session start | `false` |
|
|
381
543
|
| `NAVGATOR_HEALTH_CHECK` | Enable health checks | `false` |
|
|
382
544
|
| `NAVGATOR_SCAN_DEPTH` | `shallow` or `deep` | `shallow` |
|
|
@@ -459,3 +621,28 @@ Contributions welcome! Please read the contributing guidelines first.
|
|
|
459
621
|
- [GitHub Repository](https://github.com/tyroneross/navgator)
|
|
460
622
|
- [Issue Tracker](https://github.com/tyroneross/navgator/issues)
|
|
461
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 .
|
|
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 .
|
|
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
|