projscan 4.1.0 → 4.3.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.
@@ -422,33 +422,34 @@
422
422
  <section class="hero" aria-label="projscan Mission Control">
423
423
  <div class="intro">
424
424
  <div>
425
- <p class="eyebrow">Unreleased developer-life upgrade</p>
426
- <h1>Plain-language repo work, routed to proof.</h1>
425
+ <p class="eyebrow">Mission Outcome Loop</p>
426
+ <h1>Resume from real proof.</h1>
427
427
  <p class="lead">
428
- projscan now turns a developer's intent into the right local
429
- command, the first files to trust, the ready actions, and the
430
- proof commands that make a PR reviewable.
428
+ projscan routes a developer goal, saves the mission, reads the
429
+ proof state, and tells the next agent what changed, what remains,
430
+ and whether the work is ready for version review.
431
431
  </p>
432
432
  <div class="pills" aria-label="Product capabilities">
433
433
  <span class="pill">Mission Control</span>
434
434
  <span class="pill">Local-first</span>
435
435
  <span class="pill">MCP-ready</span>
436
- <span class="pill">No source upload</span>
436
+ <span class="pill">Outcome resume</span>
437
+ <span class="pill">Proof report</span>
437
438
  </div>
438
439
  </div>
439
440
 
440
441
  <div class="metric-row" aria-label="Release candidate signals">
441
442
  <div class="metric">
442
- <strong>1 call</strong>
443
- <span>intent to workflow</span>
443
+ <strong>1 bundle</strong>
444
+ <span>mission plus proof</span>
444
445
  </div>
445
446
  <div class="metric">
446
447
  <strong>45</strong>
447
- <span>MCP tools preserved</span>
448
+ <span>MCP tools</span>
448
449
  </div>
449
450
  <div class="metric">
450
- <strong>A</strong>
451
- <span>dogfood health gate</span>
451
+ <strong>11 / 12</strong>
452
+ <span>AST adapters / languages</span>
452
453
  </div>
453
454
  </div>
454
455
  </div>
@@ -458,63 +459,78 @@
458
459
  <span class="dot red"></span>
459
460
  <span class="dot amber"></span>
460
461
  <span class="dot green"></span>
461
- <span class="terminal-title">projscan start --intent</span>
462
+ <span class="terminal-title">projscan start --mission</span>
462
463
  </div>
463
464
  <div class="terminal-body">
464
465
  <span class="line"
465
466
  ><span class="prompt">$</span>
466
467
  <span class="cmd"
467
- >projscan start --intent "is it safe to commit this
468
- change?"</span
468
+ >projscan start --mission .projscan/mission</span
469
469
  ></span
470
470
  >
471
471
  <span class="line dim">ProjScan Mission Control</span>
472
- <span class="line">Intent: is it safe to commit this change?</span>
473
- <span class="line">Status: <span class="warn">needs_attention</span></span>
472
+ <span class="line">Mission: .projscan/mission</span>
473
+ <span class="line">Status: <span class="success">passed</span></span>
474
474
  <span class="line"
475
- >Route:
476
- <span class="notice">Safety gate via projscan_preflight</span></span
475
+ >Outcome:
476
+ <span class="notice">proof passed after 3 commands</span></span
477
477
  >
478
478
  <span class="line dim"
479
- >confidence: high; matched: safe, commit</span
479
+ >read proof-logs/summary.json and status.jsonl</span
480
480
  >
481
481
 
482
482
  <div class="term-section">
483
- <span class="line term-heading">Action Plan</span>
483
+ <span class="line term-heading">What Changed</span>
484
484
  <span class="line"
485
- >- Use projscan_preflight before broader workflow
486
- commands</span
485
+ >- Mission proof passed after 3 command(s).</span
487
486
  >
488
487
  <span class="line"
489
- >- Preserve the original goal across follow-up evidence</span
488
+ >- 1 reviewer decision recorded.</span
490
489
  >
491
- <span class="line"
492
- >- Surface blockers with owner, file, or next command</span
490
+ <span class="line">- 0 failed gates remain.</span>
491
+ </div>
492
+
493
+ <div class="term-section">
494
+ <span class="line term-heading">What Remains</span>
495
+ <span class="line success"
496
+ >Run ./review.sh and choose a reviewer reply.</span
497
+ >
498
+ <span class="line success"
499
+ >Version candidate: review_candidate</span
493
500
  >
494
501
  </div>
495
502
 
496
503
  <div class="term-section">
497
- <span class="line term-heading">Ready Proof</span>
504
+ <span class="line term-heading">Outcome Commands</span>
498
505
  <span class="line success"
499
- >- projscan preflight --mode before_commit --format json</span
506
+ >projscan start --mission .projscan/mission</span
500
507
  >
501
508
  <span class="line success"
502
- >- projscan understand --view verify --format json</span
509
+ >projscan mission-proof --mission .projscan/mission</span
503
510
  >
504
511
  <span class="line success"
