projscan 4.0.0 → 4.2.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 (39) hide show
  1. package/README.md +480 -24
  2. package/dist/cli/commands/route.js +1 -0
  3. package/dist/cli/commands/route.js.map +1 -1
  4. package/dist/cli/commands/semanticGraph.js +27 -0
  5. package/dist/cli/commands/semanticGraph.js.map +1 -1
  6. package/dist/cli/commands/start.js +1095 -2
  7. package/dist/cli/commands/start.js.map +1 -1
  8. package/dist/core/dependencyAnalyzer.js +172 -0
  9. package/dist/core/dependencyAnalyzer.js.map +1 -1
  10. package/dist/core/intentRouter.d.ts +8 -1
  11. package/dist/core/intentRouter.js +2186 -22
  12. package/dist/core/intentRouter.js.map +1 -1
  13. package/dist/core/issueEngine.js +6 -7
  14. package/dist/core/issueEngine.js.map +1 -1
  15. package/dist/core/onboarding.d.ts +2 -2
  16. package/dist/core/onboarding.js +29 -5
  17. package/dist/core/onboarding.js.map +1 -1
  18. package/dist/core/start.d.ts +1 -0
  19. package/dist/core/start.js +3047 -10
  20. package/dist/core/start.js.map +1 -1
  21. package/dist/mcp/server.d.ts +1 -1
  22. package/dist/mcp/server.js +14 -5
  23. package/dist/mcp/server.js.map +1 -1
  24. package/dist/mcp/tools/start.js +6 -1
  25. package/dist/mcp/tools/start.js.map +1 -1
  26. package/dist/projscan-sbom.cdx.json +6 -6
  27. package/dist/reporters/consoleReporter.js +19 -0
  28. package/dist/reporters/consoleReporter.js.map +1 -1
  29. package/dist/reporters/markdownReporter.js +19 -0
  30. package/dist/reporters/markdownReporter.js.map +1 -1
  31. package/dist/tool-manifest.json +6 -2
  32. package/dist/types.d.ts +275 -0
  33. package/docs/GUIDE.md +1567 -0
  34. package/docs/ROADMAP.md +219 -0
  35. package/docs/demos/projscan-4-1-demo.html +677 -0
  36. package/docs/projscan-mission-control.png +0 -0
  37. package/docs/projscan-proof-router.png +0 -0
  38. package/package.json +8 -1
  39. package/scripts/capture-readme-assets.mjs +60 -0
package/README.md CHANGED
@@ -9,9 +9,9 @@
9
9
 
10
10
  **Agent-first code intelligence.** An MCP server that lets AI coding agents (Claude Code, Codex, Cursor, Gemini, Windsurf, Cline, Continue, Zed — any MCP-aware client) query your codebase — with a CLI for humans and a local plugin layer for team-specific policy and reporting.
11
11
 
