projscan 4.11.0 → 4.11.1
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/README.md +48 -36
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/tool-manifest.json +2 -2
- package/docs/demos/projscan-4-1-demo.html +214 -2
- package/docs/projscan-mission-control.png +0 -0
- package/docs/projscan-proof-cards.png +0 -0
- package/package.json +2 -1
- package/scripts/capture-readme-assets.mjs +6 -0
package/README.md
CHANGED
|
@@ -102,6 +102,8 @@ You get Proof Cards: each recommendation carries local evidence, impact, a safe
|
|
|
102
102
|
|
|
103
103
|
Use the risk delta simulator before a refactor or extraction. It predicts likely touched files, affected tests, contract surfaces, rollout steps, proof commands, and before/after risk from local evidence. It is read-only: it does not edit files, run the plan, release, tag, publish, or deploy.
|
|
104
104
|
|
|
105
|
+
<img src="docs/projscan-proof-cards.png" alt="projscan assess showing a Proof Card with evidence, impact, safe change shape, verification commands, feedback path, and risk delta" width="760">
|
|
106
|
+
|
|
105
107
|
Success criteria: the team sees the one or two highest-value fixes, why they matter, how to prove them, and whether ship-readiness still needs caution or review.
|
|
106
108
|
|
|
107
109
|
## Mission Control
|
|
@@ -143,6 +145,16 @@ npm run docs:screenshots
|
|
|
143
145
|
npm run docs:demos
|
|
144
146
|
```
|
|
145
147
|
|
|
148
|
+
## 4.11.1 Notes
|
|
149
|
+
|
|
150
|
+
4.11.1 is a public README media refresh for the proof-first release:
|
|
151
|
+
|
|
152
|
+
- Added a dedicated Proof Cards screenshot for `projscan assess` and
|
|
153
|
+
`projscan simulate`.
|
|
154
|
+
- Regenerated README screenshots so public media shows the current 47-tool MCP
|
|
155
|
+
surface.
|
|
156
|
+
- Updated website handoff guidance to use immutable `v4.11.1` media URLs.
|
|
157
|
+
|
|
146
158
|
## 4.11.0 Notes
|
|
147
159
|
|
|
148
160
|
4.11.0 is the proof-first engineering command center release:
|
|
@@ -183,45 +195,45 @@ npx -y projscan mcp --watch
|
|
|
183
195
|
|
|
184
196
|
### Agent Questions
|
|
185
197
|
|
|
186
|
-
| Agent question | CLI or MCP route
|
|
187
|
-
| -------------------------------------------- |
|
|
188
|
-
| Which files implement auth? | `projscan search "auth" --format json`
|
|
189
|
-
| Who imports this file? | `projscan semantic-graph --query importers --file src/auth/jwt.ts --format json`
|
|
190
|
-
| What breaks if I rename this symbol? | `projscan impact --symbol buildCodeGraph --format json`
|
|
191
|
-
| What should I fix first? | `projscan bug-hunt --format json`
|
|
192
|
-
| What is risky and worth fixing this week? | `projscan assess --goal "make this repo safer to ship this week"`
|
|
198
|
+
| Agent question | CLI or MCP route |
|
|
199
|
+
| -------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
200
|
+
| Which files implement auth? | `projscan search "auth" --format json` |
|
|
201
|
+
| Who imports this file? | `projscan semantic-graph --query importers --file src/auth/jwt.ts --format json` |
|
|
202
|
+
| What breaks if I rename this symbol? | `projscan impact --symbol buildCodeGraph --format json` |
|
|
203
|
+
| What should I fix first? | `projscan bug-hunt --format json` |
|
|
204
|
+
| What is risky and worth fixing this week? | `projscan assess --goal "make this repo safer to ship this week"` |
|
|
193
205
|
| Is this refactor worth doing? | `projscan simulate --plan "split bugHunt.ts into ranking, evidence, and output modules"` |
|
|
194
|
-
| Which files have high risk and low coverage? | `projscan coverage --format json`
|
|
195
|
-
| What should my agent do next? | `projscan workplan --format json`
|
|
196
|
-
| Which proof belongs in this PR? | `projscan evidence-pack --pr-comment`
|
|
197
|
-
| Is this branch ready to merge? | `projscan preflight --mode before_merge --format json`
|
|
206
|
+
| Which files have high risk and low coverage? | `projscan coverage --format json` |
|
|
207
|
+
| What should my agent do next? | `projscan workplan --format json` |
|
|
208
|
+
| Which proof belongs in this PR? | `projscan evidence-pack --pr-comment` |
|
|
209
|
+
| Is this branch ready to merge? | `projscan preflight --mode before_merge --format json` |
|
|
198
210
|
|
|
199
211
|
## Command Map
|
|
200
212
|
|
|
201
|
-
| Command | Use it when you need
|
|
202
|
-
| ------------------------- |
|
|
203
|
-
| `projscan start` | first-60-seconds orientation, routing, and Mission Control
|
|
204
|
-
| `projscan understand` | cited repo map, runtime flows, public contracts, and change readiness
|
|
205
|
-
| `projscan preflight` | proceed, caution, or block gate for edit, commit, or merge
|
|
213
|
+
| Command | Use it when you need |
|
|
214
|
+
| ------------------------- | --------------------------------------------------------------------------- |
|
|
215
|
+
| `projscan start` | first-60-seconds orientation, routing, and Mission Control |
|
|
216
|
+
| `projscan understand` | cited repo map, runtime flows, public contracts, and change readiness |
|
|
217
|
+
| `projscan preflight` | proceed, caution, or block gate for edit, commit, or merge |
|
|
206
218
|
| `projscan assess` | proof-first assessment with Proof Cards, risk delta, and fix-first guidance |
|
|
207
219
|
| `projscan simulate` | risk delta simulator for a proposed change plan before editing |
|
|
208
|
-
| `projscan evidence-pack` | PR-ready proof with risks, owners, and next commands
|
|
209
|
-
| `projscan bug-hunt` | ranked fix queue from health, hotspots, session, and preflight evidence
|
|
210
|
-
| `projscan workplan` | ordered agent tasks with proof and handoff text
|
|
211
|
-
| `projscan doctor` | project health, tooling gaps, dead code, and supply-chain signals
|
|
212
|
-
| `projscan review` | one-call PR review from structural diff, risk, cycles, functions, and deps
|
|
213
|
-
| `projscan impact` | blast radius for a file or symbol before rename, delete, or upgrade
|
|
214
|
-
| `projscan semantic-graph` | imports, exports, importers, symbol definitions, and package importers
|
|
215
|
-
| `projscan dataflow` | framework-aware source-to-sink risks
|
|
216
|
-
| `projscan hotspots` | churn, complexity, ownership, and coverage risk ranking
|
|
217
|
-
| `projscan coverage` | high-risk files with weak test coverage
|
|
218
|
-
| `projscan dependencies` | dependency inventory, license summary, and risk notes
|
|
219
|
-
| `projscan upgrade <pkg>` | offline upgrade impact from changelog and importer evidence
|
|
220
|
-
| `projscan audit` | normalized `npm audit` findings and SARIF
|
|
221
|
-
| `projscan coordinate` | collisions, claims, and merge-risk across worktrees
|
|
222
|
-
| `projscan plugin` | local analyzer and reporter plugin workflow
|
|
223
|
-
| `projscan privacy-check` | local scan boundary, telemetry, ignore rules, and network-capable paths
|
|
224
|
-
| `projscan mcp` | MCP server over stdio
|
|
220
|
+
| `projscan evidence-pack` | PR-ready proof with risks, owners, and next commands |
|
|
221
|
+
| `projscan bug-hunt` | ranked fix queue from health, hotspots, session, and preflight evidence |
|
|
222
|
+
| `projscan workplan` | ordered agent tasks with proof and handoff text |
|
|
223
|
+
| `projscan doctor` | project health, tooling gaps, dead code, and supply-chain signals |
|
|
224
|
+
| `projscan review` | one-call PR review from structural diff, risk, cycles, functions, and deps |
|
|
225
|
+
| `projscan impact` | blast radius for a file or symbol before rename, delete, or upgrade |
|
|
226
|
+
| `projscan semantic-graph` | imports, exports, importers, symbol definitions, and package importers |
|
|
227
|
+
| `projscan dataflow` | framework-aware source-to-sink risks |
|
|
228
|
+
| `projscan hotspots` | churn, complexity, ownership, and coverage risk ranking |
|
|
229
|
+
| `projscan coverage` | high-risk files with weak test coverage |
|
|
230
|
+
| `projscan dependencies` | dependency inventory, license summary, and risk notes |
|
|
231
|
+
| `projscan upgrade <pkg>` | offline upgrade impact from changelog and importer evidence |
|
|
232
|
+
| `projscan audit` | normalized `npm audit` findings and SARIF |
|
|
233
|
+
| `projscan coordinate` | collisions, claims, and merge-risk across worktrees |
|
|
234
|
+
| `projscan plugin` | local analyzer and reporter plugin workflow |
|
|
235
|
+
| `projscan privacy-check` | local scan boundary, telemetry, ignore rules, and network-capable paths |
|
|
236
|
+
| `projscan mcp` | MCP server over stdio |
|
|
225
237
|
|
|
226
238
|
Run the generated command help when you need flags:
|
|
227
239
|
|
|
@@ -285,7 +297,7 @@ Use `suppress` for a known false positive in a specific path without disabling
|
|
|
285
297
|
the rule everywhere. For one line, add an inline directive next to the value:
|
|
286
298
|
|
|
287
299
|
```ts
|
|
288
|
-
const firebaseKey =
|
|
300
|
+
const firebaseKey = 'AIza...'; // projscan-ignore-line hardcoded-secret -- Firebase web keys are public identifiers
|
|
289
301
|
```
|
|
290
302
|
|
|
291
303
|
Config docs live in [docs/GUIDE.md](docs/GUIDE.md#configuration-projscanrc).
|
|
@@ -394,7 +406,7 @@ Supply-chain scanners may flag package strings or APIs used by `git`, `npm audit
|
|
|
394
406
|
|
|
395
407
|
## Install Notes
|
|
396
408
|
|
|
397
|
-
`projscan@4.11.
|
|
409
|
+
`projscan@4.11.1` has seven direct runtime dependencies:
|
|
398
410
|
|
|
399
411
|
- `@babel/parser`
|
|
400
412
|
- `@babel/types`
|
|
@@ -404,7 +416,7 @@ Supply-chain scanners may flag package strings or APIs used by `git`, `npm audit
|
|
|
404
416
|
- `ora`
|
|
405
417
|
- `web-tree-sitter`
|
|
406
418
|
|
|
407
|
-
If npm prints `allow-scripts` warnings during a global install, check which package names it lists. projscan core does not need `node-gyp` grammar builds at runtime in 4.11.
|
|
419
|
+
If npm prints `allow-scripts` warnings during a global install, check which package names it lists. projscan core does not need `node-gyp` grammar builds at runtime in 4.11.1. Open an issue with the warning text if npm reports install scripts from `projscan@latest`, or run `projscan feedback intake --text "<warning text>" --format json` to turn it into a focused setup-trust task.
|
|
408
420
|
|
|
409
421
|
The grammar packages are build-time sources, not global-install dependencies. Published grammar assets include `tree-sitter-python.wasm` and `tree-sitter-c_sharp.wasm`.
|
|
410
422
|
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.5",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:ac1a1fd3-2c78-4830-8579-508d0b0ff5e9",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "2026-06-
|
|
7
|
+
"timestamp": "2026-06-22T06:58:43.839Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "projscan",
|
|
11
11
|
"name": "projscan-sbom-generator",
|
|
12
|
-
"version": "4.11.
|
|
12
|
+
"version": "4.11.1"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
16
|
"type": "application",
|
|
17
|
-
"bom-ref": "pkg:npm/projscan@4.11.
|
|
17
|
+
"bom-ref": "pkg:npm/projscan@4.11.1",
|
|
18
18
|
"name": "projscan",
|
|
19
|
-
"version": "4.11.
|
|
20
|
-
"purl": "pkg:npm/projscan@4.11.
|
|
19
|
+
"version": "4.11.1",
|
|
20
|
+
"purl": "pkg:npm/projscan@4.11.1"
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"components": [
|
package/dist/tool-manifest.json
CHANGED
|
@@ -377,6 +377,109 @@
|
|
|
377
377
|
background: var(--red);
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
+
.assess {
|
|
381
|
+
padding-top: 74px;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.assess-header {
|
|
385
|
+
display: grid;
|
|
386
|
+
grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
|
|
387
|
+
gap: 24px;
|
|
388
|
+
align-items: end;
|
|
389
|
+
margin-bottom: 24px;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
.assess-header h2 {
|
|
393
|
+
margin-bottom: 10px;
|
|
394
|
+
font-size: 44px;
|
|
395
|
+
line-height: 1.06;
|
|
396
|
+
letter-spacing: 0;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.assess-header p {
|
|
400
|
+
margin-bottom: 0;
|
|
401
|
+
color: var(--muted);
|
|
402
|
+
font-size: 18px;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.proof-card-grid {
|
|
406
|
+
display: grid;
|
|
407
|
+
grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
|
|
408
|
+
gap: 22px;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.proof-card {
|
|
412
|
+
min-height: 470px;
|
|
413
|
+
padding: 24px;
|
|
414
|
+
border: 1px solid var(--line);
|
|
415
|
+
border-radius: 8px;
|
|
416
|
+
background: var(--panel);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.proof-card h3 {
|
|
420
|
+
margin-bottom: 8px;
|
|
421
|
+
font-size: 30px;
|
|
422
|
+
line-height: 1.12;
|
|
423
|
+
letter-spacing: 0;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.proof-card p {
|
|
427
|
+
margin-bottom: 18px;
|
|
428
|
+
color: var(--muted);
|
|
429
|
+
font-size: 15px;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.evidence-list {
|
|
433
|
+
display: grid;
|
|
434
|
+
gap: 10px;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.evidence-item {
|
|
438
|
+
display: grid;
|
|
439
|
+
grid-template-columns: 118px minmax(0, 1fr);
|
|
440
|
+
gap: 12px;
|
|
441
|
+
padding: 13px 0;
|
|
442
|
+
border-top: 1px solid var(--line);
|
|
443
|
+
font-size: 14px;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.evidence-item strong {
|
|
447
|
+
color: var(--ink);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.evidence-item span {
|
|
451
|
+
color: var(--muted);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.delta-row {
|
|
455
|
+
display: grid;
|
|
456
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
457
|
+
gap: 10px;
|
|
458
|
+
margin-top: 18px;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.delta {
|
|
462
|
+
min-height: 82px;
|
|
463
|
+
padding: 13px;
|
|
464
|
+
border: 1px solid var(--line);
|
|
465
|
+
border-radius: 8px;
|
|
466
|
+
background: #fbf7ef;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.delta strong {
|
|
470
|
+
display: block;
|
|
471
|
+
margin-bottom: 5px;
|
|
472
|
+
font-size: 24px;
|
|
473
|
+
line-height: 1;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
.delta span {
|
|
477
|
+
color: var(--muted);
|
|
478
|
+
font-size: 12px;
|
|
479
|
+
font-weight: 800;
|
|
480
|
+
text-transform: uppercase;
|
|
481
|
+
}
|
|
482
|
+
|
|
380
483
|
@media (max-width: 980px) {
|
|
381
484
|
.page {
|
|
382
485
|
width: min(100% - 32px, 760px);
|
|
@@ -385,6 +488,8 @@
|
|
|
385
488
|
|
|
386
489
|
.hero,
|
|
387
490
|
.proof-header,
|
|
491
|
+
.assess-header,
|
|
492
|
+
.proof-card-grid,
|
|
388
493
|
.workflow,
|
|
389
494
|
.grid {
|
|
390
495
|
grid-template-columns: 1fr;
|
|
@@ -408,7 +513,11 @@
|
|
|
408
513
|
}
|
|
409
514
|
|
|
410
515
|
body.proof-only .hero,
|
|
411
|
-
body.proof-only .grid
|
|
516
|
+
body.proof-only .grid,
|
|
517
|
+
body.proof-only .assess,
|
|
518
|
+
body.assess-only .hero,
|
|
519
|
+
body.assess-only .grid,
|
|
520
|
+
body.assess-only .proof {
|
|
412
521
|
display: none;
|
|
413
522
|
}
|
|
414
523
|
|
|
@@ -419,6 +528,14 @@
|
|
|
419
528
|
body.proof-only .proof-header {
|
|
420
529
|
margin-top: 0;
|
|
421
530
|
}
|
|
531
|
+
|
|
532
|
+
body.assess-only .assess {
|
|
533
|
+
padding-top: 0;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
body.assess-only .assess-header {
|
|
537
|
+
margin-top: 0;
|
|
538
|
+
}
|
|
422
539
|
</style>
|
|
423
540
|
</head>
|
|
424
541
|
<body>
|
|
@@ -448,7 +565,7 @@
|
|
|
448
565
|
<span>mission and proof</span>
|
|
449
566
|
</div>
|
|
450
567
|
<div class="metric">
|
|
451
|
-
<strong>
|
|
568
|
+
<strong>47</strong>
|
|
452
569
|
<span>MCP tools</span>
|
|
453
570
|
</div>
|
|
454
571
|
<div class="metric">
|
|
@@ -617,11 +734,106 @@
|
|
|
617
734
|
</div>
|
|
618
735
|
</div>
|
|
619
736
|
</section>
|
|
737
|
+
|
|
738
|
+
<section class="assess" id="assess" aria-label="Proof Cards assessment view">
|
|
739
|
+
<div class="assess-header">
|
|
740
|
+
<div>
|
|
741
|
+
<p class="eyebrow">Proof-first assessment</p>
|
|
742
|
+
<h2>Pick the safest next fix.</h2>
|
|
743
|
+
</div>
|
|
744
|
+
<p>
|
|
745
|
+
<code>projscan assess</code> turns local quality, bug-hunt, and preflight evidence into
|
|
746
|
+
Proof Cards. Each card names the risk, the safest change shape, and the commands that
|
|
747
|
+
prove the risk went down.
|
|
748
|
+
</p>
|
|
749
|
+
</div>
|
|
750
|
+
|
|
751
|
+
<div class="proof-card-grid">
|
|
752
|
+
<section class="terminal compact-terminal" aria-label="Assess terminal output">
|
|
753
|
+
<div class="terminal-bar">
|
|
754
|
+
<span class="dot red"></span>
|
|
755
|
+
<span class="dot amber"></span>
|
|
756
|
+
<span class="dot green"></span>
|
|
757
|
+
<span class="terminal-title">projscan assess --mode fix-first</span>
|
|
758
|
+
</div>
|
|
759
|
+
<div class="terminal-body">
|
|
760
|
+
<span class="line"
|
|
761
|
+
><span class="prompt">$</span>
|
|
762
|
+
<span class="cmd">projscan assess --mode fix-first --format markdown</span></span
|
|
763
|
+
>
|
|
764
|
+
<span class="line dim">Proof-first assessment</span>
|
|
765
|
+
<span class="line"> </span>
|
|
766
|
+
<span class="line term-heading">Fix first: maintainability hotspot</span>
|
|
767
|
+
<span class="line">src/core/bugHunt.ts combines ranking, evidence, and output.</span>
|
|
768
|
+
<span class="line success">Confidence: high</span>
|
|
769
|
+
<span class="line notice">Risk delta: 76 -> 61 if split behind tests</span>
|
|
770
|
+
<span class="line"> </span>
|
|
771
|
+
<span class="line term-heading">Proof commands</span>
|
|
772
|
+
<span class="line success">npm run typecheck</span>
|
|
773
|
+
<span class="line success">npm run lint</span>
|
|
774
|
+
<span class="line success">vitest tests/core/bugHunt.test.ts</span>
|
|
775
|
+
<span class="line"> </span>
|
|
776
|
+
<span class="line term-heading">Simulate before editing</span>
|
|
777
|
+
<span class="line notice"
|
|
778
|
+
>projscan simulate --plan "split bugHunt.ts into ranking..."</span
|
|
779
|
+
>
|
|
780
|
+
</div>
|
|
781
|
+
</section>
|
|
782
|
+
|
|
783
|
+
<article class="proof-card" aria-label="Proof Card">
|
|
784
|
+
<span class="label blue">Proof Card</span>
|
|
785
|
+
<h3>Maintainability hotspot</h3>
|
|
786
|
+
<p>
|
|
787
|
+
Fix the extraction only when local evidence shows lower coupling and focused tests can
|
|
788
|
+
prove behavior stayed stable.
|
|
789
|
+
</p>
|
|
790
|
+
<div class="evidence-list">
|
|
791
|
+
<div class="evidence-item">
|
|
792
|
+
<strong>Evidence</strong>
|
|
793
|
+
<span>high churn, high complexity, broad imports, direct bug-hunt tests</span>
|
|
794
|
+
</div>
|
|
795
|
+
<div class="evidence-item">
|
|
796
|
+
<strong>Impact</strong>
|
|
797
|
+
<span>bug ranking, MCP findings, release review, PR evidence packs</span>
|
|
798
|
+
</div>
|
|
799
|
+
<div class="evidence-item">
|
|
800
|
+
<strong>Safe shape</strong>
|
|
801
|
+
<span>extract ranking, evidence, and markdown output behind existing tests</span>
|
|
802
|
+
</div>
|
|
803
|
+
<div class="evidence-item">
|
|
804
|
+
<strong>Verify</strong>
|
|
805
|
+
<span>typecheck, lint, focused Vitest, then bug-hunt smoke</span>
|
|
806
|
+
</div>
|
|
807
|
+
<div class="evidence-item">
|
|
808
|
+
<strong>Feedback</strong>
|
|
809
|
+
<span>accept, suppress, or feed false-positive notes back into trust memory</span>
|
|
810
|
+
</div>
|
|
811
|
+
</div>
|
|
812
|
+
<div class="delta-row" aria-label="Risk delta">
|
|
813
|
+
<div class="delta">
|
|
814
|
+
<strong>76</strong>
|
|
815
|
+
<span>before risk</span>
|
|
816
|
+
</div>
|
|
817
|
+
<div class="delta">
|
|
818
|
+
<strong>61</strong>
|
|
819
|
+
<span>after risk</span>
|
|
820
|
+
</div>
|
|
821
|
+
<div class="delta">
|
|
822
|
+
<strong>3</strong>
|
|
823
|
+
<span>proof commands</span>
|
|
824
|
+
</div>
|
|
825
|
+
</div>
|
|
826
|
+
</article>
|
|
827
|
+
</div>
|
|
828
|
+
</section>
|
|
620
829
|
</main>
|
|
621
830
|
<script>
|
|
622
831
|
if (window.location.hash === '#proof') {
|
|
623
832
|
document.body.classList.add('proof-only');
|
|
624
833
|
}
|
|
834
|
+
if (window.location.hash === '#assess') {
|
|
835
|
+
document.body.classList.add('assess-only');
|
|
836
|
+
}
|
|
625
837
|
document.documentElement.dataset.ready = 'true';
|
|
626
838
|
</script>
|
|
627
839
|
</body>
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projscan",
|
|
3
3
|
"mcpName": "io.github.abhiyoheswaran1/projscan",
|
|
4
|
-
"version": "4.11.
|
|
4
|
+
"version": "4.11.1",
|
|
5
5
|
"description": "Local code intelligence for agent-assisted engineering. Focused daily workflows for repo orientation before edits, proof before handoff or commit, and release-candidate review, with AST-backed evidence through an MCP server and CLI. Runs locally by default.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"docs/examples/swarm-coordination.md",
|
|
26
26
|
"docs/projscan-mission-control.png",
|
|
27
27
|
"docs/projscan-mission-control.gif",
|
|
28
|
+
"docs/projscan-proof-cards.png",
|
|
28
29
|
"docs/projscan-proof-router.png",
|
|
29
30
|
"docs/projscan-mission-proof.gif",
|
|
30
31
|
"docs/examples/plugins",
|
|
@@ -24,6 +24,12 @@ const captures = [
|
|
|
24
24
|
output: path.join(repoRoot, 'docs', 'projscan-proof-router.png'),
|
|
25
25
|
viewport: '1440,760',
|
|
26
26
|
},
|
|
27
|
+
{
|
|
28
|
+
name: 'Proof Cards assessment',
|
|
29
|
+
url: `${pathToFileURL(demoPath).href}#assess`,
|
|
30
|
+
output: path.join(repoRoot, 'docs', 'projscan-proof-cards.png'),
|
|
31
|
+
viewport: '1440,820',
|
|
32
|
+
},
|
|
27
33
|
];
|
|
28
34
|
|
|
29
35
|
for (const capture of captures) {
|