505
- >- projscan session touched --format json</span
512
+ >projscan mission-proof --baseline manual-runs.json</span
506
513
  >
514
+ <span class="line dim">all source stays local</span>
507
515
  </div>
508
516
 
509
517
  <div class="term-section">
510
- <span class="line term-heading">Done When</span>
511
- <span class="line"
512
- >- Preflight returns proceed or documented manual review</span
518
+ <span class="line term-heading">Proof Evidence</span>
519
+ <span class="line success"
520
+ >proof-logs/summary.json: passed</span
513
521
  >
514
- <span class="line"
515
- >- Every blocker has a concrete follow-up command</span
522
+ <span class="line success"
523
+ >proof-logs/status.jsonl: 3 rows</span
516
524
  >
517
525
  </div>
526
+
527
+ <div class="term-section">
528
+ <span class="line term-heading">Review Gate</span>
529
+ <span class="line">capture: git status --short</span>
530
+ <span class="line">capture: git diff --stat</span>
531
+ <span class="line success">reply: review version candidate</span>
532
+ <span class="line warn">do not publish until approved</span>
533
+ </div>
518
534
  </div>
519
535
  </section>
520
536
  </section>
@@ -522,7 +538,7 @@
522
538
  <section class="grid" aria-label="New developer workflows">
523
539
  <article class="card">
524
540
  <span class="label green">Goal routing</span>
525
- <h2>Ask in human language.</h2>
541
+ <h2>Ask in plain language.</h2>
526
542
  <p>
527
543
  Route privacy, merge readiness, refactor risk, local setup,
528
544
  ownership, dependency, release, and handoff questions to the right
@@ -530,21 +546,21 @@
530
546
  </p>
531
547
  </article>
532
548
  <article class="card">
533
- <span class="label blue">Repo context</span>
534
- <h2>Start from cited evidence.</h2>
549
+ <span class="label blue">Outcome resume</span>
550
+ <h2>Start from saved proof.</h2>
535
551
  <p>
536
- Repo maps now include read-first files, package contracts, runtime
537
- flows, public exports, proof tiers, setup commands, and unknowns
538
- that need human input.
552
+ <code>projscan start --mission</code> reads the bundle proof state
553
+ and gives the next agent a focused "what changed / what remains"
554
+ handoff.
539
555
  </p>
540
556
  </article>
541
557
  <article class="card">
542
- <span class="label amber">Review proof</span>
543
- <h2>Make PRs easier to approve.</h2>
558
+ <span class="label amber">Proof report</span>
559
+ <h2>Measure the saved work.</h2>
544
560
  <p>
545
- Mission Control carries the original intent into preflight,
546
- verification, session memory, evidence packs, and reviewer-ready
547
- next commands.
561
+ <code>projscan mission-proof</code> reports proof completion,
562
+ reviewer approvals, reruns, failed gates, time saved, and local
563
+ risk avoided.
548
564
  </p>
549
565
  </article>
550
566
  </section>
@@ -552,12 +568,13 @@
552
568
  <section class="proof" id="proof" aria-label="Proof and dependency view">
553
569
  <div class="proof-header">
554
570
  <div>
555
- <p class="eyebrow">Intent, graph, and dependency intelligence</p>
556
- <h2>Fewer dead-end agent turns.</h2>
571
+ <p class="eyebrow">Proof, review, and adoption evidence</p>
572
+ <h2>Close the loop.</h2>
557
573
  </div>
558
574
  <p>
559
- The new flow is built for a developer asking "what now?" after a
560
- change, a failed run, a risky rename, or a dependency question.
575
+ Developers and agents can resume from a saved mission bundle,
576
+ summarize pass/fail evidence, and compare local proof against a
577
+ manual baseline without sending source code anywhere.
561
578
  </p>
562
579
  </div>
563
580
 
@@ -567,34 +584,32 @@
567
584
  <span class="dot red"></span>
568
585
  <span class="dot amber"></span>
569
586
  <span class="dot green"></span>
570
- <span class="terminal-title">projscan route</span>
587
+ <span class="terminal-title">projscan mission-proof</span>
571
588
  </div>
572
589
  <div class="terminal-body">
573
590
  <span class="line"
574
591
  ><span class="prompt">$</span>
575
592
  <span class="cmd"
576
- >projscan route "what breaks if I rename the auth token
577
- loader"</span
593
+ >projscan mission-proof --mission .projscan/mission --format
594
+ json</span
578
595
  ></span
579
596
  >
580
- <span class="line dim">Best tools for the developer goal</span>
597
+ <span class="line dim">Local proof summary</span>
581
598
  <span class="line">&nbsp;</span>
582
- <span class="line term-heading">1. projscan_impact</span>
583
- <span class="line">confidence: high</span>
584
- <span class="line">matched: breaks, rename</span>
585
- <span class="line notice"
586
- >Before renaming or deleting, see every caller that
587
- breaks.</span
588
- >
599
+ <span class="line term-heading">{"passed":1,"failed":0,</span>
589
600
  <span class="line success"
590
- >projscan impact --symbol buildCodeGraph --format json</span
601
+ >&nbsp;"reruns":0,"reviewerApprovals":1}</span
591
602
  >
