projscan 3.1.0 → 3.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.
- package/README.md +26 -26
- package/dist/cli/commands/recipes.js +6 -0
- package/dist/cli/commands/recipes.js.map +1 -1
- package/dist/cli/commands/start.js +10 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/core/adoption.d.ts +2 -1
- package/dist/core/adoption.js +10 -2
- package/dist/core/adoption.js.map +1 -1
- package/dist/core/agentBrief.js +13 -1
- package/dist/core/agentBrief.js.map +1 -1
- package/dist/core/dogfood.js +64 -0
- package/dist/core/dogfood.js.map +1 -1
- package/dist/core/evidenceComment.d.ts +3 -0
- package/dist/core/evidenceComment.js +233 -0
- package/dist/core/evidenceComment.js.map +1 -0
- package/dist/core/frameworkSources.js +39 -0
- package/dist/core/frameworkSources.js.map +1 -1
- package/dist/core/onboarding.d.ts +2 -0
- package/dist/core/onboarding.js +51 -0
- package/dist/core/onboarding.js.map +1 -0
- package/dist/core/pluginDx.js +55 -4
- package/dist/core/pluginDx.js.map +1 -1
- package/dist/core/releaseEvidence.d.ts +2 -3
- package/dist/core/releaseEvidence.js +2 -196
- package/dist/core/releaseEvidence.js.map +1 -1
- package/dist/core/releaseTrain.js +10 -0
- package/dist/core/releaseTrain.js.map +1 -1
- package/dist/core/roadmapCatalog.d.ts +5 -0
- package/dist/core/roadmapCatalog.js +213 -0
- package/dist/core/roadmapCatalog.js.map +1 -0
- package/dist/core/sessionResources.js +30 -0
- package/dist/core/sessionResources.js.map +1 -1
- package/dist/core/start.js +25 -0
- package/dist/core/start.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/tool-manifest.json +2 -2
- package/dist/types.d.ts +45 -0
- package/docs/PLUGIN-AUTHORING.md +8 -0
- package/docs/PLUGIN-GALLERY.md +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
export const ROADMAP_3_2_LINES = ['3.2.x', '3.3.x', '3.4.x', '3.5.x', '3.6.x', '3.7.x', '3.8.x', '3.9.x'];
|
|
2
|
+
const ROADMAP_3_2_CATALOG = {
|
|
3
|
+
'3.2.x': {
|
|
4
|
+
line: '3.2.x',
|
|
5
|
+
track: {
|
|
6
|
+
theme: 'Roadmap Canonicalization',
|
|
7
|
+
outcome: 'The release-train surface names the real product roadmap instead of generic quality placeholders.',
|
|
8
|
+
includedInPlan: true,
|
|
9
|
+
scope: ['catalog-backed release train', 'roadmap documentation alignment', 'read-only planning evidence'],
|
|
10
|
+
successCriteria: ['release-train defaults to all eight approved workstreams', 'docs/ROADMAP.md matches the generated plan', 'planning output remains read-only'],
|
|
11
|
+
},
|
|
12
|
+
tasks: [
|
|
13
|
+
{
|
|
14
|
+
id: 'rt-3-2-roadmap-canonicalization',
|
|
15
|
+
priority: 'p0',
|
|
16
|
+
title: 'Canonicalize the 3.2 roadmap train',
|
|
17
|
+
why: 'A useful release-train command should tell maintainers which product bets are actually next.',
|
|
18
|
+
track: '3.2.x',
|
|
19
|
+
files: ['src/core/roadmapCatalog.ts', 'src/core/releaseTrain.ts', 'docs/ROADMAP.md'],
|
|
20
|
+
verification: {
|
|
21
|
+
commands: ['projscan release-train --format json', 'npm test'],
|
|
22
|
+
expected: 'Release train returns the eight roadmap workstreams with concrete tasks and stays read-only.',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
'3.3.x': {
|
|
28
|
+
line: '3.3.x',
|
|
29
|
+
track: {
|
|
30
|
+
theme: 'Adoption Proof Polish',
|
|
31
|
+
outcome: 'Teams can see the next missing proof gate before calling adoption proven.',
|
|
32
|
+
includedInPlan: true,
|
|
33
|
+
scope: ['proof-gate summaries', 'reviewer feedback prioritization', 'trial verdict explanation'],
|
|
34
|
+
successCriteria: ['dogfood names the next proof step', 'trial output carries adoption blockers clearly', 'website proof remains measured and provisional until proven'],
|
|
35
|
+
},
|
|
36
|
+
tasks: [
|
|
37
|
+
{
|
|
38
|
+
id: 'rt-3-3-adoption-proof-polish',
|
|
39
|
+
priority: 'p0',
|
|
40
|
+
title: 'Sharpen adoption proof gates',
|
|
41
|
+
why: 'Adoption validation should explain the one next action that moves a team from setup to proof.',
|
|
42
|
+
track: '3.3.x',
|
|
43
|
+
files: ['src/core/dogfood.ts', 'src/core/trial.ts', 'docs/ADOPTION-PROOF.md', 'docs/MARKET-VALIDATION.md'],
|
|
44
|
+
verification: {
|
|
45
|
+
commands: ['projscan dogfood --repo <repo-a> --repo <repo-b> --repo <repo-c> --feedback .projscan-feedback.json --format json'],
|
|
46
|
+
expected: 'Dogfood reports proof gates, the next proof step, reviewer value, repeat use, and false-positive pressure.',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
'3.4.x': {
|
|
52
|
+
line: '3.4.x',
|
|
53
|
+
track: {
|
|
54
|
+
theme: 'PR Evidence Quality',
|
|
55
|
+
outcome: 'Reviewer-facing PR comments lead with the decision, first fix, owner routing, and exact verification command.',
|
|
56
|
+
includedInPlan: true,
|
|
57
|
+
scope: ['reviewer decision summary', 'owner-explicit risk lines', 'calibrated trust language'],
|
|
58
|
+
successCriteria: ['PR comments distinguish ship, review, and fix-first states', 'top risks include owner state and exact commands', 'existing validator still passes'],
|
|
59
|
+
},
|
|
60
|
+
tasks: [
|
|
61
|
+
{
|
|
62
|
+
id: 'rt-3-4-pr-evidence-quality',
|
|
63
|
+
priority: 'p0',
|
|
64
|
+
title: 'Improve reviewer decision evidence',
|
|
65
|
+
why: 'A PR comment is useful only when a reviewer can act without reading every raw tool payload.',
|
|
66
|
+
track: '3.4.x',
|
|
67
|
+
files: ['src/core/releaseEvidence.ts', 'tests/core/releaseEvidence.test.ts', 'tests/core/releaseEvidencePrCommentFixtures.test.ts'],
|
|
68
|
+
verification: {
|
|
69
|
+
commands: ['projscan evidence-pack --pr-comment', 'npm test'],
|
|
70
|
+
expected: 'PR evidence includes a reviewer decision, first fix, owner routing, and exact next commands.',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
'3.5.x': {
|
|
76
|
+
line: '3.5.x',
|
|
77
|
+
track: {
|
|
78
|
+
theme: 'First 10 Minutes UX',
|
|
79
|
+
outcome: 'A new user gets a single guided path from trust boundary to first PR evidence.',
|
|
80
|
+
includedInPlan: true,
|
|
81
|
+
scope: ['first-ten-minutes command path', 'start report guidance', 'adoption docs alignment'],
|
|
82
|
+
successCriteria: ['start output includes the guided path', 'docs lead with the same path', 'MCP and CLI onboarding stay consistent'],
|
|
83
|
+
},
|
|
84
|
+
tasks: [
|
|
85
|
+
{
|
|
86
|
+
id: 'rt-3-5-first-10-minutes-ux',
|
|
87
|
+
priority: 'p1',
|
|
88
|
+
title: 'Add first-ten-minutes guidance',
|
|
89
|
+
why: 'The broad command catalog should not be the first experience for a new team.',
|
|
90
|
+
track: '3.5.x',
|
|
91
|
+
files: ['src/core/start.ts', 'src/core/adoption.ts', 'docs/FIRST-10-MINUTES.md'],
|
|
92
|
+
verification: {
|
|
93
|
+
commands: ['projscan start --mode before_edit --format json', 'projscan first-run --format json'],
|
|
94
|
+
expected: 'Start and first-run surfaces point to the same first-ten-minutes path.',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
'3.6.x': {
|
|
100
|
+
line: '3.6.x',
|
|
101
|
+
track: {
|
|
102
|
+
theme: 'Maintainability Hardening',
|
|
103
|
+
outcome: 'Future roadmap and evidence changes land in smaller focused modules instead of growing hotspots.',
|
|
104
|
+
includedInPlan: true,
|
|
105
|
+
scope: ['roadmap catalog extraction', 'evidence formatting boundaries', 'stable public exports'],
|
|
106
|
+
successCriteria: ['core orchestration remains small and readable', 'public API exports remain stable', 'focused tests cover extracted helpers'],
|
|
107
|
+
},
|
|
108
|
+
tasks: [
|
|
109
|
+
{
|
|
110
|
+
id: 'rt-3-6-maintainability-hardening',
|
|
111
|
+
priority: 'p1',
|
|
112
|
+
title: 'Extract planning and evidence helpers',
|
|
113
|
+
why: 'The product surface is large enough that static planning data and formatting helpers need clear ownership.',
|
|
114
|
+
track: '3.6.x',
|
|
115
|
+
files: ['src/core/roadmapCatalog.ts', 'src/core/releaseTrain.ts', 'src/core/releaseEvidence.ts', 'src/types.ts'],
|
|
116
|
+
verification: {
|
|
117
|
+
commands: ['npm run build', 'npm test'],
|
|
118
|
+
expected: 'Extraction preserves stable exports, output schemas, and test behavior.',
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
'3.7.x': {
|
|
124
|
+
line: '3.7.x',
|
|
125
|
+
track: {
|
|
126
|
+
theme: 'Graph And Dataflow Precision',
|
|
127
|
+
outcome: 'Dataflow catches one more real framework source pattern while keeping false positives narrow.',
|
|
128
|
+
includedInPlan: true,
|
|
129
|
+
scope: ['framework request-source precision', 'review-time dataflow calibration', 'false-positive guard tests'],
|
|
130
|
+
successCriteria: ['new source pattern is detected', 'unrelated helpers are not treated as request data', 'generated and test filters remain quiet by default'],
|
|
131
|
+
},
|
|
132
|
+
tasks: [
|
|
133
|
+
{
|
|
134
|
+
id: 'rt-3-7-graph-dataflow-precision',
|
|
135
|
+
priority: 'p1',
|
|
136
|
+
title: 'Add a narrow framework dataflow precision pass',
|
|
137
|
+
why: 'The graph/dataflow moat improves only when new precision comes with false-positive guardrails.',
|
|
138
|
+
track: '3.7.x',
|
|
139
|
+
files: ['src/core/frameworkSources.ts', 'src/core/dataflow.ts', 'tests/core/dataflow.test.ts'],
|
|
140
|
+
verification: {
|
|
141
|
+
commands: ['projscan dataflow --format json', 'npm test'],
|
|
142
|
+
expected: 'Dataflow reports the new framework source pattern and avoids unrelated helper calls.',
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
'3.8.x': {
|
|
148
|
+
line: '3.8.x',
|
|
149
|
+
track: {
|
|
150
|
+
theme: 'Plugin Ecosystem',
|
|
151
|
+
outcome: 'Teams can validate local policy plugins with clearer trust and context-readiness guidance.',
|
|
152
|
+
includedInPlan: true,
|
|
153
|
+
scope: ['plugin test result guidance', 'trust reminder', 'gallery and authoring docs'],
|
|
154
|
+
successCriteria: ['plugin test output names trust boundaries', 'graph/dataflow context needs are visible', 'docs show copyable validation commands'],
|
|
155
|
+
},
|
|
156
|
+
tasks: [
|
|
157
|
+
{
|
|
158
|
+
id: 'rt-3-8-plugin-ecosystem',
|
|
159
|
+
priority: 'p1',
|
|
160
|
+
title: 'Improve local plugin authoring feedback',
|
|
161
|
+
why: 'Plugins are useful when teams can test local policy safely before enabling execution.',
|
|
162
|
+
track: '3.8.x',
|
|
163
|
+
files: ['src/core/pluginDx.ts', 'tests/core/pluginDx.test.ts', 'docs/PLUGIN-AUTHORING.md', 'docs/PLUGIN-GALLERY.md'],
|
|
164
|
+
verification: {
|
|
165
|
+
commands: ['projscan plugin test docs/examples/plugins/policy.projscan-plugin.json --format json'],
|
|
166
|
+
expected: 'Plugin test output includes trust guidance, validation commands, and context capability notes.',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
'3.9.x': {
|
|
172
|
+
line: '3.9.x',
|
|
173
|
+
track: {
|
|
174
|
+
theme: 'Multi-Agent Coordination',
|
|
175
|
+
outcome: 'Agents can tell current worktree risk from remembered session context before parallel edits continue.',
|
|
176
|
+
includedInPlan: true,
|
|
177
|
+
scope: ['coordination hints', 'session resource clarity', 'agent brief handoff commands'],
|
|
178
|
+
successCriteria: ['resources explain current-vs-remembered risk', 'agent briefs include conflict-resolution commands', 'start output keeps the distinction visible'],
|
|
179
|
+
},
|
|
180
|
+
tasks: [
|
|
181
|
+
{
|
|
182
|
+
id: 'rt-3-9-multi-agent-coordination',
|
|
183
|
+
priority: 'p1',
|
|
184
|
+
title: 'Add compact multi-agent coordination hints',
|
|
185
|
+
why: 'Shared session state helps only when agents understand whether a signal is current worktree evidence or older remembered context.',
|
|
186
|
+
track: '3.9.x',
|
|
187
|
+
files: ['src/core/sessionResources.ts', 'src/core/agentBrief.ts', 'src/core/start.ts'],
|
|
188
|
+
verification: {
|
|
189
|
+
commands: ['projscan agent-brief --format json', 'projscan session current --format json'],
|
|
190
|
+
expected: 'Coordination surfaces include current-vs-remembered hints and exact follow-up commands.',
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
export function defaultRoadmapLinesForVersion(version) {
|
|
197
|
+
if (!version)
|
|
198
|
+
return undefined;
|
|
199
|
+
const [major = 0, minor = 0] = version.split('.').map((part) => Number.parseInt(part, 10));
|
|
200
|
+
if (!Number.isFinite(major) || !Number.isFinite(minor))
|
|
201
|
+
return undefined;
|
|
202
|
+
if (major > 3 || (major === 3 && minor >= 1))
|
|
203
|
+
return [...ROADMAP_3_2_LINES];
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
export function roadmapTrackForLine(line) {
|
|
207
|
+
const entry = ROADMAP_3_2_CATALOG[line];
|
|
208
|
+
return entry ? { line: entry.line, ...entry.track } : undefined;
|
|
209
|
+
}
|
|
210
|
+
export function roadmapTasksForLine(line) {
|
|
211
|
+
return ROADMAP_3_2_CATALOG[line]?.tasks.map((task) => ({ ...task, files: [...task.files], verification: { ...task.verification, commands: [...task.verification.commands] } })) ?? [];
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=roadmapCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roadmapCatalog.js","sourceRoot":"","sources":["../../src/core/roadmapCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export async function buildSessionSummary(rootPath) {
|
|
|
27
27
|
recentIssues,
|
|
28
28
|
highRiskTouchedFiles,
|
|
29
29
|
staleSignals,
|
|
30
|
+
coordinationHints: buildCoordinationHints(touchedFiles, []),
|
|
30
31
|
...(touchedFiles.length > MAX_TOUCHED_FILES ? { truncated: true } : {}),
|
|
31
32
|
};
|
|
32
33
|
}
|
|
@@ -38,6 +39,7 @@ export async function buildHandoff(rootPath) {
|
|
|
38
39
|
summary,
|
|
39
40
|
remainingRisks: riskNow.conflicts,
|
|
40
41
|
suggestedNextActions: buildHandoffActions(riskNow.conflicts),
|
|
42
|
+
coordinationHints: buildCoordinationHints(summary.touchedFiles, riskNow.conflicts),
|
|
41
43
|
avoidRepeating: buildAvoidRepeating(summary),
|
|
42
44
|
};
|
|
43
45
|
}
|
|
@@ -53,6 +55,7 @@ export async function buildRiskNow(rootPath) {
|
|
|
53
55
|
schemaVersion: 1,
|
|
54
56
|
conflicts,
|
|
55
57
|
touchedFiles: touchedFiles.slice(0, MAX_TOUCHED_FILES),
|
|
58
|
+
coordinationHints: buildCoordinationHints(touchedFiles, conflicts),
|
|
56
59
|
...(touchedFiles.length > MAX_TOUCHED_FILES || conflicts.length >= MAX_CONFLICTS
|
|
57
60
|
? { truncated: true }
|
|
58
61
|
: {}),
|
|
@@ -185,6 +188,33 @@ function detectHotspotConflicts(touchedFiles, hotspots) {
|
|
|
185
188
|
severity: 'warning',
|
|
186
189
|
}));
|
|
187
190
|
}
|
|
191
|
+
function buildCoordinationHints(touchedFiles, conflicts) {
|
|
192
|
+
const hints = [
|
|
193
|
+
{
|
|
194
|
+
id: 'current-worktree-check',
|
|
195
|
+
label: 'Separate current worktree evidence from session memory',
|
|
196
|
+
message: 'Run preflight to see current Git/worktree risk; remembered session touches may include older agent context.',
|
|
197
|
+
command: 'projscan preflight --mode before_edit --format json',
|
|
198
|
+
},
|
|
199
|
+
];
|
|
200
|
+
if (touchedFiles.length > 0) {
|
|
201
|
+
hints.push({
|
|
202
|
+
id: 'remembered-session-context',
|
|
203
|
+
label: 'Review remembered session touches',
|
|
204
|
+
message: `${touchedFiles.length} touched file(s) come from remembered session context, not necessarily the current Git diff.`,
|
|
205
|
+
command: 'projscan session touched --format json',
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
if (conflicts.length > 0) {
|
|
209
|
+
hints.push({
|
|
210
|
+
id: 'resolve-conflicts',
|
|
211
|
+
label: 'Resolve coordination conflicts before parallel edits continue',
|
|
212
|
+
message: `${conflicts.length} coordination conflict(s) need an owner or preflight check before handoff.`,
|
|
213
|
+
command: 'projscan agent-brief --intent next_agent --format json',
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
return hints;
|
|
217
|
+
}
|
|
188
218
|
function buildHandoffActions(conflicts) {
|
|
189
219
|
const actions = [
|
|
190
220
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionResources.js","sourceRoot":"","sources":["../../src/core/sessionResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionResources.js","sourceRoot":"","sources":["../../src/core/sessionResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AAWzD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM;SAChC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;SACvD,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC/B,MAAM,oBAAoB,GACxB,OAAO,CAAC,QAAQ;QACd,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;SAC7E,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,YAAY,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAEjF,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;QACtD,YAAY;QACZ,oBAAoB;QACpB,YAAY;QACZ,iBAAiB,EAAE,sBAAsB,CAAC,YAAY,EAAE,EAAE,CAAC;QAC3D,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,OAAO;QACP,cAAc,EAAE,OAAO,CAAC,SAAS;QACjC,oBAAoB,EAAE,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5D,iBAAiB,EAAE,sBAAsB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC;QAClF,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG;QAChB,GAAG,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;QACtD,GAAG,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;KAChE,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAE1B,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,SAAS;QACT,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;QACtD,iBAAiB,EAAE,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC;QAClE,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,iBAAiB,IAAI,SAAS,CAAC,MAAM,IAAI,aAAa;YAC9E,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YACrB,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAe,EAAE,KAAiB;IACvE,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,sCAAsC,IAAI,IAAI,KAAK,QAAQ;gBACpE,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,aAAa,EAAE,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,uCAAuC,aAAa,CAAC,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,CAAC,wCAAwC;YAChI,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,uCAAuC,aAAa,CAAC,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,CAAC,sCAAsC;gBAC9H,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACzE,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,UAAsC,EAAE;IAOxC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,KAA4B,CAAC;QACjC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,IAAI,CAAC,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS;YACtC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,OAAO,CAAC,YAAY;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;YACL,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,yBAAyB,aAAa,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,CAAC,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;SACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY,EAAE,KAAkB;IACzD,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAe;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACzB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAe,EAAE,KAAgB;IAC/D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAC7B,YAAsB,EACtB,QAAoD;IAEpD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,OAAO,QAAQ;SACZ,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;SACzE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,iBAA0B;QAChC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,wDAAwD,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,SAAS,GAAG;QAC3G,QAAQ,EAAE,SAAkB;KAC7B,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,sBAAsB,CAC7B,YAAsB,EACtB,SAA4B;IAE5B,MAAM,KAAK,GAA8B;QACvC;YACE,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAE,wDAAwD;YAC/D,OAAO,EAAE,6GAA6G;YACtH,OAAO,EAAE,qDAAqD;SAC/D;KACF,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,4BAA4B;YAChC,KAAK,EAAE,mCAAmC;YAC1C,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,8FAA8F;YAC7H,OAAO,EAAE,wCAAwC;SAClD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,mBAAmB;YACvB,KAAK,EAAE,+DAA+D;YACtE,OAAO,EAAE,GAAG,SAAS,CAAC,MAAM,4EAA4E;YACxG,OAAO,EAAE,wDAAwD;SAClE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA4B;IACvD,MAAM,OAAO,GAA+B;QAC1C;YACE,KAAK,EAAE,iDAAiD;YACxD,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,kCAAkC;SAC5C;KACF,CAAC;IACF,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,qDAAqD;YAC5D,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,qCAAqC;YAC5C,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,wCAAwC;SAClD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA+B;IAC1D,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,sDAAsD,CAAC,CAAC;IACvG,OAAO,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,CAAC;AACxG,CAAC"}
|
package/dist/core/start.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { computeFirstRunDiagnostics, getWorkflowRecipes } from './adoption.js';
|
|
2
2
|
import { loadSession } from './session.js';
|
|
3
3
|
import { fixFirstFromStartRisk } from './fixFirst.js';
|
|
4
|
+
import { buildFirstTenMinutes } from './onboarding.js';
|
|
4
5
|
import { computeQualityScorecard } from './qualityScorecard.js';
|
|
5
6
|
import { buildWorkplanHandoff, computeWorkplan, isWorkplanMode } from './workplan.js';
|
|
6
7
|
import { getChangedFiles } from '../utils/changedFiles.js';
|
|
@@ -29,7 +30,10 @@ export async function computeStartReport(rootPath, options = {}) {
|
|
|
29
30
|
...(diagnostic.command ? { command: diagnostic.command } : {}),
|
|
30
31
|
}));
|
|
31
32
|
const adoptionLoop = buildAdoptionLoop();
|
|
33
|
+
const firstTenMinutes = buildFirstTenMinutes();
|
|
34
|
+
const coordinationHints = buildStartCoordinationHints(riskSources);
|
|
32
35
|
const nextActions = dedupeActions([
|
|
36
|
+
...firstTenMinutes.commands.map((step) => ({ label: `First 10 minutes: ${step.label}`, command: step.command })),
|
|
33
37
|
...workflow.commands.map((command) => ({ label: `Run ${workflow.name}`, command })),
|
|
34
38
|
...adoptionLoop.nextCommands.map((command) => ({ label: 'Keep using projscan every PR', command })),
|
|
35
39
|
...workplan.suggestedNextActions,
|
|
@@ -46,6 +50,8 @@ export async function computeStartReport(rootPath, options = {}) {
|
|
|
46
50
|
diagnostics: setup.diagnostics,
|
|
47
51
|
},
|
|
48
52
|
recommendedWorkflow: workflow,
|
|
53
|
+
firstTenMinutes,
|
|
54
|
+
coordinationHints,
|
|
49
55
|
evidence: {
|
|
50
56
|
workplanVerdict: workplan.verdict,
|
|
51
57
|
workplanSummary: workplan.summary,
|
|
@@ -65,6 +71,25 @@ export async function computeStartReport(rootPath, options = {}) {
|
|
|
65
71
|
};
|
|
66
72
|
return report;
|
|
67
73
|
}
|
|
74
|
+
function buildStartCoordinationHints(riskSources) {
|
|
75
|
+
const hints = [
|
|
76
|
+
{
|
|
77
|
+
id: 'current-worktree-check',
|
|
78
|
+
label: 'Separate current worktree evidence from session memory',
|
|
79
|
+
message: `Current worktree evidence sees ${riskSources.currentWorktree.count} changed file(s); remembered session context may include older agent touches.`,
|
|
80
|
+
command: 'projscan preflight --mode before_edit --format json',
|
|
81
|
+
},
|
|
82
|
+
];
|
|
83
|
+
if (riskSources.sessionMemory.totalTouchedFiles > 0) {
|
|
84
|
+
hints.push({
|
|
85
|
+
id: 'remembered-session-context',
|
|
86
|
+
label: 'Review remembered session touches',
|
|
87
|
+
message: `${riskSources.sessionMemory.totalTouchedFiles} touched file(s) come from remembered session context, not necessarily the current Git diff.`,
|
|
88
|
+
command: 'projscan session touched --format json',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return hints;
|
|
92
|
+
}
|
|
68
93
|
async function buildStartRiskSources(rootPath) {
|
|
69
94
|
const [changed, sessionResult] = await Promise.all([
|
|
70
95
|
getChangedFiles(rootPath).catch((err) => ({
|
package/dist/core/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/core/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAA4B,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/core/start.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -59,4 +59,4 @@ export { getPromptDefinitions } from './mcp/prompts.js';
|
|
|
59
59
|
export { getResourceDefinitions } from './mcp/resources.js';
|
|
60
60
|
export { BUILTIN_LANGUAGE_IDS } from './core/languages/LanguageAdapter.js';
|
|
61
61
|
export type { BuiltinLanguageId, LanguageId, LanguageAdapter } from './core/languages/LanguageAdapter.js';
|
|
62
|
-
export type { ScanResult, FileEntry, DirectoryNode, LanguageBreakdown, LanguageStat, FrameworkResult, DetectedFramework, DependencyReport, DependencyRisk, Issue, IssueLocation, IssueSeverity, Fix, FixResult, FileExplanation, FileInspection, FunctionDetail, ImportInfo, ExportInfo, ArchitectureLayer, AnalysisReport, AgentBriefGuardrail, AgentBriefIntent, AgentBriefItem, AgentBriefReport, ReportFormat, FileHotspot, HotspotReport, AuthorShare, BaselineHotspot, HotspotDelta, HotspotDiffSummary, McpToolDefinition, McpPromptDefinition, McpResourceDefinition, ProjscanConfig, LoadedConfig, SemverDrift, OutdatedPackage, OutdatedReport, AuditSeverity, AuditFinding, AuditReport, UpgradePreview, CoverageSource, FileCoverage, CoverageReport, CoverageJoinedHotspot, CoverageJoinedReport, ReviewReport, ReviewFile, ReviewCycle, ReviewDataflowRisk, ReviewFunction, ReviewDependencyChange, FixSuggestion, IssueExplanation, ImportPolicyRule, ImpactReport, ImpactNode, GraphCorpusFixtureMetrics, GraphCorpusReport, DataflowReport, DataflowRisk, DataflowRiskConfidence, DataflowRiskKind, DataflowRiskSeverity, SemanticGraphEdge, SemanticGraphEdgeKind, SemanticGraphNode, SemanticGraphNodeKind, SemanticGraphReport, BugHuntFinding, BugHuntReport, BugHuntVerdict, EvidencePackArtifact, EvidencePackArtifactStatus, EvidencePackPrCommentValidation, EvidencePackPrCommentValidationCheck, EvidencePackReport, EvidencePackTrustCalibration, EvidencePackVerdict, RegressionPlanLevel, RegressionPlanReport, RegressionPlanTarget, RegressionPlanVerdict, QualityScorecardDimension, QualityScorecardReport, QualityScorecardRisk, QualityScorecardStatus, QualityScorecardVerdict, StartAdoptionGap, StartAdoptionLoop, StartAdoptionLoopMetric, StartReport, StartRisk, StartWorkflowRecommendation, DogfoodFeedbackInput, DogfoodFeedbackResponse, FeedbackSummaryReport, FeedbackTemplateResult, DogfoodMarketValidation, DogfoodReport, DogfoodRepoResult, DogfoodRepoStatus, DogfoodRepoValidation, DogfoodWebsiteProof, TrialReport, TrialVerdict, ReleaseTrainReport, ReleaseTrainTask, ReleaseTrainTrack, WorkplanCoordination, WorkplanHandoffPayload, WorkplanEvidence, WorkplanMode, WorkplanPriority, WorkplanReport, WorkplanTask, WorkplanTopRisk, WorkplanVerification, } from './types.js';
|
|
62
|
+
export type { ScanResult, FileEntry, DirectoryNode, LanguageBreakdown, LanguageStat, FrameworkResult, DetectedFramework, DependencyReport, DependencyRisk, Issue, IssueLocation, IssueSeverity, Fix, FixResult, FileExplanation, FileInspection, FunctionDetail, ImportInfo, ExportInfo, ArchitectureLayer, AnalysisReport, AgentBriefGuardrail, AgentBriefIntent, AgentBriefItem, AgentBriefReport, ReportFormat, FileHotspot, HotspotReport, AuthorShare, BaselineHotspot, HotspotDelta, HotspotDiffSummary, McpToolDefinition, McpPromptDefinition, McpResourceDefinition, ProjscanConfig, LoadedConfig, SemverDrift, OutdatedPackage, OutdatedReport, AuditSeverity, AuditFinding, AuditReport, UpgradePreview, CoverageSource, FileCoverage, CoverageReport, CoverageJoinedHotspot, CoverageJoinedReport, ReviewReport, ReviewFile, ReviewCycle, ReviewDataflowRisk, ReviewFunction, ReviewDependencyChange, FixSuggestion, IssueExplanation, ImportPolicyRule, ImpactReport, ImpactNode, GraphCorpusFixtureMetrics, GraphCorpusReport, DataflowReport, DataflowRisk, DataflowRiskConfidence, DataflowRiskKind, DataflowRiskSeverity, SemanticGraphEdge, SemanticGraphEdgeKind, SemanticGraphNode, SemanticGraphNodeKind, SemanticGraphReport, BugHuntFinding, BugHuntReport, BugHuntVerdict, EvidencePackArtifact, EvidencePackArtifactStatus, EvidencePackPrCommentValidation, EvidencePackPrCommentValidationCheck, EvidencePackReport, EvidencePackTrustCalibration, EvidencePackVerdict, RegressionPlanLevel, RegressionPlanReport, RegressionPlanTarget, RegressionPlanVerdict, QualityScorecardDimension, QualityScorecardReport, QualityScorecardRisk, QualityScorecardStatus, QualityScorecardVerdict, StartAdoptionGap, StartAdoptionLoop, StartAdoptionLoopMetric, StartFirstTenMinutes, StartFirstTenMinutesStep, StartReport, StartRisk, StartWorkflowRecommendation, DogfoodFeedbackInput, DogfoodFeedbackResponse, FeedbackSummaryReport, FeedbackTemplateResult, DogfoodMarketValidation, DogfoodReport, DogfoodRepoResult, DogfoodRepoStatus, DogfoodRepoValidation, DogfoodWebsiteProof, TrialReport, TrialVerdict, PluginTestResult, RiskNowResource, SessionCoordinationHint, SessionHandoff, SessionResourceSummary, ReleaseTrainReport, ReleaseTrainTask, ReleaseTrainTrack, WorkplanCoordination, WorkplanHandoffPayload, WorkplanEvidence, WorkplanMode, WorkplanPriority, WorkplanReport, WorkplanTask, WorkplanTopRisk, WorkplanVerification, } from './types.js';
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.5",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:e3d87bac-ad5b-4956-b8f3-d5277b890895",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "2026-06-
|
|
7
|
+
"timestamp": "2026-06-03T16:23:49.757Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "projscan",
|
|
11
11
|
"name": "projscan-sbom-generator",
|
|
12
|
-
"version": "3.
|
|
12
|
+
"version": "3.3.0"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
16
|
"type": "application",
|
|
17
|
-
"bom-ref": "pkg:npm/projscan@3.
|
|
17
|
+
"bom-ref": "pkg:npm/projscan@3.3.0",
|
|
18
18
|
"name": "projscan",
|
|
19
|
-
"version": "3.
|
|
20
|
-
"purl": "pkg:npm/projscan@3.
|
|
19
|
+
"version": "3.3.0",
|
|
20
|
+
"purl": "pkg:npm/projscan@3.3.0"
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"components": [
|
package/dist/tool-manifest.json
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -597,6 +597,7 @@ export interface AgentBriefReport {
|
|
|
597
597
|
touchedFiles: string[];
|
|
598
598
|
conflicts: number;
|
|
599
599
|
graph?: GraphEvidenceSummary;
|
|
600
|
+
coordinationHints: SessionCoordinationHint[];
|
|
600
601
|
};
|
|
601
602
|
focus: AgentBriefItem[];
|
|
602
603
|
guardrails: AgentBriefGuardrail[];
|
|
@@ -646,6 +647,17 @@ export interface StartAdoptionLoop {
|
|
|
646
647
|
metrics: StartAdoptionLoopMetric[];
|
|
647
648
|
nextCommands: string[];
|
|
648
649
|
}
|
|
650
|
+
export interface StartFirstTenMinutesStep {
|
|
651
|
+
id: string;
|
|
652
|
+
label: string;
|
|
653
|
+
why: string;
|
|
654
|
+
command: string;
|
|
655
|
+
}
|
|
656
|
+
export interface StartFirstTenMinutes {
|
|
657
|
+
title: string;
|
|
658
|
+
outcome: string;
|
|
659
|
+
commands: StartFirstTenMinutesStep[];
|
|
660
|
+
}
|
|
649
661
|
export interface StartReport {
|
|
650
662
|
schemaVersion: 1;
|
|
651
663
|
readOnly: true;
|
|
@@ -664,6 +676,8 @@ export interface StartReport {
|
|
|
664
676
|
}>;
|
|
665
677
|
};
|
|
666
678
|
recommendedWorkflow: StartWorkflowRecommendation;
|
|
679
|
+
firstTenMinutes: StartFirstTenMinutes;
|
|
680
|
+
coordinationHints: SessionCoordinationHint[];
|
|
667
681
|
evidence: {
|
|
668
682
|
workplanVerdict: PreflightVerdict;
|
|
669
683
|
workplanSummary: string;
|
|
@@ -783,6 +797,13 @@ export interface DogfoodWebsiteProof {
|
|
|
783
797
|
export interface DogfoodMarketValidation {
|
|
784
798
|
status: 'proven' | 'needs_feedback' | 'needs_more_repos' | 'needs_tuning';
|
|
785
799
|
summary: string;
|
|
800
|
+
proofGates: Array<{
|
|
801
|
+
id: 'repo-coverage' | 'reviewer-feedback' | 'useful-feedback' | 'repeat-use' | 'measured-value' | 'false-positive-balance';
|
|
802
|
+
status: 'pass' | 'fail';
|
|
803
|
+
summary: string;
|
|
804
|
+
command: string;
|
|
805
|
+
}>;
|
|
806
|
+
nextProofStep: string;
|
|
786
807
|
repoCoverage: {
|
|
787
808
|
target: number;
|
|
788
809
|
evaluated: number;
|
|
@@ -945,6 +966,12 @@ export interface QualityScorecardReport {
|
|
|
945
966
|
suggestedNextActions: PreflightSuggestedAction[];
|
|
946
967
|
truncated?: boolean;
|
|
947
968
|
}
|
|
969
|
+
export interface SessionCoordinationHint {
|
|
970
|
+
id: 'current-worktree-check' | 'remembered-session-context' | 'resolve-conflicts';
|
|
971
|
+
label: string;
|
|
972
|
+
message: string;
|
|
973
|
+
command: string;
|
|
974
|
+
}
|
|
948
975
|
export interface SessionResourceSummary {
|
|
949
976
|
schemaVersion: 1;
|
|
950
977
|
sessionId: string;
|
|
@@ -955,6 +982,7 @@ export interface SessionResourceSummary {
|
|
|
955
982
|
riskScore: number;
|
|
956
983
|
}>;
|
|
957
984
|
staleSignals: string[];
|
|
985
|
+
coordinationHints: SessionCoordinationHint[];
|
|
958
986
|
truncated?: boolean;
|
|
959
987
|
}
|
|
960
988
|
export interface SessionConflict {
|
|
@@ -968,12 +996,14 @@ export interface SessionHandoff {
|
|
|
968
996
|
summary: SessionResourceSummary;
|
|
969
997
|
remainingRisks: SessionConflict[];
|
|
970
998
|
suggestedNextActions: PreflightSuggestedAction[];
|
|
999
|
+
coordinationHints: SessionCoordinationHint[];
|
|
971
1000
|
avoidRepeating: string[];
|
|
972
1001
|
}
|
|
973
1002
|
export interface RiskNowResource {
|
|
974
1003
|
schemaVersion: 1;
|
|
975
1004
|
conflicts: SessionConflict[];
|
|
976
1005
|
touchedFiles: string[];
|
|
1006
|
+
coordinationHints: SessionCoordinationHint[];
|
|
977
1007
|
truncated?: boolean;
|
|
978
1008
|
}
|
|
979
1009
|
export interface PluginTestResult {
|
|
@@ -985,6 +1015,21 @@ export interface PluginTestResult {
|
|
|
985
1015
|
severity: IssueSeverity;
|
|
986
1016
|
message: string;
|
|
987
1017
|
}>;
|
|
1018
|
+
trust: {
|
|
1019
|
+
localOnly: true;
|
|
1020
|
+
previewFlag: 'PROJSCAN_PLUGINS_PREVIEW=1';
|
|
1021
|
+
reminder: string;
|
|
1022
|
+
};
|
|
1023
|
+
commands: {
|
|
1024
|
+
validate: string;
|
|
1025
|
+
test: string;
|
|
1026
|
+
enable: string;
|
|
1027
|
+
};
|
|
1028
|
+
context: {
|
|
1029
|
+
requested: boolean;
|
|
1030
|
+
capabilities: Array<'semanticGraph' | 'dataflow'>;
|
|
1031
|
+
note: string;
|
|
1032
|
+
};
|
|
988
1033
|
analyzer?: {
|
|
989
1034
|
issues: Issue[];
|
|
990
1035
|
};
|
package/docs/PLUGIN-AUTHORING.md
CHANGED
|
@@ -193,6 +193,14 @@ shape. For reporter plugins, it renders sample `doctor`, `analyze`, and `ci`
|
|
|
193
193
|
payloads for the commands listed in the manifest and verifies each render returns
|
|
194
194
|
a string.
|
|
195
195
|
|
|
196
|
+
The JSON result also includes three guidance blocks:
|
|
197
|
+
|
|
198
|
+
- `trust`: reminds callers that local plugins execute repository code, stay local-only, and require `PROJSCAN_PLUGINS_PREVIEW=1` before execution.
|
|
199
|
+
- `commands`: gives copyable `validate`, `test`, and preview-enabled `enable` commands for the same manifest.
|
|
200
|
+
- `context`: reports whether the plugin requested graph/dataflow context and lists detected capabilities such as `semanticGraph` and `dataflow`.
|
|
201
|
+
|
|
202
|
+
Graph-aware analyzers should keep context access lazy. Only call `context.getSemanticGraph()` or `context.getDataflow()` when the plugin needs that evidence for its issues.
|
|
203
|
+
|
|
196
204
|
## List
|
|
197
205
|
|
|
198
206
|
```sh
|
package/docs/PLUGIN-GALLERY.md
CHANGED
|
@@ -9,7 +9,7 @@ projscan plugin test .projscan-plugins/<name>.projscan-plugin.json
|
|
|
9
9
|
PROJSCAN_PLUGINS_PREVIEW=1 projscan doctor
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
Local plugins are code execution. Only enable plugins you trust.
|
|
12
|
+
Local plugins are code execution. Only enable plugins you trust. `projscan plugin test --format json` returns `trust`, `commands`, and `context` guidance so agents can validate a plugin, see the preview flag, and detect graph/dataflow context needs before execution.
|
|
13
13
|
|
|
14
14
|
## Analyzer Plugins
|
|
15
15
|
|
|
@@ -34,7 +34,7 @@ Files:
|
|
|
34
34
|
|
|
35
35
|
### `graph-context`
|
|
36
36
|
|
|
37
|
-
Demonstrates analyzer access to the optional graph/dataflow context. It reads the semantic graph and dataflow report through `context.getSemanticGraph()` and `context.getDataflow()` and emits a compact architecture summary issue.
|
|
37
|
+
Demonstrates analyzer access to the optional graph/dataflow context. It reads the semantic graph and dataflow report through `context.getSemanticGraph()` and `context.getDataflow()` and emits a compact architecture summary issue. The test result marks `context.requested: true` and lists `semanticGraph` plus `dataflow` capabilities.
|
|
38
38
|
|
|
39
39
|
Files:
|
|
40
40
|
- `docs/examples/plugins/graph-context.projscan-plugin.json`
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projscan",
|
|
3
3
|
"mcpName": "io.github.abhiyoheswaran1/projscan",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.3.0",
|
|
5
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++; 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",
|