projscan 3.0.3 → 3.0.5
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 +54 -27
- package/dist/cli/commands/dogfood.d.ts +1 -0
- package/dist/cli/commands/dogfood.js +62 -0
- package/dist/cli/commands/dogfood.js.map +1 -0
- package/dist/cli/commands/evidencePack.js +6 -0
- package/dist/cli/commands/evidencePack.js.map +1 -1
- package/dist/cli/commands/init.js +143 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.js +67 -3
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/start.d.ts +1 -0
- package/dist/cli/commands/start.js +86 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/workplan.js +17 -11
- package/dist/cli/commands/workplan.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/adoption.d.ts +86 -0
- package/dist/core/adoption.js +463 -0
- package/dist/core/adoption.js.map +1 -1
- package/dist/core/ast.d.ts +6 -0
- package/dist/core/ast.js +59 -11
- package/dist/core/ast.js.map +1 -1
- package/dist/core/bugHunt.js +19 -7
- package/dist/core/bugHunt.js.map +1 -1
- package/dist/core/dataflow.js +98 -9
- package/dist/core/dataflow.js.map +1 -1
- package/dist/core/dogfood.d.ts +6 -0
- package/dist/core/dogfood.js +116 -0
- package/dist/core/dogfood.js.map +1 -0
- package/dist/core/fixFirst.d.ts +8 -0
- package/dist/core/fixFirst.js +109 -0
- package/dist/core/fixFirst.js.map +1 -0
- package/dist/core/frameworkSources.d.ts +3 -1
- package/dist/core/frameworkSources.js +44 -3
- package/dist/core/frameworkSources.js.map +1 -1
- package/dist/core/indexCache.js +5 -1
- package/dist/core/indexCache.js.map +1 -1
- package/dist/core/preflight.js +32 -7
- package/dist/core/preflight.js.map +1 -1
- package/dist/core/qualityScorecard.js +5 -1
- package/dist/core/qualityScorecard.js.map +1 -1
- package/dist/core/releaseEvidence.d.ts +6 -1
- package/dist/core/releaseEvidence.js +478 -10
- package/dist/core/releaseEvidence.js.map +1 -1
- package/dist/core/start.d.ts +8 -0
- package/dist/core/start.js +193 -0
- package/dist/core/start.js.map +1 -0
- package/dist/core/taint.js +89 -9
- package/dist/core/taint.js.map +1 -1
- package/dist/core/workplan.d.ts +2 -1
- package/dist/core/workplan.js +80 -3
- package/dist/core/workplan.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools/adoption.js +7 -3
- package/dist/mcp/tools/adoption.js.map +1 -1
- package/dist/mcp/tools/evidencePack.js +5 -0
- package/dist/mcp/tools/evidencePack.js.map +1 -1
- package/dist/mcp/tools/start.d.ts +2 -0
- package/dist/mcp/tools/start.js +58 -0
- package/dist/mcp/tools/start.js.map +1 -0
- package/dist/mcp/tools.js +2 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/tool-manifest.json +48 -5
- package/dist/types.d.ts +188 -0
- package/dist/utils/baseline.js +62 -1
- package/dist/utils/baseline.js.map +1 -1
- package/dist/utils/formatSupport.d.ts +6 -0
- package/dist/utils/formatSupport.js +6 -0
- package/dist/utils/formatSupport.js.map +1 -1
- package/docs/PLUGIN-GALLERY.md +25 -0
- package/docs/examples/plugins/api-route-ownership.mjs +60 -0
- package/docs/examples/plugins/api-route-ownership.projscan-plugin.json +8 -0
- package/docs/examples/plugins/monorepo-boundary.mjs +37 -0
- package/docs/examples/plugins/monorepo-boundary.projscan-plugin.json +8 -0
- package/docs/examples/plugins/security-sensitive-files.mjs +18 -0
- package/docs/examples/plugins/security-sensitive-files.projscan-plugin.json +8 -0
- package/package.json +2 -2
package/dist/core/adoption.js
CHANGED
|
@@ -3,6 +3,11 @@ import fs from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { promisify } from 'node:util';
|
|
5
5
|
import { PLUGIN_PREVIEW_FLAG, discoverPluginManifests } from './plugins.js';
|
|
6
|
+
import { analyzeHotspots } from './hotspotAnalyzer.js';
|
|
7
|
+
import { collectIssues } from './issueEngine.js';
|
|
8
|
+
import { scanRepository } from './repositoryScanner.js';
|
|
9
|
+
import { saveBaseline } from '../utils/baseline.js';
|
|
10
|
+
import { applyConfigToIssues, loadConfig } from '../utils/config.js';
|
|
6
11
|
const execFileAsync = promisify(execFile);
|
|
7
12
|
export const MCP_CLIENT_IDS = [
|
|
8
13
|
'all',
|
|
@@ -16,6 +21,7 @@ export const MCP_CLIENT_IDS = [
|
|
|
16
21
|
'zed',
|
|
17
22
|
'gemini',
|
|
18
23
|
];
|
|
24
|
+
export const POLICY_STARTER_TEAMS = ['frontend', 'platform', 'security', 'monorepo'];
|
|
19
25
|
const INSTALL = {
|
|
20
26
|
command: 'npm install -g projscan',
|
|
21
27
|
runWithoutInstall: 'npx projscan',
|
|
@@ -133,6 +139,32 @@ export function getWorkflowRecipes() {
|
|
|
133
139
|
mcpTools: ['projscan_preflight', 'projscan_workplan'],
|
|
134
140
|
handoff: 'If preflight returns caution or block, follow suggestedNextActions before editing.',
|
|
135
141
|
},
|
|
142
|
+
{
|
|
143
|
+
id: 'team_bootstrap',
|
|
144
|
+
name: 'Team Bootstrap',
|
|
145
|
+
useWhen: 'Adopt projscan for a team or new repository.',
|
|
146
|
+
outcome: 'A team policy, PR workflow, ownership starter, baseline memory, MCP setup check, and first start report that make adoption repeatable.',
|
|
147
|
+
commands: [
|
|
148
|
+
'projscan init team --team platform',
|
|
149
|
+
'projscan start --mode before_edit --format json',
|
|
150
|
+
'projscan mcp doctor --client codex --format json',
|
|
151
|
+
],
|
|
152
|
+
mcpTools: ['projscan_adoption', 'projscan_start'],
|
|
153
|
+
handoff: 'Run init team once, commit the generated policy/workflow/ownership/baseline files, then tune thresholds after the first PR.',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
id: 'pr_automation',
|
|
157
|
+
name: 'PR Automation',
|
|
158
|
+
useWhen: 'Put projscan evidence directly in pull request review.',
|
|
159
|
+
outcome: 'Pull requests receive an approval comment and fail CI only when preflight returns block.',
|
|
160
|
+
commands: [
|
|
161
|
+
'projscan init github-action',
|
|
162
|
+
'projscan preflight --mode before_merge --format json',
|
|
163
|
+
'projscan evidence-pack --pr-comment',
|
|
164
|
+
],
|
|
165
|
+
mcpTools: ['projscan_preflight', 'projscan_evidence_pack'],
|
|
166
|
+
handoff: 'Treat block as a hard CI failure; use PR comment next actions for caution-level follow-up.',
|
|
167
|
+
},
|
|
136
168
|
{
|
|
137
169
|
id: 'bug_hunt',
|
|
138
170
|
name: 'Bug Hunt',
|
|
@@ -389,4 +421,435 @@ async function git(rootPath, args) {
|
|
|
389
421
|
maxBuffer: 1024 * 1024,
|
|
390
422
|
});
|
|
391
423
|
}
|
|
424
|
+
export function isPolicyStarterTeam(value) {
|
|
425
|
+
return typeof value === 'string' && POLICY_STARTER_TEAMS.includes(value);
|
|
426
|
+
}
|
|
427
|
+
export function getPolicyStarterKit(team) {
|
|
428
|
+
const kit = POLICY_KITS[team];
|
|
429
|
+
return {
|
|
430
|
+
schemaVersion: 1,
|
|
431
|
+
team,
|
|
432
|
+
label: kit.label,
|
|
433
|
+
config: cloneConfig(kit.config),
|
|
434
|
+
nextCommands: [...kit.nextCommands],
|
|
435
|
+
rationale: [...kit.rationale],
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
export async function writePolicyStarterKit(rootPath, team, options = {}) {
|
|
439
|
+
const target = path.join(rootPath, '.projscanrc.json');
|
|
440
|
+
const kit = getPolicyStarterKit(team);
|
|
441
|
+
try {
|
|
442
|
+
await fs.access(target);
|
|
443
|
+
if (options.force !== true) {
|
|
444
|
+
return {
|
|
445
|
+
...kit,
|
|
446
|
+
target,
|
|
447
|
+
created: false,
|
|
448
|
+
reason: '.projscanrc.json already exists; pass --force to overwrite it.',
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
catch {
|
|
453
|
+
// file does not exist
|
|
454
|
+
}
|
|
455
|
+
await fs.writeFile(target, `${JSON.stringify(kit.config, null, 2)}\n`, 'utf-8');
|
|
456
|
+
return {
|
|
457
|
+
...kit,
|
|
458
|
+
target,
|
|
459
|
+
created: true,
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
export async function writeTeamStarterKit(rootPath, team, options = {}) {
|
|
463
|
+
const policy = await writePolicyStarterKit(rootPath, team, options);
|
|
464
|
+
const action = await writeGithubActionStarter(rootPath, options);
|
|
465
|
+
const codeowners = await writeCodeownersStarter(rootPath, team, options);
|
|
466
|
+
const baseline = await writeInitialBaseline(rootPath, options);
|
|
467
|
+
return {
|
|
468
|
+
schemaVersion: 1,
|
|
469
|
+
team,
|
|
470
|
+
created: {
|
|
471
|
+
policy: policy.created,
|
|
472
|
+
githubAction: action.created,
|
|
473
|
+
codeowners: codeowners.created,
|
|
474
|
+
baseline: baseline.created,
|
|
475
|
+
},
|
|
476
|
+
files: {
|
|
477
|
+
policy: policy.target,
|
|
478
|
+
githubAction: action.target,
|
|
479
|
+
codeowners: codeowners.target,
|
|
480
|
+
baseline: baseline.target,
|
|
481
|
+
},
|
|
482
|
+
nextCommands: [
|
|
483
|
+
'projscan start --mode before_edit --format json',
|
|
484
|
+
'projscan mcp doctor --client codex --format json',
|
|
485
|
+
'projscan evidence-pack --pr-comment',
|
|
486
|
+
],
|
|
487
|
+
rationale: [
|
|
488
|
+
'Bootstraps policy, PR evidence automation, ownership routing, and baseline memory in one command.',
|
|
489
|
+
'The generated PR workflow posts evidence before enforcing block-only preflight failure.',
|
|
490
|
+
],
|
|
491
|
+
reasons: [policy.reason, action.reason, codeowners.reason, baseline.reason].filter((item) => typeof item === 'string'),
|
|
492
|
+
onboarding: buildTeamOnboarding(team),
|
|
493
|
+
};
|
|
494
|
+
}
|
|
495
|
+
function buildTeamOnboarding(team) {
|
|
496
|
+
return [
|
|
497
|
+
{
|
|
498
|
+
id: 'review-generated-files',
|
|
499
|
+
title: 'Review generated starter files',
|
|
500
|
+
why: 'Confirm policy thresholds, PR workflow behavior, CODEOWNERS handles, and baseline memory before committing the bootstrap.',
|
|
501
|
+
command: 'git diff -- .projscanrc.json .github/workflows/projscan.yml .github/CODEOWNERS .projscan-baseline.json',
|
|
502
|
+
files: ['.projscanrc.json', '.github/workflows/projscan.yml', '.github/CODEOWNERS', '.projscan-baseline.json'],
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
id: 'verify-mcp-setup',
|
|
506
|
+
title: 'Verify MCP setup',
|
|
507
|
+
why: 'Make sure the coding agent can start projscan before the first team PR depends on MCP evidence.',
|
|
508
|
+
command: 'projscan mcp doctor --client codex --format json',
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
id: 'open-first-pr',
|
|
512
|
+
title: 'Open the first PR with evidence',
|
|
513
|
+
why: 'The first PR should show the verdict, trust calibration, owner routing, baseline trend, and next commands in one reviewer surface.',
|
|
514
|
+
command: 'projscan evidence-pack --pr-comment',
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
id: 'tune-after-baseline',
|
|
518
|
+
title: `Tune the ${team} policy after the first baseline`,
|
|
519
|
+
why: 'Treat cautions as calibration data first; tighten thresholds only after the first real team review.',
|
|
520
|
+
command: 'projscan preflight --mode before_merge --format json',
|
|
521
|
+
},
|
|
522
|
+
];
|
|
523
|
+
}
|
|
524
|
+
async function writeCodeownersStarter(rootPath, team, options) {
|
|
525
|
+
const target = path.join(rootPath, '.github', 'CODEOWNERS');
|
|
526
|
+
try {
|
|
527
|
+
await fs.access(target);
|
|
528
|
+
if (options.force !== true)
|
|
529
|
+
return { target, created: false, reason: '.github/CODEOWNERS already exists; pass --force to overwrite it.' };
|
|
530
|
+
}
|
|
531
|
+
catch {
|
|
532
|
+
// file does not exist
|
|
533
|
+
}
|
|
534
|
+
await fs.mkdir(path.dirname(target), { recursive: true });
|
|
535
|
+
await fs.writeFile(target, buildCodeownersStarter(team), 'utf-8');
|
|
536
|
+
return { target, created: true };
|
|
537
|
+
}
|
|
538
|
+
function buildCodeownersStarter(team) {
|
|
539
|
+
const owner = TEAM_OWNER_HANDLES[team];
|
|
540
|
+
return [
|
|
541
|
+
'# Generated by projscan init team. Replace these handles with your real owners.',
|
|
542
|
+
`* ${owner}`,
|
|
543
|
+
`src/** ${owner}`,
|
|
544
|
+
`docs/** ${owner}`,
|
|
545
|
+
`.github/** ${owner}`,
|
|
546
|
+
'',
|
|
547
|
+
].join('\n');
|
|
548
|
+
}
|
|
549
|
+
const TEAM_OWNER_HANDLES = {
|
|
550
|
+
frontend: '@frontend-team',
|
|
551
|
+
platform: '@platform-team',
|
|
552
|
+
security: '@security-team',
|
|
553
|
+
monorepo: '@monorepo-team',
|
|
554
|
+
};
|
|
555
|
+
async function writeInitialBaseline(rootPath, options) {
|
|
556
|
+
const target = path.join(rootPath, '.projscan-baseline.json');
|
|
557
|
+
try {
|
|
558
|
+
await fs.access(target);
|
|
559
|
+
if (options.force !== true)
|
|
560
|
+
return { target, created: false, reason: '.projscan-baseline.json already exists; pass --force to overwrite it.' };
|
|
561
|
+
}
|
|
562
|
+
catch {
|
|
563
|
+
// file does not exist
|
|
564
|
+
}
|
|
565
|
+
const configResult = await loadConfig(rootPath).catch(() => ({ config: { ignore: [] } }));
|
|
566
|
+
const scan = await scanRepository(rootPath, { ignore: configResult.config.ignore });
|
|
567
|
+
const issues = applyConfigToIssues(await collectIssues(rootPath, scan.files), configResult.config);
|
|
568
|
+
const hotspotReport = await analyzeHotspots(rootPath, scan.files, issues, { limit: 20 });
|
|
569
|
+
await saveBaseline(rootPath, issues, hotspotReport);
|
|
570
|
+
return { target, created: true };
|
|
571
|
+
}
|
|
572
|
+
export async function computeMcpSetupDoctor(rootPath, client = 'all') {
|
|
573
|
+
const guide = getMcpConfigGuide(client);
|
|
574
|
+
const configText = guide.client === 'all'
|
|
575
|
+
? guide.configs.map((entry) => `# ${entry.displayName}\n${entry.configText}`).join('\n\n')
|
|
576
|
+
: guide.configText;
|
|
577
|
+
const whereToPaste = guide.client === 'all'
|
|
578
|
+
? 'Use the matching client-specific config block.'
|
|
579
|
+
: guide.whereToPaste;
|
|
580
|
+
const checks = [
|
|
581
|
+
checkNodeVersion(),
|
|
582
|
+
{
|
|
583
|
+
id: 'server-command',
|
|
584
|
+
status: 'pass',
|
|
585
|
+
summary: 'MCP server command uses local stdio startup.',
|
|
586
|
+
detail: INSTALL.mcpServerCommand,
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
id: 'config-shape',
|
|
590
|
+
status: configText.includes('projscan') && configText.includes('npx') ? 'pass' : 'fail',
|
|
591
|
+
summary: 'Config snippet includes the projscan stdio server.',
|
|
592
|
+
detail: whereToPaste,
|
|
593
|
+
},
|
|
594
|
+
await checkProjectMcpConfig(rootPath, client),
|
|
595
|
+
];
|
|
596
|
+
const status = checks.some((check) => check.status === 'fail') ? 'fail' : checks.some((check) => check.status === 'warn') ? 'warn' : 'pass';
|
|
597
|
+
return {
|
|
598
|
+
schemaVersion: 1,
|
|
599
|
+
client,
|
|
600
|
+
status,
|
|
601
|
+
summary: `${status}: ${client} MCP setup uses ${INSTALL.mcpServerCommand}`,
|
|
602
|
+
expected: {
|
|
603
|
+
command: INSTALL.mcpServerCommand,
|
|
604
|
+
runWithoutInstall: INSTALL.runWithoutInstall,
|
|
605
|
+
install: INSTALL.command,
|
|
606
|
+
},
|
|
607
|
+
whereToPaste,
|
|
608
|
+
configText,
|
|
609
|
+
checks,
|
|
610
|
+
nextCommands: ['projscan init mcp --client all', `projscan mcp doctor --client ${client} --format json`, 'npx -y projscan mcp'],
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
async function checkProjectMcpConfig(rootPath, client) {
|
|
614
|
+
const candidates = clientConfigCandidates(client);
|
|
615
|
+
for (const candidate of candidates) {
|
|
616
|
+
try {
|
|
617
|
+
const raw = await fs.readFile(path.join(rootPath, candidate), 'utf-8');
|
|
618
|
+
return {
|
|
619
|
+
id: 'project-config',
|
|
620
|
+
status: raw.includes('projscan') ? 'pass' : 'warn',
|
|
621
|
+
summary: raw.includes('projscan') ? `Found projscan in ${candidate}.` : `Found ${candidate}, but it does not mention projscan.`,
|
|
622
|
+
detail: candidate,
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
catch {
|
|
626
|
+
// try next
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
return {
|
|
630
|
+
id: 'project-config',
|
|
631
|
+
status: 'info',
|
|
632
|
+
summary: 'No project-local MCP config found; paste the snippet into the client settings if needed.',
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
function clientConfigCandidates(client) {
|
|
636
|
+
if (client === 'cursor')
|
|
637
|
+
return ['.cursor/mcp.json'];
|
|
638
|
+
if (client === 'continue')
|
|
639
|
+
return ['.continue/config.json'];
|
|
640
|
+
if (client === 'codex')
|
|
641
|
+
return ['.codex/config.toml'];
|
|
642
|
+
if (client === 'all')
|
|
643
|
+
return ['.cursor/mcp.json', '.continue/config.json', '.codex/config.toml'];
|
|
644
|
+
return [];
|
|
645
|
+
}
|
|
646
|
+
const POLICY_KITS = {
|
|
647
|
+
frontend: {
|
|
648
|
+
label: 'Frontend team policy',
|
|
649
|
+
config: {
|
|
650
|
+
minScore: 75,
|
|
651
|
+
hotspots: { limit: 12, since: '90 days ago' },
|
|
652
|
+
ignore: ['.next', 'dist', 'build', 'coverage', 'storybook-static'],
|
|
653
|
+
disableRules: [],
|
|
654
|
+
severityOverrides: {
|
|
655
|
+
'test-missing': 'warning',
|
|
656
|
+
},
|
|
657
|
+
},
|
|
658
|
+
nextCommands: [
|
|
659
|
+
'projscan start --mode before_edit --format json',
|
|
660
|
+
'projscan preflight --mode before_edit --format json',
|
|
661
|
+
'projscan quality-scorecard --format json',
|
|
662
|
+
],
|
|
663
|
+
rationale: [
|
|
664
|
+
'Frontend teams need fast feedback on generated build directories and test readiness.',
|
|
665
|
+
'The starter keeps generated output quiet while still surfacing changed-code risk.',
|
|
666
|
+
],
|
|
667
|
+
},
|
|
668
|
+
platform: {
|
|
669
|
+
label: 'Platform team policy',
|
|
670
|
+
config: {
|
|
671
|
+
minScore: 80,
|
|
672
|
+
baseRef: 'main',
|
|
673
|
+
hotspots: { limit: 15, since: '120 days ago' },
|
|
674
|
+
ignore: ['dist', 'build', 'coverage', '.turbo', '.cache'],
|
|
675
|
+
disableRules: [],
|
|
676
|
+
},
|
|
677
|
+
nextCommands: [
|
|
678
|
+
'projscan start --mode before_edit --format json',
|
|
679
|
+
'projscan workplan --mode before_merge --format json',
|
|
680
|
+
'projscan regression-plan --level focused --format json',
|
|
681
|
+
],
|
|
682
|
+
rationale: [
|
|
683
|
+
'Platform teams usually care about stable merge gates and broad blast radius.',
|
|
684
|
+
'This starter pins the base ref and keeps hotspot windows wide enough for infrastructure churn.',
|
|
685
|
+
],
|
|
686
|
+
},
|
|
687
|
+
security: {
|
|
688
|
+
label: 'Security team policy',
|
|
689
|
+
config: {
|
|
690
|
+
minScore: 90,
|
|
691
|
+
baseRef: 'main',
|
|
692
|
+
hotspots: { limit: 20, since: '180 days ago' },
|
|
693
|
+
ignore: ['dist', 'build', 'coverage'],
|
|
694
|
+
disableRules: [],
|
|
695
|
+
severityOverrides: {
|
|
696
|
+
'unused-dependency': 'warning',
|
|
697
|
+
},
|
|
698
|
+
taint: {
|
|
699
|
+
sources: ['req.body', 'request.json', 'process.env', 'cookies', 'headers'],
|
|
700
|
+
sinks: ['exec', 'eval', 'spawn', 'query', 'raw', 'innerHTML'],
|
|
701
|
+
},
|
|
702
|
+
},
|
|
703
|
+
nextCommands: [
|
|
704
|
+
'projscan preflight --mode before_edit --format json',
|
|
705
|
+
'projscan dataflow --format json',
|
|
706
|
+
'projscan audit --format sarif',
|
|
707
|
+
],
|
|
708
|
+
rationale: [
|
|
709
|
+
'Security teams need stricter score thresholds and project-specific taint names.',
|
|
710
|
+
'The starter keeps custom source/sink expansion explicit and reviewable in git.',
|
|
711
|
+
],
|
|
712
|
+
},
|
|
713
|
+
monorepo: {
|
|
714
|
+
label: 'Monorepo team policy',
|
|
715
|
+
config: {
|
|
716
|
+
minScore: 80,
|
|
717
|
+
baseRef: 'main',
|
|
718
|
+
hotspots: { limit: 20, since: '120 days ago' },
|
|
719
|
+
ignore: ['dist', 'build', 'coverage', '.turbo', '.nx', '.next'],
|
|
720
|
+
disableRules: [],
|
|
721
|
+
monorepo: {
|
|
722
|
+
importPolicy: [{ from: '*', allow: ['*'] }],
|
|
723
|
+
},
|
|
724
|
+
},
|
|
725
|
+
nextCommands: [
|
|
726
|
+
'projscan workspaces --format json',
|
|
727
|
+
'projscan start --mode before_edit --format json',
|
|
728
|
+
'projscan review --package <name> --format json',
|
|
729
|
+
],
|
|
730
|
+
rationale: [
|
|
731
|
+
'Monorepos need package ownership and import boundaries to be visible early.',
|
|
732
|
+
'The starter makes the policy block explicit so teams can tighten it package by package.',
|
|
733
|
+
],
|
|
734
|
+
},
|
|
735
|
+
};
|
|
736
|
+
function cloneConfig(config) {
|
|
737
|
+
return JSON.parse(JSON.stringify(config));
|
|
738
|
+
}
|
|
739
|
+
export function getGithubActionStarter() {
|
|
740
|
+
return {
|
|
741
|
+
schemaVersion: 1,
|
|
742
|
+
filename: '.github/workflows/projscan.yml',
|
|
743
|
+
workflow: GITHUB_ACTION_WORKFLOW,
|
|
744
|
+
nextCommands: [
|
|
745
|
+
'git add .github/workflows/projscan.yml',
|
|
746
|
+
'git commit -m "ci: add projscan PR workflow"',
|
|
747
|
+
],
|
|
748
|
+
rationale: [
|
|
749
|
+
'Runs projscan where review decisions already happen: the pull request.',
|
|
750
|
+
'Posts the same concise approval evidence that `projscan evidence-pack --pr-comment` prints locally.',
|
|
751
|
+
'Validates the generated PR comment before posting so the first review surface keeps verdict, trust calibration, routing, and commands intact.',
|
|
752
|
+
'Fails CI only when the machine-readable preflight verdict is block.',
|
|
753
|
+
'Keeps the workflow tool-only: no source upload, no API key, no embedded LLM.',
|
|
754
|
+
],
|
|
755
|
+
};
|
|
756
|
+
}
|
|
757
|
+
export async function writeGithubActionStarter(rootPath, options = {}) {
|
|
758
|
+
const starter = getGithubActionStarter();
|
|
759
|
+
const target = path.join(rootPath, starter.filename);
|
|
760
|
+
try {
|
|
761
|
+
await fs.access(target);
|
|
762
|
+
if (options.force !== true) {
|
|
763
|
+
return {
|
|
764
|
+
...starter,
|
|
765
|
+
target,
|
|
766
|
+
created: false,
|
|
767
|
+
reason: '.github/workflows/projscan.yml already exists; pass --force to overwrite it.',
|
|
768
|
+
};
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
catch {
|
|
772
|
+
// file does not exist
|
|
773
|
+
}
|
|
774
|
+
await fs.mkdir(path.dirname(target), { recursive: true });
|
|
775
|
+
await fs.writeFile(target, starter.workflow, 'utf-8');
|
|
776
|
+
return {
|
|
777
|
+
...starter,
|
|
778
|
+
target,
|
|
779
|
+
created: true,
|
|
780
|
+
};
|
|
781
|
+
}
|
|
782
|
+
const GITHUB_ACTION_WORKFLOW = `name: projscan
|
|
783
|
+
|
|
784
|
+
on:
|
|
785
|
+
pull_request:
|
|
786
|
+
types: [opened, synchronize, reopened, ready_for_review]
|
|
787
|
+
|
|
788
|
+
permissions:
|
|
789
|
+
contents: read
|
|
790
|
+
pull-requests: write
|
|
791
|
+
|
|
792
|
+
jobs:
|
|
793
|
+
review:
|
|
794
|
+
name: projscan PR evidence
|
|
795
|
+
runs-on: ubuntu-latest
|
|
796
|
+
steps:
|
|
797
|
+
- name: Checkout
|
|
798
|
+
uses: actions/checkout@v5
|
|
799
|
+
with:
|
|
800
|
+
fetch-depth: 0
|
|
801
|
+
|
|
802
|
+
- name: Setup Node.js
|
|
803
|
+
uses: actions/setup-node@v5
|
|
804
|
+
with:
|
|
805
|
+
node-version: 22
|
|
806
|
+
|
|
807
|
+
- name: Orient workflow
|
|
808
|
+
run: npx -y projscan start --mode before_merge --format json --quiet > projscan-start.json
|
|
809
|
+
|
|
810
|
+
- name: Run preflight gate
|
|
811
|
+
run: npx -y projscan preflight --mode before_merge --format json --quiet > projscan-preflight.json
|
|
812
|
+
|
|
813
|
+
- name: Build PR comment
|
|
814
|
+
run: npx -y projscan evidence-pack --pr-comment --quiet > projscan-comment.md
|
|
815
|
+
|
|
816
|
+
- name: Validate PR comment
|
|
817
|
+
run: |
|
|
818
|
+
node <<'NODE'
|
|
819
|
+
const fs = require('node:fs');
|
|
820
|
+
const body = fs.readFileSync('projscan-comment.md', 'utf8');
|
|
821
|
+
const required = [
|
|
822
|
+
'## projscan approval evidence',
|
|
823
|
+
'### Verdict',
|
|
824
|
+
'### Trust Calibration',
|
|
825
|
+
'### Baseline Trend',
|
|
826
|
+
'### Top Risks',
|
|
827
|
+
'### First Fix',
|
|
828
|
+
'### Team Routing',
|
|
829
|
+
'### Verification',
|
|
830
|
+
'### Next Commands',
|
|
831
|
+
'### Suggested Next Actions',
|
|
832
|
+
];
|
|
833
|
+
const missing = required.filter((section) => !body.includes(section));
|
|
834
|
+
const actionable = ['projscan ', 'npm ', 'npx ', 'gh ', 'git '].some((command) => body.includes(command));
|
|
835
|
+
const invalidTokens = body.includes('undefined') || body.includes('[object Object]');
|
|
836
|
+
if (missing.length > 0 || body.length > 65536 || invalidTokens || !actionable) {
|
|
837
|
+
console.error('Invalid projscan PR comment: ' + missing.concat(actionable ? [] : ['missing actionable command']).join(', '));
|
|
838
|
+
process.exit(1);
|
|
839
|
+
}
|
|
840
|
+
NODE
|
|
841
|
+
|
|
842
|
+
- name: Publish PR comment
|
|
843
|
+
if: github.event_name == 'pull_request'
|
|
844
|
+
env:
|
|
845
|
+
GH_TOKEN: \${{ github.token }}
|
|
846
|
+
run: |
|
|
847
|
+
if ! gh pr comment "\${{ github.event.pull_request.number }}" --body-file projscan-comment.md --edit-last; then
|
|
848
|
+
gh pr comment "\${{ github.event.pull_request.number }}" --body-file projscan-comment.md
|
|
849
|
+
fi
|
|
850
|
+
|
|
851
|
+
- name: Enforce preflight verdict
|
|
852
|
+
run: >
|
|
853
|
+
node -e "const fs = require('node:fs'); const r = JSON.parse(fs.readFileSync('projscan-preflight.json', 'utf8')); if (r.verdict === 'block') { console.error(r.summary || 'projscan preflight blocked this change'); process.exit(1); }"
|
|
854
|
+
`;
|
|
392
855
|
//# sourceMappingURL=adoption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../src/core/adoption.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../src/core/adoption.ts"],"names":[],"mappings":"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"}
|
package/dist/core/ast.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface FunctionInfo {
|
|
|
48
48
|
memberCallSites?: string[];
|
|
49
49
|
/** Function parameter names when the adapter can recover them. */
|
|
50
50
|
parameters?: string[];
|
|
51
|
+
/** Bare identifier call sites, excluding member calls like cache.query(). */
|
|
52
|
+
directCallSites?: string[];
|
|
53
|
+
/** Local aliases for member functions, e.g. query=pool.query from const { query } = pool. */
|
|
54
|
+
memberAliases?: string[];
|
|
55
|
+
/** Qualified call expression this function was passed to, e.g. app.post for Express callbacks. */
|
|
56
|
+
contextualCallSite?: string;
|
|
51
57
|
/**
|
|
52
58
|
* Per-function fan-out (1.2.0+): count of distinct callee names from
|
|
53
59
|
* `callSites`, restricted to names that are defined as functions
|