592
603
  <span class="line">&nbsp;</span>
593
- <span class="line term-heading">2. projscan_dataflow</span>
594
- <span class="line">confidence: high</span>
595
- <span class="line">matched: token</span>
604
+ <span class="line term-heading">Risk avoided</span>
605
+ <span class="line success"
606
+ >- proof gate passed before release</span
607
+ >
608
+ <span class="line success"
609
+ >- version review is safe to request</span
610
+ >
596
611
  <span class="line notice"
597
- >Spot request-data reaching dangerous sinks.</span
612
+ >Next: projscan start --mission .projscan/mission</span
598
613
  >
599
614
  </div>
600
615
  </section>
@@ -603,35 +618,33 @@
603
618
  <div class="signal">
604
619
  <span class="tag green">Verify</span>
605
620
  <span>
606
- <strong>Proof selection</strong>
607
- Which tests should I run? now routes to
608
- <code>understand --view verify</code> instead of generic
609
- regression planning.
621
+ <strong>Outcome resume</strong>
622
+ <code>--mission</code> reads <code>summary.json</code>, status
623
+ rows, and reviewer decisions.
610
624
  </span>
611
625
  </div>
612
626
  <div class="signal">
613
- <span class="tag blue">Setup</span>
627
+ <span class="tag blue">MCP</span>
614
628
  <span>
615
- <strong>Local command discovery</strong>
616
- npm scripts, lint, typecheck, Storybook, Cypress, Playwright,
617
- Docker Compose, migrations, and seed/reset commands are called
618
- out where agents need them.
629
+ <strong>MCP start input</strong>
630
+ <code>mission_dir</code> carries the same proof outcome to
631
+ agent clients.
619
632
  </span>
620
633
  </div>
621
634
  <div class="signal">
622
- <span class="tag amber">License</span>
635
+ <span class="tag amber">List</span>
623
636
  <span>
624
- <strong>Dependency intelligence</strong>
625
- Dependency reports now summarize known licenses, copyleft risk,
626
- installed package sizes, and package importer lookups.
637
+ <strong>Proof summary</strong>
638
+ <code>mission-proof</code> reports completion, reruns, failed
639
+ gates, and approvals.
627
640
  </span>
628
641
  </div>
629
642
  <div class="signal">
630
- <span class="tag red">Trust</span>
643
+ <span class="tag red">Gate</span>
631
644
  <span>
632
- <strong>Release review guardrails</strong>
633
- Stable-surface checks preserve public CLI and MCP contracts
634
- while allowing additive intent support.
645
+ <strong>Version review</strong>
646
+ Outcome data says whether to request review or keep fixing
647
+ failed proof.
635
648
  </span>
636
649
  </div>
637
650
  </div>
Binary file
Binary file
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "projscan",
3
3
  "mcpName": "io.github.abhiyoheswaran1/projscan",
4
- "version": "4.1.0",
5
- "description": "Agent-first code intelligence. MCP server (2025-03-26) with AST parsing for JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; repo understanding maps (projscan_understand), stable v3 semantic graph (projscan_semantic_graph), dataflow risk engine with bridge-helper detection (projscan_dataflow), code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg, new taint flows, contract changes, and newDataflowRisks) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), first-60-seconds workflow orientation (projscan_start), agent workplans (projscan_workplan), bug-hunt queues (projscan_bug_hunt), product-line planning (projscan_release_train), evidence packs (projscan_evidence_pack), regression planning (projscan_regression_plan), agent briefs (projscan_agent_brief), quality scorecards (projscan_quality_scorecard), and preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
4
+ "version": "4.3.0",
5
+ "description": "Agent-first code intelligence. MCP server (2025-03-26) with 11 AST adapters covering 12 named languages: JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; repo understanding maps (projscan_understand), stable v3 semantic graph (projscan_semantic_graph), dataflow risk engine with bridge-helper detection (projscan_dataflow), code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg, new taint flows, contract changes, and newDataflowRisks) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), first-60-seconds workflow orientation (projscan_start), agent workplans (projscan_workplan), bug-hunt queues (projscan_bug_hunt), product-line planning (projscan_release_train), evidence packs (projscan_evidence_pack), regression planning (projscan_regression_plan), agent briefs (projscan_agent_brief), quality scorecards (projscan_quality_scorecard), and preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
@@ -16,7 +16,7 @@ const captures = [
16
16
  name: 'Mission Control hero',
17
17
  url: pathToFileURL(demoPath).href,
18
18
  output: path.join(repoRoot, 'docs', 'projscan-mission-control.png'),
19
- viewport: '1440,960',
19
+ viewport: '1440,1120',
20
20
  },
21
21
  {
22
22
  name: 'Intent and proof workflow',