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
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import type { EvidencePackReport } from '../types.js';
|
|
1
|
+
import type { EvidencePackPrCommentValidation, EvidencePackPrSummary, EvidencePackReport, PreflightReport } from '../types.js';
|
|
2
2
|
export interface ComputeEvidencePackOptions {
|
|
3
3
|
lines?: string[];
|
|
4
4
|
includeWebsitePrompt?: boolean;
|
|
5
|
+
includePrComment?: boolean;
|
|
5
6
|
maxFindings?: number;
|
|
7
|
+
preflightMaxChangedFiles?: number;
|
|
6
8
|
}
|
|
7
9
|
export declare function computeEvidencePack(rootPath: string, options?: ComputeEvidencePackOptions): Promise<EvidencePackReport>;
|
|
10
|
+
export declare function renderEvidencePackPrComment(report: EvidencePackReport): string;
|
|
11
|
+
export declare function validateEvidencePackPrComment(markdown: string, report?: EvidencePackReport): EvidencePackPrCommentValidation;
|
|
12
|
+
export declare function calibratePreflightTrust(preflight: PreflightReport): EvidencePackPrSummary['trust'];
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
1
3
|
import { computeBugHunt } from './bugHunt.js';
|
|
4
|
+
import { fixFirstFromChangedFiles, fixFirstFromEvidenceRisk } from './fixFirst.js';
|
|
2
5
|
import { computePreflight } from './preflight.js';
|
|
3
6
|
import { computeReleaseTrain } from './releaseTrain.js';
|
|
4
7
|
import { computeWorkplan } from './workplan.js';
|
|
8
|
+
import { analyzeHotspots } from './hotspotAnalyzer.js';
|
|
9
|
+
import { collectIssues } from './issueEngine.js';
|
|
10
|
+
import { loadOwnership } from './ownership.js';
|
|
11
|
+
import { scanRepository } from './repositoryScanner.js';
|
|
12
|
+
import { computeDiff, loadBaseline } from '../utils/baseline.js';
|
|
13
|
+
import { applyConfigToIssues, loadConfig } from '../utils/config.js';
|
|
5
14
|
export async function computeEvidencePack(rootPath, options = {}) {
|
|
6
15
|
const [train, bugHunt, workplan, preflight] = await Promise.all([
|
|
7
16
|
computeReleaseTrain(rootPath, { lines: options.lines }),
|
|
8
17
|
computeBugHunt(rootPath, { maxFindings: options.maxFindings }),
|
|
9
18
|
computeWorkplan(rootPath, { mode: 'release', maxTasks: 6 }),
|
|
10
|
-
computePreflight(rootPath, { mode: 'before_merge' }),
|
|
19
|
+
computePreflight(rootPath, { mode: 'before_merge', maxChangedFiles: options.preflightMaxChangedFiles }),
|
|
11
20
|
]);
|
|
12
21
|
const artifacts = buildArtifacts(train, bugHunt, workplan, preflight);
|
|
13
|
-
const
|
|
22
|
+
const rawVerdict = packVerdict(artifacts);
|
|
14
23
|
const blockingReasons = blockingEvidence(preflight, bugHunt, workplan);
|
|
15
24
|
const changelogEntries = buildChangelogEntries();
|
|
16
25
|
const suggestedNextActions = dedupeActions([
|
|
@@ -22,12 +31,18 @@ export async function computeEvidencePack(rootPath, options = {}) {
|
|
|
22
31
|
command: finding.verification.commands[0],
|
|
23
32
|
})),
|
|
24
33
|
]);
|
|
25
|
-
|
|
34
|
+
const [baselineTrend, ownership] = await Promise.all([
|
|
35
|
+
safeBaselineTrend(rootPath),
|
|
36
|
+
loadOwnership(rootPath).catch(() => undefined),
|
|
37
|
+
]);
|
|
38
|
+
const prSummary = buildPrSummary(workplan, bugHunt, preflight, suggestedNextActions, baselineTrend, ownership);
|
|
39
|
+
const verdict = calibrateEvidencePackVerdict(rawVerdict, prSummary);
|
|
40
|
+
const report = {
|
|
26
41
|
schemaVersion: 1,
|
|
27
42
|
currentVersion: train.currentVersion,
|
|
28
43
|
readOnly: true,
|
|
29
44
|
verdict,
|
|
30
|
-
summary: summarize(verdict, train, blockingReasons),
|
|
45
|
+
summary: summarize(verdict, train.currentVersion, blockingReasons),
|
|
31
46
|
train: {
|
|
32
47
|
lines: train.plan.lines,
|
|
33
48
|
readiness: train.readiness,
|
|
@@ -40,8 +55,438 @@ export async function computeEvidencePack(rootPath, options = {}) {
|
|
|
40
55
|
artifacts,
|
|
41
56
|
changelogEntries,
|
|
42
57
|
...(options.includeWebsitePrompt ? { websitePrompt: buildWebsitePrompt(train, changelogEntries) } : {}),
|
|
58
|
+
prSummary,
|
|
43
59
|
suggestedNextActions,
|
|
44
60
|
};
|
|
61
|
+
if (!options.includePrComment)
|
|
62
|
+
return report;
|
|
63
|
+
const prComment = renderEvidencePackPrComment(report);
|
|
64
|
+
return { ...report, prComment, prCommentValidation: validateEvidencePackPrComment(prComment, report) };
|
|
65
|
+
}
|
|
66
|
+
export function renderEvidencePackPrComment(report) {
|
|
67
|
+
const blockers = report.approval.blockingReasons.slice(0, 5);
|
|
68
|
+
const commands = dedupeStrings(report.artifacts.flatMap((artifact) => artifact.commands)).slice(0, 8);
|
|
69
|
+
const nextActions = report.suggestedNextActions.slice(0, 5);
|
|
70
|
+
const pr = report.prSummary;
|
|
71
|
+
const blockingReasonLabel = pr?.trust.verdict === 'manual_review' ? 'manual gate' : 'blocker';
|
|
72
|
+
const lines = [
|
|
73
|
+
'## projscan approval evidence',
|
|
74
|
+
'',
|
|
75
|
+
`**Verdict:** ${report.verdict}`,
|
|
76
|
+
`**Version:** ${report.currentVersion ?? 'unknown'}`,
|
|
77
|
+
`**Summary:** ${report.summary}`,
|
|
78
|
+
'',
|
|
79
|
+
'### Verdict',
|
|
80
|
+
`- ${pr?.verdictLabel ?? report.verdict}: ${pr?.decision ?? report.approval.recommendation}`,
|
|
81
|
+
...(blockers.length > 0 ? blockers.map((reason) => `- ${blockingReasonLabel}: ${reason}`) : ['- blockers: none recorded']),
|
|
82
|
+
'',
|
|
83
|
+
'### Trust Calibration',
|
|
84
|
+
...(pr?.trust ? formatTrustCalibration(pr.trust) : ['- Trust signals unavailable; run `projscan preflight --mode before_merge --format json`.']),
|
|
85
|
+
'',
|
|
86
|
+
'### Baseline Trend',
|
|
87
|
+
...(pr?.baselineTrend ? formatBaselineTrend(pr.baselineTrend) : ['- No local baseline found. Run `projscan diff --save-baseline` after the first clean review.']),
|
|
88
|
+
'',
|
|
89
|
+
'### Top Risks',
|
|
90
|
+
...(pr?.topRisks.length ? pr.topRisks.map(formatPrRisk) : ['- No prioritized risks recorded.']),
|
|
91
|
+
'',
|
|
92
|
+
'### First Fix',
|
|
93
|
+
...(pr?.fixFirst ? formatFixFirst(pr.fixFirst) : ['- No immediate fix-first target. Preserve the baseline and rerun the verification commands.']),
|
|
94
|
+
'',
|
|
95
|
+
'### Team Routing',
|
|
96
|
+
...(pr?.teamRoutes.length ? pr.teamRoutes.map(formatTeamRoute) : formatMissingOwnerHint(pr)),
|
|
97
|
+
'',
|
|
98
|
+
'### Verification',
|
|
99
|
+
...commands.map((command) => `- \`${command}\``),
|
|
100
|
+
'',
|
|
101
|
+
'### Next Commands',
|
|
102
|
+
...(pr?.nextCommands.length ? pr.nextCommands.map((command) => `- \`${command}\``) : ['- `projscan preflight --mode before_merge --format json`']),
|
|
103
|
+
'',
|
|
104
|
+
'### Suggested Next Actions',
|
|
105
|
+
...(nextActions.length > 0 ? nextActions.map(formatSuggestedAction) : ['- None recorded.']),
|
|
106
|
+
'',
|
|
107
|
+
'### Developer Feedback',
|
|
108
|
+
...formatDeveloperFeedback(),
|
|
109
|
+
'',
|
|
110
|
+
`Approval guidance: ${formatApprovalGuidance(report)}`,
|
|
111
|
+
];
|
|
112
|
+
return `${lines.join('\n')}\n`;
|
|
113
|
+
}
|
|
114
|
+
const REQUIRED_PR_COMMENT_SECTIONS = [
|
|
115
|
+
'## projscan approval evidence',
|
|
116
|
+
'### Verdict',
|
|
117
|
+
'### Trust Calibration',
|
|
118
|
+
'### Baseline Trend',
|
|
119
|
+
'### Top Risks',
|
|
120
|
+
'### First Fix',
|
|
121
|
+
'### Team Routing',
|
|
122
|
+
'### Verification',
|
|
123
|
+
'### Next Commands',
|
|
124
|
+
'### Suggested Next Actions',
|
|
125
|
+
'### Developer Feedback',
|
|
126
|
+
];
|
|
127
|
+
const GITHUB_COMMENT_LIMIT = 65_536;
|
|
128
|
+
export function validateEvidencePackPrComment(markdown, report) {
|
|
129
|
+
const missingSections = REQUIRED_PR_COMMENT_SECTIONS.filter((section) => !markdown.includes(section));
|
|
130
|
+
const actionableCommand = hasActionableCommand(markdown, report);
|
|
131
|
+
const renderedSanely = !/undefined|\[object Object\]/.test(markdown);
|
|
132
|
+
const checks = [
|
|
133
|
+
{
|
|
134
|
+
id: 'required-sections',
|
|
135
|
+
status: missingSections.length > 0 ? 'fail' : 'pass',
|
|
136
|
+
summary: missingSections.length > 0
|
|
137
|
+
? `Missing required PR section(s): ${missingSections.map((section) => section.replace(/^#+\s*/, '')).join(', ')}`
|
|
138
|
+
: 'All required PR sections are present.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
id: 'github-size',
|
|
142
|
+
status: markdown.length > GITHUB_COMMENT_LIMIT ? 'fail' : 'pass',
|
|
143
|
+
summary: `${markdown.length} character(s), GitHub comment limit ${GITHUB_COMMENT_LIMIT}.`,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'render-sanity',
|
|
147
|
+
status: renderedSanely ? 'pass' : 'fail',
|
|
148
|
+
summary: renderedSanely
|
|
149
|
+
? 'Rendered comment has no unresolved placeholder strings.'
|
|
150
|
+
: 'Rendered comment contains an unresolved placeholder or object string.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: 'actionable-commands',
|
|
154
|
+
status: actionableCommand ? 'pass' : 'fail',
|
|
155
|
+
summary: actionableCommand
|
|
156
|
+
? 'Comment includes at least one exact next command.'
|
|
157
|
+
: 'Comment does not include an exact next command.',
|
|
158
|
+
},
|
|
159
|
+
];
|
|
160
|
+
const status = checks.some((check) => check.status === 'fail')
|
|
161
|
+
? 'fail'
|
|
162
|
+
: checks.some((check) => check.status === 'warn')
|
|
163
|
+
? 'warn'
|
|
164
|
+
: 'pass';
|
|
165
|
+
return { status, checks };
|
|
166
|
+
}
|
|
167
|
+
function hasActionableCommand(markdown, report) {
|
|
168
|
+
if (/`(?:projscan|npm|npx|gh|git)\b/.test(markdown))
|
|
169
|
+
return true;
|
|
170
|
+
return (report?.prSummary?.nextCommands.length ?? 0) > 0;
|
|
171
|
+
}
|
|
172
|
+
async function safeBaselineTrend(rootPath) {
|
|
173
|
+
const baselinePath = path.join(rootPath, '.projscan-baseline.json');
|
|
174
|
+
try {
|
|
175
|
+
await fs.access(baselinePath);
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
const configResult = await loadConfig(rootPath).catch(() => ({ config: { ignore: [] } }));
|
|
182
|
+
const scan = await scanRepository(rootPath, { ignore: configResult.config.ignore });
|
|
183
|
+
const issues = applyConfigToIssues(await collectIssues(rootPath, scan.files), configResult.config);
|
|
184
|
+
const hotspots = await analyzeHotspots(rootPath, scan.files, issues, { limit: 20 });
|
|
185
|
+
const baseline = await loadBaseline(baselinePath, rootPath);
|
|
186
|
+
return computeDiff(baseline, issues, hotspots).trend;
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function buildPrSummary(workplan, bugHunt, preflight, nextActions, baselineTrend, ownership) {
|
|
193
|
+
const topRisks = buildPrTopRisks(workplan, bugHunt, ownership);
|
|
194
|
+
const changedFileRoutes = buildChangedFileTeamRoutes(preflight, ownership);
|
|
195
|
+
const teamRoutes = mergeTeamRoutes([...buildTeamRoutes(topRisks), ...changedFileRoutes]);
|
|
196
|
+
const ownershipSuggestion = teamRoutes.length === 0 ? buildOwnershipSuggestion(preflight) : undefined;
|
|
197
|
+
const trust = calibratePreflightTrust(preflight);
|
|
198
|
+
const nextCommands = buildPrNextCommands(nextActions);
|
|
199
|
+
const fixFirst = buildPrFixFirst(topRisks, preflight, changedFileRoutes);
|
|
200
|
+
const concreteBlockers = concreteDefectMessages(preflight);
|
|
201
|
+
const verdictLabel = concreteBlockers.length > 0
|
|
202
|
+
? 'Concrete blocker'
|
|
203
|
+
: preflight.evidence.releaseScale?.detected
|
|
204
|
+
? 'Manual review'
|
|
205
|
+
: preflight.verdict === 'proceed'
|
|
206
|
+
? 'Ready'
|
|
207
|
+
: 'Needs review';
|
|
208
|
+
const decision = concreteBlockers.length > 0
|
|
209
|
+
? `${concreteBlockers.length} concrete blocker(s) need fixing before approval.`
|
|
210
|
+
: preflight.evidence.releaseScale?.detected
|
|
211
|
+
? 'Scale or complexity needs human sign-off; no concrete taint/dataflow/health/plugin/supply-chain blocker was found.'
|
|
212
|
+
: preflight.verdict === 'proceed'
|
|
213
|
+
? 'No blocking or cautionary preflight signals found.'
|
|
214
|
+
: 'Review cautions and run the listed next actions before approval.';
|
|
215
|
+
return {
|
|
216
|
+
verdictLabel,
|
|
217
|
+
decision,
|
|
218
|
+
trust,
|
|
219
|
+
topRisks,
|
|
220
|
+
teamRoutes,
|
|
221
|
+
...(ownershipSuggestion ? { ownershipSuggestion } : {}),
|
|
222
|
+
...(fixFirst ? { fixFirst } : {}),
|
|
223
|
+
nextCommands,
|
|
224
|
+
...(baselineTrend ? { baselineTrend } : {}),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
export function calibratePreflightTrust(preflight) {
|
|
228
|
+
const concreteBlockers = concreteDefectMessages(preflight);
|
|
229
|
+
const warningReasons = preflight.reasons.filter((reason) => reason.severity === 'warning');
|
|
230
|
+
const manualReviewReasons = preflight.reasons.filter((reason) => reason.severity === 'warning' || isReleaseScaleReviewReason(preflight, reason));
|
|
231
|
+
const manualReviewSignals = dedupeStrings([
|
|
232
|
+
...(preflight.evidence.releaseScale?.detected ? [preflight.evidence.releaseScale.explanation] : []),
|
|
233
|
+
...manualReviewReasons
|
|
234
|
+
.filter((reason) => ['changed-files', 'git', 'hotspots', 'release', 'review'].includes(reason.source))
|
|
235
|
+
.map((reason) => reason.message),
|
|
236
|
+
]).slice(0, 5);
|
|
237
|
+
const watchSignals = dedupeStrings(warningReasons
|
|
238
|
+
.filter((reason) => !['changed-files', 'git', 'hotspots', 'release', 'review'].includes(reason.source))
|
|
239
|
+
.map((reason) => reason.message)).slice(0, 5);
|
|
240
|
+
const verdict = concreteBlockers.length > 0
|
|
241
|
+
? 'actual_defect'
|
|
242
|
+
: manualReviewSignals.length > 0 || watchSignals.length > 0
|
|
243
|
+
? 'manual_review'
|
|
244
|
+
: 'clean';
|
|
245
|
+
const summary = verdict === 'actual_defect'
|
|
246
|
+
? `${concreteBlockers.length} actual defect/blocker signal(s) require fixes.`
|
|
247
|
+
: verdict === 'manual_review'
|
|
248
|
+
? `${manualReviewSignals.length + watchSignals.length} manual review/watch signal(s); no actual defect blocker was found.`
|
|
249
|
+
: 'clean: no actual defect, manual review, or watch signals found.';
|
|
250
|
+
return { verdict, summary, concreteBlockers, manualReviewSignals, watchSignals };
|
|
251
|
+
}
|
|
252
|
+
function concreteDefectMessages(preflight) {
|
|
253
|
+
return dedupeStrings([
|
|
254
|
+
...preflight.reasons
|
|
255
|
+
.filter((reason) => isConcreteDefectReason(preflight, reason))
|
|
256
|
+
.map((reason) => reason.message),
|
|
257
|
+
...(preflight.evidence.releaseScale?.concreteBlockers ?? []),
|
|
258
|
+
]).slice(0, 5);
|
|
259
|
+
}
|
|
260
|
+
function isConcreteDefectReason(preflight, reason) {
|
|
261
|
+
if (reason.severity !== 'error')
|
|
262
|
+
return false;
|
|
263
|
+
return !isReleaseScaleReviewReason(preflight, reason);
|
|
264
|
+
}
|
|
265
|
+
function isReleaseScaleReviewReason(preflight, reason) {
|
|
266
|
+
const releaseScale = preflight.evidence.releaseScale;
|
|
267
|
+
return releaseScale?.detected === true
|
|
268
|
+
&& releaseScale.concreteBlockers.length === 0
|
|
269
|
+
&& reason.source === 'review'
|
|
270
|
+
&& /scale\/complexity|release-scale|large platform|changed-file risk/i.test(reason.message);
|
|
271
|
+
}
|
|
272
|
+
function buildPrNextCommands(actions) {
|
|
273
|
+
return dedupeStrings([
|
|
274
|
+
'projscan preflight --mode before_merge --format json',
|
|
275
|
+
...actions.map((action) => action.command ?? (action.tool ? `MCP ${action.tool}` : '')).filter(Boolean),
|
|
276
|
+
]).slice(0, 6);
|
|
277
|
+
}
|
|
278
|
+
function buildPrTopRisks(workplan, bugHunt, ownership) {
|
|
279
|
+
const risks = [];
|
|
280
|
+
for (const risk of workplan.topRisks) {
|
|
281
|
+
const files = risk.file ? [risk.file] : [];
|
|
282
|
+
risks.push({
|
|
283
|
+
priority: risk.priority,
|
|
284
|
+
title: risk.message,
|
|
285
|
+
files,
|
|
286
|
+
...(ownerFor(files, ownership) ? { owner: ownerFor(files, ownership) } : {}),
|
|
287
|
+
command: risk.tool ? toolCommand(risk.tool) : 'projscan preflight --format json',
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
for (const finding of bugHunt.topSuspects) {
|
|
291
|
+
risks.push({
|
|
292
|
+
priority: finding.priority,
|
|
293
|
+
title: finding.title,
|
|
294
|
+
files: finding.files,
|
|
295
|
+
...(ownerFor(finding.files, ownership) ? { owner: ownerFor(finding.files, ownership) } : {}),
|
|
296
|
+
command: finding.verification.commands[0] ?? 'projscan bug-hunt --format json',
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
const seen = new Set();
|
|
300
|
+
return risks.filter((risk) => {
|
|
301
|
+
const key = `${risk.title}:${risk.files.join(',')}`;
|
|
302
|
+
if (seen.has(key))
|
|
303
|
+
return false;
|
|
304
|
+
seen.add(key);
|
|
305
|
+
return true;
|
|
306
|
+
}).slice(0, 3);
|
|
307
|
+
}
|
|
308
|
+
function buildTeamRoutes(risks) {
|
|
309
|
+
const byOwner = new Map();
|
|
310
|
+
for (const risk of risks) {
|
|
311
|
+
if (!risk.owner)
|
|
312
|
+
continue;
|
|
313
|
+
const files = byOwner.get(risk.owner) ?? new Set();
|
|
314
|
+
for (const file of risk.files)
|
|
315
|
+
files.add(file);
|
|
316
|
+
byOwner.set(risk.owner, files);
|
|
317
|
+
}
|
|
318
|
+
return [...byOwner.entries()].map(([owner, files]) => ({
|
|
319
|
+
owner,
|
|
320
|
+
files: [...files].slice(0, 5),
|
|
321
|
+
reason: 'owns one or more top PR risks',
|
|
322
|
+
}));
|
|
323
|
+
}
|
|
324
|
+
function ownerFor(files, ownership) {
|
|
325
|
+
if (!ownership)
|
|
326
|
+
return undefined;
|
|
327
|
+
for (const file of files) {
|
|
328
|
+
const owner = ownership(file);
|
|
329
|
+
if (owner)
|
|
330
|
+
return owner;
|
|
331
|
+
}
|
|
332
|
+
return undefined;
|
|
333
|
+
}
|
|
334
|
+
function toolCommand(tool) {
|
|
335
|
+
if (tool === 'projscan_review')
|
|
336
|
+
return 'projscan review --format json';
|
|
337
|
+
if (tool === 'projscan_hotspots')
|
|
338
|
+
return 'projscan hotspots --format json';
|
|
339
|
+
if (tool === 'projscan_doctor')
|
|
340
|
+
return 'projscan doctor --format json';
|
|
341
|
+
return 'projscan preflight --format json';
|
|
342
|
+
}
|
|
343
|
+
function formatApprovalGuidance(report) {
|
|
344
|
+
if (report.verdict === 'blocked' && report.prSummary?.trust.verdict === 'manual_review') {
|
|
345
|
+
return 'Require human release sign-off; no actual-defect blocker is recorded unless reviewers confirm one.';
|
|
346
|
+
}
|
|
347
|
+
return report.approval.recommendation;
|
|
348
|
+
}
|
|
349
|
+
function formatTrustCalibration(trust) {
|
|
350
|
+
return [
|
|
351
|
+
`- ${trust.summary}`,
|
|
352
|
+
...(trust.concreteBlockers.length > 0
|
|
353
|
+
? [`- actual defects: ${trust.concreteBlockers.join('; ')}`]
|
|
354
|
+
: ['- actual defects: none']),
|
|
355
|
+
...(trust.manualReviewSignals.length > 0
|
|
356
|
+
? [`- manual review: ${trust.manualReviewSignals.join('; ')}`]
|
|
357
|
+
: ['- manual review: none']),
|
|
358
|
+
...(trust.watchSignals.length > 0
|
|
359
|
+
? [`- watch signals: ${trust.watchSignals.join('; ')}`]
|
|
360
|
+
: ['- watch signals: none']),
|
|
361
|
+
];
|
|
362
|
+
}
|
|
363
|
+
function formatBaselineTrend(trend) {
|
|
364
|
+
const riskDirection = trend.riskDirection ?? inferRiskDirection(trend.scoreDelta);
|
|
365
|
+
const riskDelta = trend.riskDelta ?? -trend.scoreDelta;
|
|
366
|
+
const changedSinceBaseline = trend.changedSinceBaseline ?? [];
|
|
367
|
+
const qualityBefore = trend.qualityScoreBefore;
|
|
368
|
+
const qualityAfter = trend.qualityScoreAfter;
|
|
369
|
+
const quality = typeof qualityBefore === 'number' && typeof qualityAfter === 'number'
|
|
370
|
+
? ` (quality ${qualityBefore}->${qualityAfter})`
|
|
371
|
+
: '';
|
|
372
|
+
return [
|
|
373
|
+
`- ${trend.summary}`,
|
|
374
|
+
`- risk from baseline: ${riskDirection}${riskDelta === 0 ? '' : ` ${riskDelta > 0 ? '+' : ''}${riskDelta}`}${quality}`,
|
|
375
|
+
...(changedSinceBaseline.length > 0 ? [`- changed since baseline: ${changedSinceBaseline.join('; ')}`] : []),
|
|
376
|
+
...(trend.newHotspots.length > 0 ? [`- new hotspots: ${trend.newHotspots.join(', ')}`] : []),
|
|
377
|
+
...(trend.recurringNoisyRules.length > 0
|
|
378
|
+
? [`- recurring noisy rules: ${trend.recurringNoisyRules.map((rule) => `${rule.id} (${rule.before}->${rule.after})`).join(', ')}`]
|
|
379
|
+
: []),
|
|
380
|
+
];
|
|
381
|
+
}
|
|
382
|
+
function inferRiskDirection(scoreDelta) {
|
|
383
|
+
if (scoreDelta < 0)
|
|
384
|
+
return 'up';
|
|
385
|
+
if (scoreDelta > 0)
|
|
386
|
+
return 'down';
|
|
387
|
+
return 'flat';
|
|
388
|
+
}
|
|
389
|
+
function formatPrRisk(risk) {
|
|
390
|
+
const files = risk.files.length > 0 ? ` files: ${risk.files.join(', ')}` : '';
|
|
391
|
+
const owner = risk.owner ? ` owner: ${risk.owner}` : ' owner: unassigned';
|
|
392
|
+
return `- **${risk.priority}** ${risk.title}${owner}${files} run: \`${risk.command}\``;
|
|
393
|
+
}
|
|
394
|
+
function formatTeamRoute(route) {
|
|
395
|
+
return `- ${route.owner}: ${route.reason}${route.files.length > 0 ? ` (${route.files.join(', ')})` : ''}`;
|
|
396
|
+
}
|
|
397
|
+
function formatMissingOwnerHint(pr) {
|
|
398
|
+
if (pr?.ownershipSuggestion) {
|
|
399
|
+
return [
|
|
400
|
+
`- No owner hints found. Add .github/CODEOWNERS line: \`${pr.ownershipSuggestion}\``,
|
|
401
|
+
'- Replace `@team-name` with the owning team before merging.',
|
|
402
|
+
];
|
|
403
|
+
}
|
|
404
|
+
return ['- No owner hints found. Add .github/CODEOWNERS or package owner metadata for routing.'];
|
|
405
|
+
}
|
|
406
|
+
function formatFixFirst(fix) {
|
|
407
|
+
return [
|
|
408
|
+
`- **${fix.priority}** ${fix.title}${fix.owner ? ` owner: ${fix.owner}` : ''}`,
|
|
409
|
+
`- why first: ${fix.whyFirst}`,
|
|
410
|
+
...(fix.files.length > 0 ? [`- files: ${fix.files.join(', ')}`] : []),
|
|
411
|
+
...fix.commands.slice(0, 4).map((command) => `- run: \`${command}\``),
|
|
412
|
+
...(fix.expected ? [`- fixed when: ${fix.expected}`] : []),
|
|
413
|
+
];
|
|
414
|
+
}
|
|
415
|
+
function buildPrFixFirst(risks, preflight, changedFileRoutes) {
|
|
416
|
+
const riskFix = fixFirstFromEvidenceRisk(risks[0]);
|
|
417
|
+
if (riskFix)
|
|
418
|
+
return riskFix;
|
|
419
|
+
const route = changedFileRoutes[0];
|
|
420
|
+
if (route)
|
|
421
|
+
return fixFirstFromChangedFiles(route.files, route.owner);
|
|
422
|
+
const changedFiles = preflight.evidence.changedFiles?.files ?? [];
|
|
423
|
+
return fixFirstFromChangedFiles(changedFiles);
|
|
424
|
+
}
|
|
425
|
+
function buildOwnershipSuggestion(preflight) {
|
|
426
|
+
const paths = (preflight.evidence.changedFiles?.files ?? [])
|
|
427
|
+
.map(normalizeChangedFilePath)
|
|
428
|
+
.filter((file) => file.length > 0 && !file.endsWith('package-lock.json') && !file.startsWith('.projscan-'));
|
|
429
|
+
if (paths.length === 0)
|
|
430
|
+
return undefined;
|
|
431
|
+
const counts = new Map();
|
|
432
|
+
for (const file of paths) {
|
|
433
|
+
const pattern = codeownersPatternForPath(file);
|
|
434
|
+
counts.set(pattern, (counts.get(pattern) ?? 0) + 1);
|
|
435
|
+
}
|
|
436
|
+
const [pattern] = [...counts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))[0] ?? [];
|
|
437
|
+
return pattern ? `${pattern} @team-name` : undefined;
|
|
438
|
+
}
|
|
439
|
+
function normalizeChangedFilePath(value) {
|
|
440
|
+
return value.replace(/^(?:[ MADRCU?!]{1,2}|\?\?)\s+/, '').trim();
|
|
441
|
+
}
|
|
442
|
+
function codeownersPatternForPath(file) {
|
|
443
|
+
const normalized = file.replace(/\\/g, '/');
|
|
444
|
+
const parts = normalized.split('/').filter(Boolean);
|
|
445
|
+
if (parts.length === 0)
|
|
446
|
+
return '*';
|
|
447
|
+
if (parts.length >= 2 && ['src', 'app', 'packages', 'apps', 'services'].includes(parts[0])) {
|
|
448
|
+
return `${parts[0]}/${parts[1]}/**`;
|
|
449
|
+
}
|
|
450
|
+
if (parts.length >= 2 && parts[0] === '.github')
|
|
451
|
+
return '.github/**';
|
|
452
|
+
if (parts.length >= 2)
|
|
453
|
+
return `${parts[0]}/**`;
|
|
454
|
+
return normalized;
|
|
455
|
+
}
|
|
456
|
+
function buildChangedFileTeamRoutes(preflight, ownership) {
|
|
457
|
+
if (!ownership)
|
|
458
|
+
return [];
|
|
459
|
+
const byOwner = new Map();
|
|
460
|
+
for (const rawFile of preflight.evidence.changedFiles?.files ?? []) {
|
|
461
|
+
const file = normalizeChangedFilePath(rawFile);
|
|
462
|
+
if (!file)
|
|
463
|
+
continue;
|
|
464
|
+
const owner = ownership(file);
|
|
465
|
+
if (!owner)
|
|
466
|
+
continue;
|
|
467
|
+
const files = byOwner.get(owner) ?? new Set();
|
|
468
|
+
files.add(file);
|
|
469
|
+
byOwner.set(owner, files);
|
|
470
|
+
}
|
|
471
|
+
return [...byOwner.entries()].map(([owner, files]) => ({
|
|
472
|
+
owner,
|
|
473
|
+
files: [...files].slice(0, 5),
|
|
474
|
+
reason: 'owns changed file(s) in this PR',
|
|
475
|
+
}));
|
|
476
|
+
}
|
|
477
|
+
function mergeTeamRoutes(routes) {
|
|
478
|
+
const byOwner = new Map();
|
|
479
|
+
for (const route of routes) {
|
|
480
|
+
const existing = byOwner.get(route.owner);
|
|
481
|
+
if (!existing) {
|
|
482
|
+
byOwner.set(route.owner, { ...route, files: [...route.files] });
|
|
483
|
+
continue;
|
|
484
|
+
}
|
|
485
|
+
existing.files = [...new Set([...existing.files, ...route.files])].slice(0, 5);
|
|
486
|
+
if (!existing.reason.includes(route.reason))
|
|
487
|
+
existing.reason = `${existing.reason}; ${route.reason}`;
|
|
488
|
+
}
|
|
489
|
+
return [...byOwner.values()].slice(0, 5);
|
|
45
490
|
}
|
|
46
491
|
function buildArtifacts(train, bugHunt, workplan, preflight) {
|
|
47
492
|
return [
|
|
@@ -93,9 +538,11 @@ function buildArtifacts(train, bugHunt, workplan, preflight) {
|
|
|
93
538
|
}
|
|
94
539
|
function blockingEvidence(preflight, bugHunt, workplan) {
|
|
95
540
|
return dedupeStrings([
|
|
96
|
-
...preflight.
|
|
97
|
-
|
|
98
|
-
.
|
|
541
|
+
...(concreteDefectMessages(preflight).length > 0
|
|
542
|
+
? concreteDefectMessages(preflight)
|
|
543
|
+
: preflight.verdict === 'block' && preflight.evidence.releaseScale?.detected
|
|
544
|
+
? [preflight.evidence.releaseScale.explanation]
|
|
545
|
+
: []),
|
|
99
546
|
...(bugHunt.verdict === 'block'
|
|
100
547
|
? bugHunt.fixQueue
|
|
101
548
|
.filter((finding) => finding.priority === 'p0')
|
|
@@ -126,6 +573,20 @@ function buildWebsitePrompt(train, changelogEntries) {
|
|
|
126
573
|
'Keep claims grounded in the completed product evidence.',
|
|
127
574
|
].join('\n');
|
|
128
575
|
}
|
|
576
|
+
function formatDeveloperFeedback() {
|
|
577
|
+
return [
|
|
578
|
+
'- Was this useful on this PR? Ask the reviewer whether the comment saved 10-20 minutes.',
|
|
579
|
+
'- What was missing or noisy? Capture one missing signal, one noisy rule, or `none` before merge.',
|
|
580
|
+
'- Keep using it every PR: `projscan evidence-pack --pr-comment` and `projscan dogfood --repo <path-to-repo> --format json`.',
|
|
581
|
+
];
|
|
582
|
+
}
|
|
583
|
+
function formatSuggestedAction(action) {
|
|
584
|
+
const references = [
|
|
585
|
+
action.command ? `\`${action.command}\`` : undefined,
|
|
586
|
+
action.tool ? `MCP \`${action.tool}\`` : undefined,
|
|
587
|
+
].filter(Boolean);
|
|
588
|
+
return references.length > 0 ? `- ${action.label}: ${references.join(' / ')}` : `- ${action.label}`;
|
|
589
|
+
}
|
|
129
590
|
function packVerdict(artifacts) {
|
|
130
591
|
if (artifacts.some((artifact) => artifact.status === 'blocked'))
|
|
131
592
|
return 'blocked';
|
|
@@ -133,14 +594,21 @@ function packVerdict(artifacts) {
|
|
|
133
594
|
return 'caution';
|
|
134
595
|
return 'ready';
|
|
135
596
|
}
|
|
136
|
-
function
|
|
597
|
+
function calibrateEvidencePackVerdict(verdict, prSummary) {
|
|
598
|
+
if (verdict === 'blocked' && prSummary.trust.verdict === 'manual_review' && prSummary.trust.concreteBlockers.length === 0) {
|
|
599
|
+
return 'caution';
|
|
600
|
+
}
|
|
601
|
+
return verdict;
|
|
602
|
+
}
|
|
603
|
+
function summarize(verdict, currentVersion, blockingReasons) {
|
|
604
|
+
const version = currentVersion ?? 'current version';
|
|
137
605
|
if (verdict === 'blocked') {
|
|
138
606
|
return `blocked: ${blockingReasons[0] ?? 'product evidence still contains blocking signals'}`;
|
|
139
607
|
}
|
|
140
608
|
if (verdict === 'caution') {
|
|
141
|
-
return `caution: ${
|
|
609
|
+
return `caution: ${version} evidence is assembled but still needs explicit review`;
|
|
142
610
|
}
|
|
143
|
-
return `ready: ${
|
|
611
|
+
return `ready: ${version} evidence is assembled for approval`;
|
|
144
612
|
}
|
|
145
613
|
function approvalRecommendation(verdict) {
|
|
146
614
|
if (verdict === 'blocked')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"releaseEvidence.js","sourceRoot":"","sources":["../../src/core/releaseEvidence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"releaseEvidence.js","sourceRoot":"","sources":["../../src/core/releaseEvidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StartReport, WorkplanMode } from '../types.js';
|
|
2
|
+
export interface ComputeStartOptions {
|
|
3
|
+
mode?: WorkplanMode;
|
|
4
|
+
maxTasks?: number;
|
|
5
|
+
maxRisks?: number;
|
|
6
|
+
includeHandoff?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function computeStartReport(rootPath: string, options?: ComputeStartOptions): Promise<StartReport>;
|