12
- [AI Agent Quick Start](#ai-agent-integration-mcp) · [CLI Quick Start](#quick-start) · [Commands](#commands) · [Full Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/GUIDE.md) · [Roadmap](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/ROADMAP.md)
12
+ [AI Agent Quick Start](#ai-agent-integration-mcp) · [CLI Quick Start](#quick-start) · [Commands](#commands) · [Full Guide](docs/GUIDE.md) · [Roadmap](docs/ROADMAP.md)
13
13
 
14
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-reporter-plugin.png" alt="projscan reporter plugin running in a macOS-style terminal window with a team health summary" width="700">
14
+ <img src="docs/projscan-mission-control.png" alt="projscan Mission Control routing a developer intent into ready actions, done criteria, and proof commands" width="760">
15
15
 
16
16
  </div>
17
17
 
@@ -33,7 +33,155 @@ The local plugin platform lets teams add project-specific findings and render `d
33
33
  npx projscan
34
34
  ```
35
35
 
36
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-reporter-plugin.gif" alt="projscan doctor rendered through a local reporter plugin in a macOS-style terminal window" width="700">
36
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/projscan-reporter-plugin.gif" alt="projscan doctor rendered through a local reporter plugin in a macOS-style terminal window" width="700">
37
+
38
+ ## What's New in 4.2.0
39
+
40
+ 4.2.0 turns Mission Control into a runnable handoff system: tell projscan the work, then get the next command, MCP call, proof queue, review gate, and saved bundle an agent can resume.
41
+
42
+ - **Execution plans with a cursor.** `projscan start --intent "<goal>"` now returns ordered phases, blocked inputs, follow-ups, done criteria, and a current cursor so agents know what to run next.
43
+ - **Copyable shortcuts for humans and MCP clients.** Use `--next-command`, `--next-tool-call`, `--proof-commands`, `--checklist`, `--resume-json`, `--handoff-json`, `--task-card`, and `--runbook` when you need one surface instead of the full report.
44
+ - **Saved mission bundles.** `--save-mission <dir>` writes a runnable bundle with `mission.sh`, `status.sh`, `review.sh`, quick commands, manifest metadata, prompts, JSON handoff files, proof logs, run reports, and `summary.json`.
45
+ - **Stop-and-review gates.** Mission Control now carries review policy, worktree evidence, proof queues, done criteria, reviewer decisions, and copyable reply text so agents stop before another slice, release, publish, deploy, push, merge, or version bump.
46
+ - **Safer shell handoffs.** Generated commands and saved mission scripts now escape `$` and backticks in freeform intent text, so copied commands treat developer goals as literal arguments.
47
+
48
+ <img src="docs/projscan-proof-router.png" alt="projscan intent router and proof workflow showing impact routing, setup discovery, dependency intelligence, and stable-surface guardrails" width="760">
49
+
50
+ Regenerate the README screenshots with Playwright:
51
+
52
+ ```bash
53
+ npm run docs:screenshots
54
+ ```
55
+
56
+ ## Mission Execution Plan + Copyable Handoffs
57
+
58
+ `projscan start --intent "<goal>"` gives agents an execution plan with ordered phases, ready commands, blocked inputs, follow-ups, proof, and done criteria. The cursor points to the next useful step and includes MCP `tool` / `args` when projscan can call it directly.
59
+
60
+ Projscan also returns a Markdown runbook, a task card, a review gate, and a resume object. A resumed agent gets the current command, the MCP tool call, placeholder bindings, follow-up templates, the ordered checklist, and the remaining proof queue without walking the full plan. MCP and JSON clients can read `missionControl.taskCard.markdown`, the same Markdown printed by `--task-card` and written to `task-card.md`. They can also read `missionControl.reviewGate.markdown` to know when to stop, report proof, and wait for approval before starting another slice, release, publish, or deploy. `missionControl.reviewGate.worktree` adds the current worktree evidence summary and visible changed files, so review handoffs keep the state projscan computed for the start report. `missionControl.reviewGate.proof` carries the remaining proof queue with commands, MCP calls, and structured proof items for review-only handoffs. `missionControl.reviewGate.doneWhen` mirrors the mission success criteria, so review-only handoffs show the approval target beside proof and worktree evidence. `missionControl.reviewGate.policy` lists the actions blocked until explicit reviewer approval: another slice, release, publish, deploy, push, merge, and version bump. `--review-gate-json` and saved `review-gate.json` expose the full review packet without requiring callers to parse the full handoff. `--review-policy` and saved `review-policy.json` expose only the approval boundary. `missionControl.reviewGate.decisions` gives the reviewer the allowed next choices and copyable reply text: approve another slice, request changes, or review a version candidate without publishing; the same menu appears in default console output, saved bundle README files, task cards, handoff prompts, and runbook Markdown. `--review-replies` and saved `review-replies.txt` print only those reply lines when a reviewer wants the smallest approval surface. The complete handoff object carries the same gate at `missionControl.handoff.reviewGate`, so `--handoff-json` and saved `handoff.json` include the stop boundary.
61
+
62
+ Use the index when you want the menu, or call one shortcut directly:
63
+
64
+ ```bash
65
+ projscan start --shortcuts --intent "<goal>" # Show the shortcut menu
66
+ projscan start --shortcuts-json --intent "<goal>" # Shortcut menu as JSON
67
+ projscan start --next-command --intent "<goal>" # Current shell command
68
+ projscan start --next-tool-call --intent "<goal>" # Current MCP call as compact JSON
69
+ projscan start --ready-tool-calls --intent "<goal>" # Current + proof MCP calls
70
+ projscan start --proof-commands --intent "<goal>" # Remaining proof commands
71
+ projscan start --checklist --intent "<goal>" # Ordered resume task card
72
+ projscan start --resume-json --intent "<goal>" # Structured resume object
73
+ projscan start --handoff-json --intent "<goal>" # Complete handoff object
74
+ projscan start --mission-script --intent "<goal>" # Shell script: current step + proof
75
+ projscan start --save-mission .projscan/mission --intent "<goal>" # Write bundle + quickstart
76
+ projscan start --task-card --intent "<goal>" # Paste-ready Markdown task card
77
+ projscan start --review-gate --intent "<goal>" # Stop-and-review gate
78
+ projscan start --review-gate-json --intent "<goal>" # Review gate JSON
79
+ projscan start --review-policy --intent "<goal>" # Review policy JSON
80
+ projscan start --review-replies --intent "<goal>" # Copy-only reviewer replies
81
+ projscan start --runbook --intent "<goal>" # Markdown mission runbook
82
+ projscan start --handoff-prompt --intent "<goal>" # One-line handoff prompt
83
+ ```
84
+
85
+ Saved mission bundles include `README.md`, `next-command.txt`, `next-tool-call.json`, `handoff-prompt.txt`, `resume-prompt.txt`, `task-card.md`, `review-gate.md`, `review-gate.json`, `review-policy.json`, `review-replies.txt`, the Markdown runbook, structured handoff/resume JSON, `ready-tool-calls.json`, `shortcuts.json`, `mission.sh`, `status.sh`, `review.sh`, `proof-logs/README.md`, `proof-logs/status.jsonl`, `proof-logs/run-report.md`, `proof-logs/summary.json`, proof commands, and a manifest. The saved bundle README starts with quick commands for `./mission.sh`, `./status.sh`, and `./review.sh`; `manifest.json` exposes the same quick commands under `quickCommands` for agents and JSON clients. Running saved `mission.sh` writes current and proof command output under `proof-logs/`, appends exit codes to `status.jsonl`, refreshes `run-report.md` for review, and writes the latest run state plus next action to `summary.json` for agents. Run `./status.sh` from the bundle to print the latest mission state and next action; it exits `0` for passed, `1` for failed, and `2` for not-run or running states. Run `./review.sh` from the bundle to print the status, review gate, run report, evidence command checklist, and reviewer replies in one terminal view.
86
+
87
+ Default console output shows the same sections inline: `Run Cursor`, `Resume Checklist`, `Handoff Prompt`, `Ready Proof`, and `Proof Queue`. The proof views use the resume-aware remaining queue, so projscan does not repeat the current cursor command as proof.
88
+
89
+ Console output shows the same model for humans:
90
+
91
+ ```text
92
+ Execution Plan
93
+ Run 1 ready step, resolve 2 input(s), then gather 4 proof command(s).
94
+ - [ready] Next Action
95
+ - Find exact target for impact analysis: projscan search "auth token loader" --format json
96
+ - [blocked] Resolve Inputs
97
+ - symbol: Replace <symbol-from-search> with an exported symbol returned by the search step.
98
+ - [pending] Follow Up
99
+ - If search returns an exported symbol: projscan impact --symbol <symbol-from-search> --format json
100
+ blocked by: input-1
101
+ Run Cursor
102
+ next: ready-1 in Ready Commands
103
+ command: projscan search "auth token loader" --format json
104
+ MCP call: projscan_search {"query":"auth token loader"}
105
+ unlocks: input-1, input-2
106
+ Resume Checklist
107
+ - [ready] run_current ready-1: projscan search "auth token loader" --format json (MCP: projscan_search {"query":"auth token loader"})
108
+ - [blocked] resolve_input input-1: <symbol-from-search> -> Replace <symbol-from-search> with an exported symbol returned by the search step.
109
+ - [blocked] run_follow_up follow-up-1: projscan impact --symbol <symbol-from-search> --format json (MCP: projscan_impact {"symbol":"<symbol-from-search>"})
110
+ - [ready] run_proof proof-2: projscan preflight --mode before_edit --format json (MCP: projscan_preflight {"mode":"before_edit"})
111
+ Handoff Prompt
112
+ Resume: Resume at ready-1 in ready_now: run `projscan search "auth token loader" --format json`. This can unlock input-1 (symbol), input-2 (file). Done when: An exact symbol or file path is selected from search results before impact analysis continues.
113
+ Ready Proof
114
+ Ready-to-run proof commands; placeholder follow-ups are excluded until Needs Input is resolved.
115
+ - projscan preflight --mode before_edit --format json
116
+ - projscan understand --view verify --format json
117
+ Proof Queue
118
+ - proof-2: projscan preflight --mode before_edit --format json (MCP: projscan_preflight {"mode":"before_edit"})
119
+ - proof-3: projscan understand --view verify --format json (MCP: projscan_understand {"view":"verify"})
120
+ ```
121
+
122
+ Runbook handoff example:
123
+
124
+ ```text
125
+ Agent Runbook
126
+ # Mission Runbook
127
+ Intent: what breaks if I rename the auth token loader
128
+ Status: needs_attention
129
+ Current phase: ready_now
130
+
131
+ ## Current Cursor
132
+ - Step: ready-1 in ready_now
133
+ - Command: `projscan search "auth token loader" --format json`
134
+ - MCP call: projscan_search {"query":"auth token loader"}
135
+ - Unlocks: input-1, input-2
136
+
137
+ ## Resume
138
+ Run now:
139
+ ```sh
140
+ projscan search "auth token loader" --format json
141
+ ```
142
+ MCP call: projscan_search {"query":"auth token loader"}
143
+ After running, resolve:
144
+ - input-1 (symbol): Replace <symbol-from-search> with an exported symbol returned by the search step.
145
+ - input-2 (file): Replace <file-from-search> with a file path returned by the search step.
146
+ Template inputs:
147
+ - <symbol-from-search> -> input-1 (symbol): Replace <symbol-from-search> with an exported symbol returned by the search step.
148
+ - <file-from-search> -> input-2 (file): Replace <file-from-search> with a file path returned by the search step.
149
+ Resume checklist:
150
+ - [ready] run_current ready-1: projscan search "auth token loader" --format json (MCP: projscan_search {"query":"auth token loader"})
151
+ - [blocked] resolve_input input-1: <symbol-from-search> -> Replace <symbol-from-search> with an exported symbol returned by the search step.
152
+ - [ready] run_proof proof-2: projscan preflight --mode before_edit --format json (MCP: projscan_preflight {"mode":"before_edit"})
153
+ - [pending] confirm_done criterion-1: An exact symbol or file path is selected from search results before impact analysis continues.
154
+ Proof queue:
155
+ - proof-2: `projscan preflight --mode before_edit --format json` (MCP: projscan_preflight {"mode":"before_edit"})
156
+ - proof-3: `projscan understand --view verify --format json` (MCP: projscan_understand {"view":"verify"})
157
+ Remaining proof:
158
+ - `projscan preflight --mode before_edit --format json`
159
+ - `projscan understand --view verify --format json`
160
+ MCP proof calls:
161
+ - proof-2: projscan_preflight {"mode":"before_edit"}
162
+ - proof-3: projscan_understand {"view":"verify"}
163
+ Then use:
164
+ - follow-up-1 (If search returns an exported symbol): projscan impact --symbol <symbol-from-search> --format json
165
+ - follow-up-2 (If search returns a file path): projscan impact <file-from-search> --format json
166
+ Prompt: Resume at ready-1 in ready_now: run `projscan search "auth token loader" --format json`. This can unlock input-1 (symbol), input-2 (file).
167
+
168
+ ## Handoff Prompt
169
+ Resume: Resume at ready-1 in ready_now: run `projscan search "auth token loader" --format json`. This can unlock input-1 (symbol), input-2 (file). Done when: An exact symbol or file path is selected from search results before impact analysis continues. Needs input: symbol=<symbol-from-search>, file=<file-from-search>. Ready proof: Ready-to-run proof commands; placeholder follow-ups are excluded until Needs Input is resolved. projscan preflight --mode before_edit --format json && projscan understand --view verify --format json.
170
+
171
+ ## Review Gate
172
+ - [ ] Complete this task card and remaining proof.
173
+ - [ ] Capture `git status --short`.
174
+ - [ ] Capture `git diff --stat`.
175
+ - [ ] Stop and ask for approval before starting another slice, release, publish, or deploy.
176
+
177
+ Review the completed mission, proof output, and working-tree summary before approving another slice, release, publish, or deploy.
178
+
179
+ ## Ready Commands
180
+ - `projscan search "auth token loader" --format json`
181
+
182
+ ## Blocked Inputs
183
+ - symbol: Replace <symbol-from-search> with an exported symbol returned by the search step.
184
+ ```
37
185
 
38
186
  Run `projscan doctor` for a focused health check:
39
187
 
@@ -41,7 +189,7 @@ Run `projscan doctor` for a focused health check:
41
189
  npx projscan doctor
42
190
  ```
43
191
 
44
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20doctor.gif" alt="npx projscan doctor" width="700">
192
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20doctor.gif" alt="npx projscan doctor" width="700">
45
193
 
46
194
  ## Install
47
195
 
@@ -62,6 +210,286 @@ Run this path first inside a repository:
62
210
  ```bash
63
211
  projscan privacy-check # Show exactly what can be read, written, or contacted
64
212
  projscan start # First-60-seconds workflow orientation
213
+ projscan start --intent "what can projscan read?" # Routes to local privacy/trust boundary
214
+ projscan start --intent "does projscan read .env values?" # Routes to .env content policy check
215
+ projscan start --intent "is it safe to commit this change?" # Mission Control: inferred mode + ready actions + done criteria + proof
216
+ projscan start --intent "is my branch ready to merge?" # Routes to before-merge preflight readiness
217
+ projscan start --intent "rebase went wrong" # Routes to before-merge preflight recovery
218
+ projscan start --intent "resolve merge conflicts" # Routes to before-merge preflight recovery
219
+ projscan start --intent "what is blocking this PR?" # Routes to before-commit preflight blockers
220
+ projscan start --intent "summarize this repo" # Routes to cited repo map + orientation summary
221
+ projscan start --intent "what files should I read first?" # Routes to cited repo map + read-first files
222
+ projscan start --intent "where do I start in this codebase?" # Routes to cited repo map + read-first files
223
+ projscan start --intent "give me a tour of the repo" # Routes to cited repo map + entrypoints
224
+ projscan start --intent "explain the architecture" # Routes to cited repo map + boundaries
225
+ projscan start --intent "show me the main entrypoints" # Routes to cited repo map + entrypoints
226
+ projscan start --intent "how do I run this project?" # Routes to cited repo map + entrypoints
227
+ projscan start --intent "what command starts the dev server?" # Routes to cited repo map + entrypoints
228
+ projscan start --intent "what npm scripts exist?" # Routes to package/config contract discovery
229
+ projscan start --intent "which script runs e2e tests?" # Routes to package/config contract discovery
230
+ projscan start --intent "what command runs lint?" # Routes to package/config contract discovery
231
+ projscan start --intent "how do I run typecheck?" # Routes to package/config contract discovery
232
+ projscan start --intent "how do I seed the database?" # Routes to package/config contract discovery
233
+ projscan start --intent "what command runs migrations?" # Routes to package/config contract discovery
234
+ projscan start --intent "where should I put this new feature?" # Routes to change-readiness map
235
+ projscan start --intent "implement OAuth login" # Routes to change-readiness map
236
+ projscan start --intent "add billing webhook support" # Routes to change-readiness map
237
+ projscan start --intent "build a settings page" # Routes to change-readiness map
238
+ projscan start --intent "where should I add a new endpoint?" # Routes to change-readiness map
239
+ projscan start --intent "what files do I need to change for auth?" # Routes to change-readiness map
240
+ projscan start --intent "what docs should I update for this change?" # Routes to change-readiness map
241
+ projscan start --intent "where should I add this database migration?" # Routes to change-readiness map
242
+ projscan start --intent "which migrations exist?" # Routes to focused code search
243
+ projscan start --intent "show me generated files" # Routes to focused code search
244
+ projscan start --intent "can I drop this column?" # Routes to impact target search
245
+ projscan start --intent "what are the public contracts?" # Routes to public exports/config contracts
246
+ projscan start --intent "how do I safely deprecate this API?" # Routes to public exports/config contracts
247
+ projscan start --intent "what will this API change break?" # Routes to impact target search
248
+ projscan start --intent "what env vars does this repo need?" # Routes to config contract discovery
249
+ projscan start --intent "environment variables missing" # Routes to config contract discovery
250
+ projscan start --intent "where is NEXT_PUBLIC_API_URL used?" # Routes to focused code search
251
+ projscan start --intent "which env var controls auth?" # Routes to focused code search
252
+ projscan start --intent "where is \"Invalid token\" thrown?" # Routes to focused code search
253
+ projscan start --intent "find error message \"Payment failed\"" # Routes to focused code search
254
+ projscan start --intent "where is eslint config?" # Routes to focused code search
255
+ projscan start --intent "which config file defines aliases?" # Routes to focused code search
256
+ projscan start --intent "where is tsconfig path aliases configured?" # Routes to focused code search
257
+ projscan start --intent "where is Vitest config?" # Routes to focused code search
258
+ projscan start --intent "find Babel config" # Routes to focused code search
259
+ projscan start --intent "where is package manager configured?" # Routes to focused code search
260
+ projscan start --intent "where is pnpm workspace file?" # Routes to focused code search
261
+ projscan start --intent "what is risky in this repo?" # Routes to quality dimensions + top risks
262
+ projscan start --intent "what files are risky to touch?" # Routes to hotspot files
263
+ projscan start --intent "which files are too complex?" # Routes to hotspot files
264
+ projscan start --intent "what file should I refactor first?" # Routes to hotspot files
265
+ projscan start --intent "what tech debt should I pay down?" # Routes to hotspot files
266
+ projscan start --intent "what code should I simplify?" # Routes to hotspot files
267
+ projscan start --intent "find performance bottlenecks" # Routes to hotspot files
268
+ projscan start --intent "where are the slow files?" # Routes to hotspot files
269
+ projscan start --intent "find dead code" # Routes to doctor cleanup issues
270
+ projscan start --intent "find dead code and unused exports I can delete" # Routes to doctor cleanup issues
271
+ projscan start --intent "what can I safely delete?" # Routes to doctor cleanup discovery
272
+ projscan start --intent "what can I remove safely?" # Routes to doctor cleanup discovery
273
+ projscan start --intent "port 3000 already in use" # Routes to focused regression planning
274
+ projscan start --intent "peer dependency conflict after npm install" # Routes to focused regression planning
275
+ projscan start --intent "where is runAudit used?" # Routes to symbol impact/caller analysis
276
+ projscan start --intent "what code handles billing?" # Routes to focused code search
277
+ projscan start --intent "which file contains checkout logic?" # Routes to focused code search
278
+ projscan start --intent "find the Stripe webhook handler" # Routes to focused code search
279
+ projscan start --intent "find the handler for POST /api/users" # Routes to focused code search
280
+ projscan start --intent "where is the /checkout route handled?" # Routes to focused code search
281
+ projscan start --intent "where is /settings page rendered?" # Routes to focused code search
282
+ projscan start --intent "which page renders /billing?" # Routes to focused code search
283
+ projscan start --intent "where is route segment for dashboard?" # Routes to focused code search
284
+ projscan start --intent "where is not-found page handled?" # Routes to focused code search
285
+ projscan start --intent "which feature flags exist?" # Routes to focused code search
286
+ projscan start --intent "what background jobs exist?" # Routes to focused code search
287
+ projscan start --intent "find the email queue processor" # Routes to focused code search
288
+ projscan start --intent "where are metrics emitted?" # Routes to focused code search
289
+ projscan start --intent "where do we initialize Sentry?" # Routes to focused code search
290
+ projscan start --intent "what logs should I check for checkout?" # Routes to focused code search
291
+ projscan start --intent "find the dashboard for payments" # Routes to focused code search
292
+ projscan start --intent "where is seed data defined?" # Routes to focused code search
293
+ projscan start --intent "find fixtures for checkout" # Routes to focused code search
294
+ projscan start --intent "which mocks are used for payments?" # Routes to focused code search
295
+ projscan start --intent "where are Storybook stories for Button?" # Routes to focused code search
296
+ projscan start --intent "where are permissions checked for checkout?" # Routes to focused code search
297
+ projscan start --intent "which role can access admin?" # Routes to focused code search
298
+ projscan start --intent "what routes require login?" # Routes to focused code search
299
+ projscan start --intent "where is rate limiting configured?" # Routes to focused code search
300
+ projscan start --intent "where is cache invalidated for products?" # Routes to focused code search
301
+ projscan start --intent "find retry logic for payments" # Routes to focused code search
302
+ projscan start --intent "what sets request timeout?" # Routes to focused code search
303
+ projscan start --intent "find idempotency key handling" # Routes to focused code search
304
+ projscan start --intent "where is webhook signature verified?" # Routes to focused code search
305
+ projscan start --intent "where is input validation for signup?" # Routes to focused code search
306
+ projscan start --intent "which schema validates checkout?" # Routes to focused code search
307
+ projscan start --intent "where are request params parsed?" # Routes to focused code search
308
+ projscan start --intent "where is database transaction started?" # Routes to focused code search
309
+ projscan start --intent "where do we lock the order row?" # Routes to focused code search
310
+ projscan start --intent "what validates email uniqueness?" # Routes to focused code search
311
+ projscan start --intent "where is Prisma model for User?" # Routes to focused code search
312
+ projscan start --intent "find Drizzle schema for invoices" # Routes to focused code search
313
+ projscan start --intent "where is SQL query for invoices?" # Routes to focused code search
314
+ projscan start --intent "which repository saves orders?" # Routes to focused code search
315
+ projscan start --intent "find DAO for payments" # Routes to focused code search
316
+ projscan start --intent "where is loading state for dashboard?" # Routes to focused code search
317
+ projscan start --intent "where is error boundary for settings?" # Routes to focused code search
318
+ projscan start --intent "find command palette actions" # Routes to focused code search
319
+ projscan start --intent "where are i18n translations for checkout?" # Routes to focused code search
320
+ projscan start --intent "where are design tokens defined?" # Routes to focused code search
321
+ projscan start --intent "where is Tailwind theme configured?" # Routes to focused code search
322
+ projscan start --intent "where is global CSS imported?" # Routes to focused code search
323
+ projscan start --intent "which CSS module styles Button?" # Routes to focused code search
324
+ projscan start --intent "where is dark mode configured?" # Routes to focused code search
325
+ projscan start --intent "what breakpoints are defined?" # Routes to focused code search
326
+ projscan start --intent "where is sidebar nav item for billing?" # Routes to focused code search
327
+ projscan start --intent "which breadcrumb renders settings?" # Routes to focused code search
328
+ projscan start --intent "where is page title set for checkout?" # Routes to focused code search
329
+ projscan start --intent "where is Next.js layout for dashboard?" # Routes to focused code search
330
+ projscan start --intent "where is auth state stored?" # Routes to focused code search
331
+ projscan start --intent "find Redux slice for cart" # Routes to focused code search
332
+ projscan start --intent "where is Zustand store for user settings?" # Routes to focused code search
333
+ projscan start --intent "which context provider supplies theme?" # Routes to focused code search
334
+ projscan start --intent "which hook fetches invoices?" # Routes to focused code search
335
+ projscan start --intent "where is React Query mutation for checkout?" # Routes to focused code search
336
+ projscan start --intent "where do we call Stripe?" # Routes to focused code search
337
+ projscan start --intent "which code sends email through SendGrid?" # Routes to focused code search
338
+ projscan start --intent "where is S3 upload implemented?" # Routes to focused code search
339
+ projscan start --intent "find GitHub API client" # Routes to focused code search
340
+ projscan start --intent "where is GraphQL query for invoices?" # Routes to focused code search
341
+ projscan start --intent "where is websocket connection opened?" # Routes to focused code search
342
+ projscan start --intent "where is OpenAPI spec defined?" # Routes to focused code search
343
+ projscan start --intent "where is Swagger docs configured?" # Routes to focused code search
344
+ projscan start --intent "where is tRPC router for billing?" # Routes to focused code search
345
+ projscan start --intent "which GraphQL resolver handles invoices?" # Routes to focused code search
346
+ projscan start --intent "which protobuf defines user service?" # Routes to focused code search
347
+ projscan start --intent "where is gRPC client for payments?" # Routes to focused code search
348
+ projscan start --intent "where is the Dockerfile?" # Routes to focused code search
349
+ projscan start --intent "where is docker compose for local dev?" # Routes to focused code search
350
+ projscan start --intent "where are Kubernetes manifests?" # Routes to focused code search
351
+ projscan start --intent "find Helm chart for payments" # Routes to focused code search
352
+ projscan start --intent "where is Terraform module for S3?" # Routes to focused code search
353
+ projscan start --intent "which GitHub workflow deploys staging?" # Routes to focused code search
354
+ projscan start --intent "where is Vercel config?" # Routes to focused code search
355
+ projscan start --intent "where is password reset handled?" # Routes to focused code search
356
+ projscan start --intent "where is team invite flow?" # Routes to focused code search
357
+ projscan start --intent "where is onboarding flow implemented?" # Routes to focused code search
358
+ projscan start --intent "find CSV export for users" # Routes to focused code search
359
+ projscan start --intent "what creates audit log entries?" # Routes to focused code search
360
+ projscan start --intent "where is refund handling for payments?" # Routes to focused code search
361
+ projscan start --intent "where is subscription renewal handled?" # Routes to focused code search
362
+ projscan start --intent "where is welcome email template?" # Routes to focused code search
363
+ projscan start --intent "find password reset email copy" # Routes to focused code search
364
+ projscan start --intent "where is push notification copy for invites?" # Routes to focused code search
365
+ projscan start --intent "where is SMS verification template?" # Routes to focused code search
366
+ projscan start --intent "which template sends receipt email?" # Routes to focused code search
367
+ projscan start --intent "where is invoice PDF generated?" # Routes to focused code search
368
+ projscan start --intent "find documentation for auth" # Routes to focused docs search
369
+ projscan start --intent "what depends on src/core/start.ts?" # Routes to file impact/dependency analysis
370
+ projscan start --intent "can I delete src/core/start.ts?" # Routes to file impact/dependency analysis
371
+ projscan start --intent "revert src/core/start.ts safely" # Routes to file impact/dependency analysis
372
+ projscan start --intent "how do I revert this change safely?" # Routes to impact target search
373
+ projscan start --intent "what dependencies does this repo use?" # Routes to dependency inventory
374
+ projscan start --intent "why is the bundle so large?" # Routes to dependency size inventory
375
+ projscan start --intent "find package bloat" # Routes to dependency size inventory
376
+ projscan start --intent "what licenses do our dependencies use?" # Routes to dependency license inventory
377
+ projscan start --intent "who uses lodash?" # Routes to package importer graph query
378
+ projscan start --intent "why do we depend on lodash?" # Routes to package importer graph query
379
+ projscan start --intent "third party notices" # Routes to dependency license inventory
380
+ projscan start --intent "open source compliance check" # Routes to dependency license inventory
381
+ projscan start --intent "what workspaces are in this repo?" # Routes to monorepo workspace map
382
+ projscan start --intent "which workspace owns auth?" # Routes to monorepo workspace map
383
+ projscan start --intent "where should I put this in the monorepo?" # Routes to monorepo workspace map
384
+ projscan start --intent "does lodash have a CVE?" # Routes to scoped npm audit
385
+ projscan start --intent "what CVEs affect this repo?" # Routes to npm audit
386
+ projscan start --intent "find vulnerable packages" # Routes to npm audit
387
+ projscan start --intent "who owns auth?" # Routes to focused ownership search
388
+ projscan start --intent "which team owns payments?" # Routes to focused ownership search
389
+ projscan start --intent "who should I ask about auth?" # Routes to focused ownership search
390
+ projscan start --intent "what should I read before changing src/core/start.ts?" # Routes to exact-file orientation
391
+ projscan start --intent "explain src/core/start.ts" # Routes to per-file purpose/risk/ownership inspection
392
+ projscan start --intent "who owns src/core/start.ts?" # Routes to file ownership/risk context
393
+ projscan start --intent "who should review src/core/start.ts?" # Routes to file ownership/reviewer context
394
+ projscan start --intent "who last touched src/core/start.ts?" # Routes to file ownership/history context
395
+ projscan start --intent "why is src/core/start.ts risky?" # Routes to exact-file risk context
396
+ projscan start --intent "who imports src/core/start.ts?" # Routes to a targeted semantic graph query
397
+ projscan start --intent "where are the tests for src/core/start.ts?" # Routes to focused test-file search
398
+ projscan start --intent "where are tests for auth?" # Routes to focused test-topic search
399
+ projscan start --intent "which tests cover auth?" # Routes to focused existing-test search
400
+ projscan start --intent "locate specs for checkout" # Routes to focused test-topic search
401
+ projscan start --intent "which tests should I run for src/core/start.ts?" # Routes to verification proof planning
402
+ projscan start --intent "what should I test before pushing?" # Routes to verification proof planning
403
+ projscan start --intent "is src/core/start.ts covered by tests?" # Routes to file coverage/risk context
404
+ projscan start --intent "what tests should I add for src/core/start.ts?" # Routes to file test-design context
405
+ projscan start --intent "what changed in this PR?" # Routes to structural PR diff
406
+ projscan start --intent "is this PR too large?" # Routes to structural PR diff
407
+ projscan start --intent "what did I change since main?" # Routes to structural branch diff
408
+ projscan start --intent "is my branch stale?" # Routes to structural branch diff
409
+ projscan start --intent "compare my branch with main" # Routes to structural branch diff
410
+ projscan start --intent "write a commit message for these changes" # Routes to structural diff evidence
411
+ projscan start --intent "summarize my changes for a commit" # Routes to structural diff evidence
412
+ projscan start --intent "how risky is this PR?" # Routes to structural PR review
413
+ projscan start --intent "what are the risks in my PR?" # Routes to structural PR review
414
+ projscan start --intent "what are the top risks before merge?" # Routes to before-merge preflight readiness
415
+ projscan start --intent "am I ready to open a PR?" # Routes to PR-readiness evidence pack
416
+ projscan start --intent "who should review this PR?" # Routes to owner-routing evidence pack
417
+ projscan start --intent "who owns the changed files?" # Routes to changed-file owner routing
418
+ projscan start --intent "write a PR comment for reviewers" # Routes to approval-ready evidence pack
419
+ projscan start --intent "write a PR description" # Routes to approval-ready evidence pack
420
+ projscan start --intent "what should my PR say?" # Routes to approval-ready evidence pack
421
+ projscan start --intent "make a PR checklist" # Routes to approval-ready evidence pack
422
+ projscan start --intent "what should I tell my team about this change?" # Routes to approval-ready evidence pack
423
+ projscan start --intent "what should I fix first?" # Routes to bug-hunt prioritization
424
+ projscan start --intent "what is the fastest safe fix?" # Routes to bug-hunt prioritization before generic safety
425
+ projscan start --intent "find a quick win" # Routes to bug-hunt prioritization
426
+ projscan start --intent "what can I do in five minutes?" # Routes to bug-hunt prioritization
427
+ projscan start --intent "pick an easy task for me" # Routes to bug-hunt prioritization
428
+ projscan start --intent "what should an intern work on?" # Routes to bug-hunt prioritization
429
+ projscan start --intent "what is a low risk improvement?" # Routes to bug-hunt prioritization
430
+ projscan start --intent "pick a small safe task" # Routes to bug-hunt prioritization
431
+ projscan start --intent "what should I do next?" # Routes to an ordered before-edit workplan
432
+ projscan start --intent "explain issue missing-test-framework" # Routes to deep issue context
433
+ projscan start --intent "fix issue missing-test-framework" # Routes to a concrete fix suggestion
434
+ projscan start --intent "is user input reaching SQL sinks?" # Routes to hardening dataflow analysis
435
+ projscan start --intent "does this endpoint expose secrets?" # Routes to hardening dataflow analysis
436
+ projscan start --intent "where is PII handled?" # Routes to hardening dataflow analysis
437
+ projscan start --intent "GDPR compliance check" # Routes to hardening dataflow analysis
438
+ projscan start --intent "where do we store access tokens?" # Routes to hardening dataflow analysis
439
+ projscan start --intent "is this change secure?" # Routes to structural PR review
440
+ projscan start --intent "check this PR for security issues" # Routes to structural PR review
441
+ projscan start --intent "what are the scariest untested files?" # Routes to coverage × hotspot test targets
442
+ projscan start --intent "which files have no tests?" # Routes to coverage × hotspot test targets
443
+ projscan start --intent "what breaks if I bump chalk to 6?" # Routes to offline package upgrade impact
444
+ projscan start --intent "what breaks if I update react?" # Routes to offline package upgrade impact
445
+ projscan start --intent "can I remove lodash?" # Routes to offline package removal impact
446
+ projscan start --intent "is lodash safe to remove?" # Routes to offline package removal impact
447
+ projscan start --intent "CI is failing after this PR" # Routes to a focused regression plan
448
+ projscan start --intent "CI is flaky" # Routes to a focused regression plan
449
+ projscan start --intent "production is down" # Routes to a focused regression plan
450
+ projscan start --intent "why is the login endpoint returning 500?" # Routes to a focused regression plan
451
+ projscan start --intent "why did CI fail?" # Routes to a focused regression plan
452
+ projscan start --intent "why is GitHub Actions failing?" # Routes to a focused regression plan
453
+ projscan start --intent "which GitHub Actions job failed?" # Routes to a focused regression plan
454
+ projscan start --intent "why is CI slow?" # Routes to a focused regression plan
455
+ projscan start --intent "why did the build fail?" # Routes to a focused regression plan
456
+ projscan start --intent "what is making builds slow?" # Routes to a focused regression plan
457
+ projscan start --intent "lint is failing" # Routes to a focused regression plan
458
+ projscan start --intent "typecheck is failing" # Routes to a focused regression plan
459
+ projscan start --intent "npm install is failing" # Routes to a focused regression plan
460
+ projscan start --intent "debug this stack trace" # Routes to a focused regression plan
461
+ projscan start --intent "where is this stack trace from?" # Routes to a focused regression plan
462
+ projscan start --intent "database connection refused locally" # Routes to a focused regression plan
463
+ projscan start --intent "what command reproduces the flake?" # Routes to a focused regression plan
464
+ projscan start --intent "quarantine flaky test" # Routes to a focused regression plan
465
+ projscan start --intent "what tests should I run for my changes?" # Routes to verification proof planning
466
+ projscan start --intent "how can I speed up tests?" # Routes to a focused regression plan
467
+ projscan start --intent "what commands prove this works?" # Routes to focused proof commands
468
+ projscan start --intent "what commands benchmark this repo?" # Routes to focused proof commands
469
+ projscan start --intent "give me proof commands" # Routes to focused proof commands
470
+ projscan start --intent "what commands should I run before pushing?" # Routes to focused pre-push proof
471
+ projscan start --intent "what smoke checks should I run before commit?" # Routes to a smoke regression plan
472
+ projscan start --intent "what full regression should I run before merge?" # Routes to a full regression plan
473
+ projscan start --intent "what should I check before release?" # Routes to release readiness
474
+ projscan start --intent "can I deploy this?" # Routes to release readiness
475
+ projscan start --intent "what changed since last release?" # Routes to release readiness
476
+ projscan start --intent "write a release note for this change" # Routes to release readiness and changelog evidence
477
+ projscan start --intent "draft changelog entry" # Routes to release readiness and changelog evidence
478
+ projscan start --intent "show coordination status for parallel agents" # Routes to one-call swarm readiness
479
+ projscan start --intent "who else is working on this?" # Routes to one-call swarm readiness
480
+ projscan start --intent "am I going to collide with another agent?" # Routes to one-call swarm readiness
481
+ projscan start --intent "what worktrees are active?" # Routes to one-call swarm readiness
482
+ projscan start --intent "what should merge first?" # Routes to merge-risk ordering
483
+ projscan start --intent "show me overlapping changes" # Routes to collision detection
484
+ projscan start --intent "show active claims" # Routes to advisory claim listing
485
+ projscan start --intent "claim src/core/start.ts for me" # Routes to active-claim review + file claim action
486
+ projscan start --intent "where did I leave off?" # Routes to touched-file session context
487
+ projscan start --intent "what changed while I was away?" # Routes to touched-file session context
488
+ projscan start --intent "what changed while I was offline?" # Routes to touched-file session context
489
+ projscan start --intent "what changed while I was asleep?" # Routes to touched-file session context
490
+ projscan start --intent "what did the last agent touch?" # Routes to remembered touched-file session context
491
+ projscan start --intent "what did the last agent do?" # Routes to remembered touched-file session context
492
+ projscan start --intent "give the next agent a handoff" # Routes to a compact agent brief
65
493
  projscan understand --view map # Cited repo map, flows, contracts, change readiness, and verification proof
66
494
  projscan preflight --format json # Proceed/caution/block safety gate
67
495
  projscan evidence-pack --pr-comment # Reviewer-ready PR evidence
@@ -94,9 +522,9 @@ npm run test:trust-smoke
94
522
 
95
523
  The full command catalog is below. Most users should start with the five-command path above instead of scanning the catalog.
96
524
 
97
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20--help.gif" alt="npx projscan --help" width="700">
525
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20--help.gif" alt="npx projscan --help" width="700">
98
526
 
99
- For a comprehensive walkthrough, see the **[Full Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/GUIDE.md)**.
527
+ For a comprehensive walkthrough, see the **[Full Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/GUIDE.md)**.
100
528
 
101
529
  ## Repo Understanding
102
530
 
@@ -117,7 +545,8 @@ The report includes file/symbol-backed `claims`, `readFirst` files, entrypoints,
117
545
  | Command | Description |
118
546
  |---------|-------------|
119
547
  | `projscan analyze` | Full analysis - languages, frameworks, dependencies, issues |
120
- | `projscan start` | First-60-seconds workflow orientation with setup diagnostics, top risks, and next commands |
548
+ | `projscan route` | Map a plain-language goal to the best projscan tool with weighted confidence and matched keywords |
549
+ | `projscan start` | First-60-seconds workflow orientation with setup diagnostics, Mission Control, top risks, and next commands. Add `--intent "<goal>"` to route a plain-language goal to route confidence, phased execution plan, ready actions, done criteria, and proof commands |
121
550
  | `projscan first-run` | First-run setup diagnostics plus the shared `firstTenMinutes` command path |
122
551
  | `projscan init mcp` | Ready-to-paste MCP client configs for popular agent clients |
123
552
  | `projscan mcp doctor` | Verify MCP setup and print paste-ready client config with checks |
@@ -142,7 +571,7 @@ The report includes file/symbol-backed `claims`, `readFirst` files, entrypoints,
142
571
  | `projscan doctor` | Health check - missing tooling, architecture smells, security and supply-chain risks |
143
572
  | `projscan preflight` | Agent safety gate - `proceed`, `caution`, or `block` with health, change, plugin, and supply-chain evidence |
144
573
  | `projscan hotspots` | Rank files by risk - churn × complexity × issues × ownership |
145
- | `projscan semantic-graph` | Stable v3 graph contract - files, functions, packages, symbols, imports, exports, definitions, and calls |
574
+ | `projscan semantic-graph` | Stable v3 graph contract, plus targeted `--query importers/imports/exports/...` lookups |
146
575
  | `projscan dataflow` | Focused direct, propagated, and bridge source-to-sink dataflow risks |
147
576
  | `projscan search <query>` | **BM25-ranked search** - content + symbols + path, with excerpts |
148
577
  | `projscan file <path>` | Drill into a file - purpose, risk, ownership, related issues |
@@ -151,7 +580,7 @@ The report includes file/symbol-backed `claims`, `readFirst` files, entrypoints,
151
580
  | `projscan diff` | Compare current health **and hotspot trends** against a baseline |
152
581
  | `projscan diagram` | ASCII architecture diagram of your project |
153
582
  | `projscan structure` | Directory tree with file counts |
154
- | `projscan dependencies` | Dependency analysis - counts, risks, recommendations |
583
+ | `projscan dependencies` | Dependency analysis - counts, license summary, risks, recommendations |
155
584
  | `projscan outdated` | Declared-vs-installed drift check (offline) |
156
585
  | `projscan audit` | `npm audit`-powered vulnerability report - SARIF-ready for Code Scanning |
157
586
  | `projscan upgrade <pkg>` | Preview upgrade impact - local CHANGELOG + importer list, offline |
@@ -176,25 +605,25 @@ projscan --help
176
605
  <details>
177
606
  <summary><strong>projscan structure</strong> - Directory tree with file counts</summary>
178
607
 
179
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20structure.gif" alt="npx projscan structure" width="700">
608
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20structure.gif" alt="npx projscan structure" width="700">
180
609
  </details>
181
610
 
182
611
  <details>
183
612
  <summary><strong>projscan diagram</strong> - Architecture visualization</summary>
184
613
 
185
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20diagram.gif" alt="npx projscan diagram" width="700">
614
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20diagram.gif" alt="npx projscan diagram" width="700">
186
615
  </details>
187
616
 
188
617
  <details>
189
618
  <summary><strong>projscan dependencies</strong> - Dependency analysis</summary>
190
619
 
191
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20dependencies.gif" alt="npx projscan dependencies" width="700">
620
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20dependencies.gif" alt="npx projscan dependencies" width="700">
192
621
  </details>
193
622
 
194
623
  <details>
195
624
  <summary><strong>projscan badge</strong> - Health badge generation</summary>
196
625
 
197
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20badge.gif" alt="npx projscan badge" width="700">
626
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20badge.gif" alt="npx projscan badge" width="700">
198
627
  </details>
199
628
 
200
629
  ### Output Formats
@@ -216,7 +645,7 @@ Run `projscan help` for the generated command-by-command support matrix.
216
645
 
217
646
  projscan can load local plugins from `.projscan-plugins/` when `PROJSCAN_PLUGINS_PREVIEW=1` is set. The environment flag is kept for explicit local-code opt-in. Analyzer plugins emit normal projscan issues; reporter plugins render supported CLI commands with team-specific output.
218
647
 
219
- **2.0 upgrade notes:** migrating from 1.x or authoring plugins? Start with the [2.0 Migration Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/2.0-MIGRATION.md), then use [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-AUTHORING.md), the [Plugin Gallery](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-GALLERY.md), and the [manifest schema](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/plugin.schema.json) as the stable contract.
648
+ **2.0 upgrade notes:** migrating from 1.x or authoring plugins? Start with the [2.0 Migration Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/2.0-MIGRATION.md), then use [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/PLUGIN-AUTHORING.md), the [Plugin Gallery](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/PLUGIN-GALLERY.md), and the [manifest schema](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/plugin.schema.json) as the stable contract.
220
649
 
221
650
  ```bash
222
651
  projscan plugin list
@@ -227,9 +656,9 @@ PROJSCAN_PLUGINS_PREVIEW=1 projscan doctor --reporter team-radar
227
656
  PROJSCAN_PLUGINS_PREVIEW=1 projscan ci --reporter team-radar --min-score 80
228
657
  ```
229
658
 
230
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-reporter-plugin.gif" alt="projscan local reporter plugin rendering a team health report" width="700">
659
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/projscan-reporter-plugin.gif" alt="projscan local reporter plugin rendering a team health report" width="700">
231
660
 
232
- Reporter plugins are intentionally CLI-only. MCP tools keep returning structured JSON-compatible payloads so agents can reason over stable data, while humans can get a polished local report for their team. Custom presentation, team-branded summaries, and white-label reports belong in reporter plugins rather than new core HTML theming flags. See [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-AUTHORING.md) for manifest shape, `render(context)`, validation, and the trust model.
661
+ Reporter plugins are intentionally CLI-only. MCP tools keep returning structured JSON-compatible payloads so agents can reason over stable data, while humans can get a polished local report for their team. Custom presentation, team-branded summaries, and white-label reports belong in reporter plugins rather than new core HTML theming flags. See [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/PLUGIN-AUTHORING.md) for manifest shape, `render(context)`, validation, and the trust model.
233
662
 
234
663
  ### Options
235
664
 
@@ -240,6 +669,24 @@ Reporter plugins are intentionally CLI-only. MCP tools keep returning structured
240
669
  | `--include-ignored` | Explicitly include files hidden by Git ignore rules |
241
670
  | `--scan-env-values` | Explicitly read `.env*` contents during secret checks |
242
671
  | `--offline` | Block projscan network-capable features for this run |
672
+ | `--shortcuts` | Print the Mission Control shortcut command index (`start`) |
673
+ | `--shortcuts-json` | Print the Mission Control shortcut command index as JSON (`start`) |
674
+ | `--handoff-prompt` | Print only the concise Mission Control handoff prompt (`start`) |
675
+ | `--next-command` | Print only the current Mission Control cursor command (`start`) |
676
+ | `--next-tool-call` | Print only the current Mission Control cursor MCP tool call as JSON (`start`) |
677
+ | `--ready-tool-calls` | Print the current cursor and remaining MCP-callable proof queue as JSON (`start`) |
678
+ | `--proof-commands` | Print only ready Mission Control proof commands (`start`) |
679
+ | `--checklist` | Print only the Mission Control resume checklist (`start`) |
680
+ | `--resume-json` | Print only the Mission Control resume object as JSON (`start`) |
681
+ | `--handoff-json` | Print only the Mission Control handoff object as JSON (`start`) |
682
+ | `--mission-script` | Print the Mission Control shell script (`start`) |
683
+ | `--save-mission <dir>` | Write the Mission Control bundle to a directory (`start`) |
684
+ | `--task-card` | Print only the Mission Control Markdown task card (`start`) |
685
+ | `--review-gate` | Print only the Mission Control stop-and-review gate (`start`) |
686
+ | `--review-gate-json` | Print only the Mission Control review gate as JSON (`start`) |
687
+ | `--review-policy` | Print only the Mission Control review policy as JSON (`start`) |
688
+ | `--review-replies` | Print only copyable Mission Control reviewer replies (`start`) |
689
+ | `--runbook` | Print only the Mission Control Markdown runbook (`start`) |
243
690
  | `--changed-only` | Scope to files changed vs base ref (ci/analyze/doctor) |
244
691
  | `--base-ref <ref>` | Git base ref for `--changed-only` (default: origin/main) |
245
692
  | `--reporter <name>` | Render `doctor`, `analyze`, or `ci` with a local reporter plugin |
@@ -301,6 +748,8 @@ Go flows through the same pipeline as JS/TS and Python:
301
748
 
302
749
  `projscan coupling` (CLI + MCP tool) reports per-file fan-in / fan-out / instability (Bob Martin's I = Ce / (Ca + Ce)) and detects circular imports via Tarjan SCC. Cross-package edges are flagged when running on a monorepo.
303
750
 
751
+ Plain-language Mission Control intents such as `projscan start --intent "show circular dependencies"` route straight to `projscan coupling --cycles-only --format json`; broader boundary questions such as `projscan start --intent "what modules are tightly coupled"` route to the full coupling report.
752
+
304
753
  ### PR-aware structural diff (0.11)
305
754
 
306
755
  `projscan pr-diff` returns the structural diff between two refs: exports added/removed/renamed, imports added/removed, call sites added/removed, ΔCC, Δfan-in. Spins up a temporary git worktree at the base ref to build a clean second graph. Renames are detected via similarity scoring (max of normalized Levenshtein and shared-affix fraction, threshold 0.5).
@@ -394,7 +843,7 @@ If you read projscan's [Socket report](https://socket.dev/npm/package/projscan),
394
843
  ### Audit it yourself
395
844
 
396
845
  - **Source is open** at [github.com/abhiyoheswaran1/projscan](https://github.com/abhiyoheswaran1/projscan). The npm tarball matches the `dist/` produced by `npm run build` at the matching tag.
397
- - **Public API surface is locked** by `scripts/check-stability.mjs`, which runs in CI on every PR and fails on any rename or removal of an MCP tool, CLI command, or exit code. See [`docs/STABILITY.md`](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/STABILITY.md).
846
+ - **Public API surface is locked** by `scripts/check-stability.mjs`, which runs in CI on every PR and fails on any rename or removal of an MCP tool, CLI command, or exit code. See [`docs/STABILITY.md`](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/STABILITY.md).
398
847
  - **Run it offline:** `npm install -g projscan` followed by anything except `audit` and `--mode semantic` works without network.
399
848
  - **Drop privilege further:** in CI, run projscan in a sandbox that disallows network egress; everything except `audit` will pass.
400
849
 
@@ -445,7 +894,7 @@ projscan ci --changed-only # Gate only on this PR's diff
445
894
  projscan ci --format sarif > projscan.sarif # SARIF for Code Scanning
446
895
  ```
447
896
 
448
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20ci%20--min-score%2070.gif" alt="npx projscan ci --min-score 70" width="700">
897
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20ci%20--min-score%2070.gif" alt="npx projscan ci --min-score 70" width="700">
449
898
 
450
899
  ### GitHub Action (recommended)
451
900
 
@@ -522,7 +971,7 @@ Fields:
522
971
  - `hotspots.limit` / `hotspots.since` - defaults for the `hotspots` command
523
972
  - `monorepo.importPolicy` - cross-package import allow/deny rules in monorepos *(0.14+)*
524
973
 
525
- See [`docs/GUIDE.md` Configuration](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/GUIDE.md#configuration-projscanrc) for the full reference (field types, validation behavior, embedding config in `package.json`, monorepo `importPolicy` semantics).
974
+ See [`docs/GUIDE.md` -> Configuration](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/GUIDE.md#configuration-projscanrc) for the full reference (field types, validation behavior, embedding config in `package.json`, monorepo `importPolicy` semantics).
526
975
 
527
976
  ## Tracking Health Over Time
528
977
 
@@ -535,7 +984,7 @@ projscan diff # Compare against baseline
535
984
  projscan diff --format markdown # Markdown diff for PRs
536
985
  ```
537
986
 
538
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20diff%20--save-baseline.gif" alt="npx projscan diff --save-baseline" width="700">
987
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/npx%20projscan%20diff%20--save-baseline.gif" alt="npx projscan diff --save-baseline" width="700">
539
988
 
540
989
  ## Hotspots - Where to Fix First
541
990
 
@@ -624,7 +1073,7 @@ Coverage is also automatically joined into `projscan hotspots` when one of those
624
1073
 
625
1074
  **This is the primary way to use projscan.** `projscan mcp` starts an [MCP](https://modelcontextprotocol.io) server over stdio so AI coding agents can query your codebase with real structural accuracy - not regex, not grep.
626
1075
 
627
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-agent-demo.gif" alt="projscan answering two agent questions: what breaks if I rename buildCodeGraph (impact analysis with definitions, direct callers, transitive reach), and where should I fix first (ranked hotspots with cyclomatic complexity)" width="700">
1076
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.2.0/docs/projscan-agent-demo.gif" alt="projscan answering two agent questions: what breaks if I rename buildCodeGraph (impact analysis with definitions, direct callers, transitive reach), and where should I fix first (ranked hotspots with cyclomatic complexity)" width="700">
628
1077
 
629
1078
  Two questions an agent asks; structural answers in milliseconds. *"What breaks if I rename `buildCodeGraph`?"* → 31 direct callers, 97 files reachable. *"Where should I fix first?"* → ranked hotspots with AST cyclomatic complexity, churn, and ownership signals.
630
1079
 
@@ -751,13 +1200,20 @@ Capability is advertised under `experimental.fileChanged` on `initialize` so cli
751
1200
 
752
1201
  ### What agents can ask
753
1202
 
754
- - *"Who imports `src/auth/jwt.ts`?"* → `projscan_semantic_graph { query: { direction: "importers", file: "src/auth/jwt.ts" } }`
1203
+ - *"Who imports `src/auth/jwt.ts`?"* → `projscan_semantic_graph { query: { direction: "importers", file: "src/auth/jwt.ts" } }` or `projscan semantic-graph --query importers --file src/auth/jwt.ts --format json`
1204
+ - *"Which files import `chalk`?"* or *"Which files import package `chalk`?"* → `projscan_semantic_graph { query: { direction: "package_importers", symbol: "chalk" } }` or `projscan semantic-graph --query package_importers --symbol chalk --format json`
755
1205
  - *"Give me the whole agent-safe graph contract."* → `projscan_semantic_graph`
756
1206
  - *"Did this wrapper connect a source reader to a dangerous sink?"* → `projscan_dataflow`
757
- - *"Where is `runAudit` defined?"* → `projscan_search { query: "runAudit", scope: "symbols" }`
1207
+ - *"Explain issue `missing-test-framework`."* → `projscan_explain_issue { issue_id: "missing-test-framework" }`
1208
+ - *"Where is `runAudit` defined?"* → `projscan_semantic_graph { query: { direction: "symbol_defs", symbol: "runAudit" } }` or `projscan semantic-graph --query symbol_defs --symbol runAudit --format json`
758
1209
  - *"Which files implement auth?"* → `projscan_search { query: "auth", scope: "content" }`
1210
+ - *"Who should I ask about auth?"* → `projscan_search { query: "auth" }`
1211
+ - *"Which tests cover auth?"* → `projscan_search { query: "tests for auth" }`
759
1212
  - *"What are the scariest untested files?"* → `projscan_coverage`
1213
+ - *"Which files have no tests?"* → `projscan_coverage`
760
1214
  - *"What breaks if I bump chalk to 6?"* → `projscan_upgrade { package: "chalk" }`
1215
+ - *"Show circular dependencies."* → `projscan_coupling { direction: "cycles_only" }` or `projscan coupling --cycles-only --format json`
1216
+ - *"What modules are tightly coupled?"* → `projscan_coupling` or `projscan coupling --format json`
761
1217
  - *"Where should I refactor first?"* → `projscan_hotspots`
762
1218
  - *"What should my agent do first in this repo?"* → `projscan_start { mode: "before_edit" }`
763
1219
  - *"How do I understand the repo before editing?"* → `projscan_understand { view: "map" }`
@@ -827,7 +1283,7 @@ Capability is advertised under `experimental.fileChanged` on `initialize` so cli
827
1283
  - **`projscan_apply_fix`** *(1.6)* - mechanically execute the safe fix templates. Default is dry-run; pass `confirm: true` to write. Atomic writes, per-apply rollback record at `.projscan-cache/rollbacks/<id>.json`. Reverse with `action: "rollback", rollback_id: ...`. Six templates supported at this release: `unused-dependency-*`, `missing-test-framework`, `missing-eslint`, `missing-prettier`, `missing-editorconfig`, `missing-readme`.
828
1284
  - **`projscan_taint`** *(1.6)* - source-to-sink reachability over the per-function call graph. Built-in defaults cover common JS / Python sources (`process.env`, `req.body`, etc.) and sinks (`exec`, `eval`, `db.query`, etc.). Project-specific names go in `.projscanrc.json` `taint`. `projscan_review` automatically diffs taint flows between base and head and **blocks any PR that introduces a new flow**. In 3.0.2, review surfaces hardened `newDataflowRisks`, compact `graphEvidence`, and graph-readiness gates for safer handoff.
829
1285
 
830
- Analyzer plugins can optionally read graph/dataflow context through `check(rootPath, files, context)` while staying on manifest schema v1. The packaged `graph-context` example shows `context.getSemanticGraph()` and `context.getDataflow()` in a real analyzer. For analyzer and reporter plugin authoring, manifest validation, `--reporter <name>`, and the trust model, see [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-AUTHORING.md).
1286
+ Analyzer plugins can optionally read graph/dataflow context through `check(rootPath, files, context)` while staying on manifest schema v1. The packaged `graph-context` example shows `context.getSemanticGraph()` and `context.getDataflow()` in a real analyzer. For analyzer and reporter plugin authoring, manifest validation, `--reporter <name>`, and the trust model, see [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.2.0/docs/PLUGIN-AUTHORING.md).
831
1287
 
832
1288
  ### Context-window budgeting
833
1289