@pseolint/core 0.4.1 → 0.4.3
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/dist/auditor.d.ts +12 -1
- package/dist/auditor.d.ts.map +1 -1
- package/dist/auditor.js +240 -31
- package/dist/auditor.js.map +1 -1
- package/dist/formatters/bucket-findings.d.ts +43 -0
- package/dist/formatters/bucket-findings.d.ts.map +1 -0
- package/dist/formatters/bucket-findings.js +110 -0
- package/dist/formatters/bucket-findings.js.map +1 -0
- package/dist/formatters/console.d.ts.map +1 -1
- package/dist/formatters/console.js +103 -34
- package/dist/formatters/console.js.map +1 -1
- package/dist/formatters/fixplan.d.ts +13 -0
- package/dist/formatters/fixplan.d.ts.map +1 -0
- package/dist/formatters/fixplan.js +328 -0
- package/dist/formatters/fixplan.js.map +1 -0
- package/dist/formatters/html.d.ts.map +1 -1
- package/dist/formatters/html.js +27 -0
- package/dist/formatters/html.js.map +1 -1
- package/dist/formatters/index.d.ts +2 -0
- package/dist/formatters/index.d.ts.map +1 -1
- package/dist/formatters/index.js +1 -0
- package/dist/formatters/index.js.map +1 -1
- package/dist/formatters/markdown.d.ts.map +1 -1
- package/dist/formatters/markdown.js +77 -7
- package/dist/formatters/markdown.js.map +1 -1
- package/dist/page-filter.d.ts +64 -6
- package/dist/page-filter.d.ts.map +1 -1
- package/dist/page-filter.js +124 -3
- package/dist/page-filter.js.map +1 -1
- package/dist/rules/aeo/answer-first.d.ts.map +1 -1
- package/dist/rules/aeo/answer-first.js +17 -3
- package/dist/rules/aeo/answer-first.js.map +1 -1
- package/dist/rules/aeo/citable-facts.d.ts.map +1 -1
- package/dist/rules/aeo/citable-facts.js +12 -1
- package/dist/rules/aeo/citable-facts.js.map +1 -1
- package/dist/rules/aeo/content-modularity.d.ts.map +1 -1
- package/dist/rules/aeo/content-modularity.js +3 -0
- package/dist/rules/aeo/content-modularity.js.map +1 -1
- package/dist/rules/aeo/crawler-access.d.ts.map +1 -1
- package/dist/rules/aeo/crawler-access.js +6 -0
- package/dist/rules/aeo/crawler-access.js.map +1 -1
- package/dist/rules/aeo/faq-coverage.d.ts.map +1 -1
- package/dist/rules/aeo/faq-coverage.js +4 -0
- package/dist/rules/aeo/faq-coverage.js.map +1 -1
- package/dist/rules/aeo/freshness-signals.d.ts.map +1 -1
- package/dist/rules/aeo/freshness-signals.js +9 -2
- package/dist/rules/aeo/freshness-signals.js.map +1 -1
- package/dist/rules/aeo/llms-txt.d.ts.map +1 -1
- package/dist/rules/aeo/llms-txt.js +6 -1
- package/dist/rules/aeo/llms-txt.js.map +1 -1
- package/dist/rules/aeo/summary-bait.d.ts.map +1 -1
- package/dist/rules/aeo/summary-bait.js +5 -2
- package/dist/rules/aeo/summary-bait.js.map +1 -1
- package/dist/rules/content/missing-author.d.ts.map +1 -1
- package/dist/rules/content/missing-author.js +10 -2
- package/dist/rules/content/missing-author.js.map +1 -1
- package/dist/rules/spam/thin-content.d.ts.map +1 -1
- package/dist/rules/spam/thin-content.js +9 -1
- package/dist/rules/spam/thin-content.js.map +1 -1
- package/dist/site-classifier.d.ts +1 -1
- package/dist/site-classifier.d.ts.map +1 -1
- package/dist/site-classifier.js +216 -0
- package/dist/site-classifier.js.map +1 -1
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bucketByTemplate } from "./bucket-findings.js";
|
|
1
2
|
/**
|
|
2
3
|
* Total rule count surfaced in the "pass --strict to run all N" hint.
|
|
3
4
|
* This MUST match the surviving rule count documented in v0.4 §4.3 (32 rules).
|
|
@@ -63,12 +64,6 @@ function shortenUrl(url) {
|
|
|
63
64
|
return url;
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
|
-
function docsLine(f) {
|
|
67
|
-
if (f.docsUrl) {
|
|
68
|
-
return f.docsUrl.replace(/^https?:\/\//, "");
|
|
69
|
-
}
|
|
70
|
-
return `pseolint.dev/rules/${f.ruleId.split("/").pop() ?? f.ruleId}`;
|
|
71
|
-
}
|
|
72
67
|
function renderTriageSection(triage) {
|
|
73
68
|
if (!triage)
|
|
74
69
|
return "";
|
|
@@ -93,41 +88,88 @@ function renderTriageSection(triage) {
|
|
|
93
88
|
lines.push("───────────────────────────────────────────────────────");
|
|
94
89
|
return lines.join("\n");
|
|
95
90
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
91
|
+
/** Effort-prefix glyph used by `[quick]`, `[moderate]`, `[structural]` rule lines. */
|
|
92
|
+
function effortPrefix(effort) {
|
|
93
|
+
if (!effort)
|
|
94
|
+
return "";
|
|
95
|
+
return `[${effort}] `;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* v0.4.3 — one-line caveat for low-confidence findings. Renders only when
|
|
99
|
+
* `confidence` is `low` or `speculative` so high/medium-confidence findings
|
|
100
|
+
* don't clutter the output.
|
|
101
|
+
*/
|
|
102
|
+
function confidenceCaveat(c) {
|
|
103
|
+
if (c === "low") {
|
|
104
|
+
return "low confidence — this rule is known to false-positive on this site type";
|
|
105
|
+
}
|
|
106
|
+
if (c === "speculative") {
|
|
107
|
+
return "speculative — heuristic match; verify before acting";
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
/** Mimic the legacy `docsLine(RuleResult)` API for buckets. */
|
|
112
|
+
function bucketDocsLine(b) {
|
|
113
|
+
if (b.representativeDocsUrl) {
|
|
114
|
+
return b.representativeDocsUrl.replace(/^https?:\/\//, "");
|
|
106
115
|
}
|
|
107
|
-
return
|
|
108
|
-
if (b.count !== a.count)
|
|
109
|
-
return b.count - a.count;
|
|
110
|
-
return a.ruleId.localeCompare(b.ruleId);
|
|
111
|
-
});
|
|
116
|
+
return `pseolint.dev/rules/${b.ruleId.split("/").pop() ?? b.ruleId}`;
|
|
112
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Render a single bucket as one or more output lines. Single-instance buckets
|
|
120
|
+
* keep their pre-bucketing format (no "× 1" suffix). Multi-instance buckets
|
|
121
|
+
* get a `× N instances on TEMPLATE` headline plus a "Fix once, resolve all N"
|
|
122
|
+
* callout when they share a template signature.
|
|
123
|
+
*/
|
|
124
|
+
function renderBucketLines(b, index) {
|
|
125
|
+
const out = [];
|
|
126
|
+
const eff = effortPrefix(b.effort);
|
|
127
|
+
const target = b.representativeUrl !== "<site-wide>" ? shortenUrl(b.representativeUrl) : "";
|
|
128
|
+
const caveat = confidenceCaveat(b.representativeConfidence);
|
|
129
|
+
if (b.count === 1) {
|
|
130
|
+
// Single finding: keep the legacy headline format.
|
|
131
|
+
const targetPart = target ? `${target} ` : "";
|
|
132
|
+
const headline = `${eff}${targetPart}${b.representativeMessage}`.trim();
|
|
133
|
+
const fix = b.representativeFix ? ` → ${b.representativeFix}` : "";
|
|
134
|
+
out.push(` ${index + 1}. ${headline}${fix}`);
|
|
135
|
+
if (caveat)
|
|
136
|
+
out.push(` ${DIM}(${caveat})${RESET}`);
|
|
137
|
+
out.push(` ${DIM}${bucketDocsLine(b)}${RESET}`);
|
|
138
|
+
return out;
|
|
139
|
+
}
|
|
140
|
+
// Multi-instance: bucket headline + example + fix-once callout.
|
|
141
|
+
const isTemplateBucket = b.templateSignature !== null;
|
|
142
|
+
const countLabel = isTemplateBucket
|
|
143
|
+
? `× ${b.count} instances on ${b.templateSignature} template`
|
|
144
|
+
: `× ${b.count} affected pages`;
|
|
145
|
+
out.push(` ${index + 1}. ${eff}${b.ruleId} ${countLabel}`);
|
|
146
|
+
const targetPart = target ? `${target} ` : "";
|
|
147
|
+
out.push(` e.g. ${targetPart}${b.representativeMessage}`.trimEnd());
|
|
148
|
+
if (caveat)
|
|
149
|
+
out.push(` ${DIM}(${caveat})${RESET}`);
|
|
150
|
+
if (b.representativeFix) {
|
|
151
|
+
out.push(` → ${b.representativeFix}`);
|
|
152
|
+
}
|
|
153
|
+
if (isTemplateBucket) {
|
|
154
|
+
out.push(` ${DIM}Fix once, resolve all ${b.count}.${RESET}`);
|
|
155
|
+
}
|
|
156
|
+
out.push(` ${DIM}${bucketDocsLine(b)}${RESET}`);
|
|
157
|
+
return out;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Top-fixes section. Buckets blockers first, then should-fix, by template
|
|
161
|
+
* signature so duplicate findings collapse. Limits to 5 buckets — anything
|
|
162
|
+
* past that is verbose-mode territory.
|
|
163
|
+
*/
|
|
113
164
|
function renderTopFixes(blockers, shouldFix) {
|
|
114
|
-
// Spec: top fixes by impact = blockers first, then should-fix; aggregated by rule.
|
|
115
165
|
const lines = [];
|
|
116
|
-
const
|
|
117
|
-
const
|
|
118
|
-
const ranked = [...
|
|
166
|
+
const bucketedBlockers = bucketByTemplate(blockers);
|
|
167
|
+
const bucketedShould = bucketByTemplate(shouldFix);
|
|
168
|
+
const ranked = [...bucketedBlockers, ...bucketedShould].slice(0, 5);
|
|
119
169
|
if (ranked.length === 0)
|
|
120
170
|
return lines;
|
|
121
171
|
for (let i = 0; i < ranked.length; i += 1) {
|
|
122
|
-
|
|
123
|
-
const r = agg.representative;
|
|
124
|
-
const target = r.pageUrl ? shortenUrl(r.pageUrl) : "";
|
|
125
|
-
const targetPart = target ? `${target} ` : "";
|
|
126
|
-
const countLabel = agg.count === 1 ? "" : ` (${agg.count} pages)`;
|
|
127
|
-
const headline = `${targetPart}${r.message}${countLabel}`.trim();
|
|
128
|
-
const fix = r.fix ? ` → ${r.fix}` : "";
|
|
129
|
-
lines.push(` ${i + 1}. ${headline}${fix}`);
|
|
130
|
-
lines.push(` ${DIM}${docsLine(r)}${RESET}`);
|
|
172
|
+
lines.push(...renderBucketLines(ranked[i], i));
|
|
131
173
|
}
|
|
132
174
|
return lines;
|
|
133
175
|
}
|
|
@@ -141,6 +183,10 @@ function renderBucketVerbose(label, items) {
|
|
|
141
183
|
const urlCol = (shortenUrl(f.pageUrl) || "—").padEnd(28);
|
|
142
184
|
const fixCol = f.fix ?? f.message;
|
|
143
185
|
lines.push(` ${ruleCol} ${DIM}${urlCol}${RESET} ${fixCol}`);
|
|
186
|
+
const caveat = confidenceCaveat(f.confidence);
|
|
187
|
+
if (caveat) {
|
|
188
|
+
lines.push(` ${"".padEnd(28)} ${DIM}(${caveat})${RESET}`);
|
|
189
|
+
}
|
|
144
190
|
}
|
|
145
191
|
lines.push("");
|
|
146
192
|
return lines;
|
|
@@ -186,6 +232,23 @@ function classificationLines(c) {
|
|
|
186
232
|
}
|
|
187
233
|
return lines;
|
|
188
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* v0.4.3 — prominent "Audited as <type>" banner shown right under the
|
|
237
|
+
* verdict pill so the operator knows which scoring profile produced the
|
|
238
|
+
* verdict. Surfaces classification confidence as a percent and notes how
|
|
239
|
+
* many pSEO-only rules were suppressed (mirrors the more verbose
|
|
240
|
+
* classificationLines() block but lives next to the verdict for legibility).
|
|
241
|
+
*/
|
|
242
|
+
function auditedAsBanner(c) {
|
|
243
|
+
if (!c)
|
|
244
|
+
return null;
|
|
245
|
+
const confPct = Math.round(c.confidence * 100);
|
|
246
|
+
const suppressed = c.suppressedRules.length;
|
|
247
|
+
const suppressedPart = suppressed > 0
|
|
248
|
+
? ` ${suppressed} pSEO-only rule${suppressed === 1 ? "" : "s"} suppressed.`
|
|
249
|
+
: "";
|
|
250
|
+
return `${DIM}Audited as ${c.type} (${confPct}% confidence).${suppressedPart}${RESET}`;
|
|
251
|
+
}
|
|
189
252
|
function categoryLine(categories) {
|
|
190
253
|
// Display the four user-facing buckets — `audit` is engine-internal and weight-0.
|
|
191
254
|
const order = [
|
|
@@ -225,6 +288,12 @@ export function formatConsole(summary, options) {
|
|
|
225
288
|
const vColor = verdictColor(summary.verdict);
|
|
226
289
|
const vGlyph = verdictGlyph(summary.verdict);
|
|
227
290
|
lines.push(`${BOLD}Verdict:${RESET} ${vColor}${summary.verdict.toUpperCase()} ${vGlyph}${RESET}`);
|
|
291
|
+
// v0.4.3 — "Audited as <type>" sits between the verdict and grade strip
|
|
292
|
+
// so the operator immediately sees which scoring profile produced the
|
|
293
|
+
// verdict. Skipped when classification is missing (pre-v0.4 reports).
|
|
294
|
+
const banner = auditedAsBanner(summary.siteClassification);
|
|
295
|
+
if (banner)
|
|
296
|
+
lines.push(banner);
|
|
228
297
|
lines.push(categoryLine(summary.categories));
|
|
229
298
|
// ── Template banner ────────────────────────────────────────────────
|
|
230
299
|
if (summary.templateDetected) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/formatters/console.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/formatters/console.ts"],"names":[],"mappings":"AAYA,OAAO,EAAwB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,oBAAoB;AACpB,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAChC,MAAM,OAAO,GAAG,UAAU,CAAC;AAE3B,2EAA2E;AAC3E,SAAS,YAAY,CAAC,CAAU;IAC9B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,YAAY;YACf,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,GAAG,GAAG,IAAI,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,CAAU;IAC9B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO;YACV,OAAO,GAAG,CAAC,CAAC,IAAI;QAClB,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,CAAC,IAAI;QAClB,KAAK,YAAY;YACf,OAAO,GAAG,CAAC,CAAC,IAAI;QAClB,KAAK,UAAU;YACb,OAAO,GAAG,CAAC,CAAC,IAAI;IACpB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,CAAQ;IAC1B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,KAAK,CAAC;QACf,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,MAAM,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,GAAG,GAAG,IAAI,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA8B;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7D,KAAK,CAAC,IAAI,CACR,oBAAoB,MAAM,CAAC,SAAS,KAAK,UAAU,iBAAiB,CACrE,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,eAAe,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,aAAa,YAAY,CAC3F,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,IAAI,GACR,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,IAAI,MAAM,UAAU,EAAE,CACtJ,CAAC;IACF,KAAK,CAAC,IAAI,CACR,yDAAyD,CAC1D,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAQD,sFAAsF;AACtF,SAAS,YAAY,CAAC,MAA6B;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,IAAI,MAAM,IAAI,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,CAAyB;IACjD,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QAChB,OAAO,yEAAyE,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,KAAK,aAAa,EAAE,CAAC;QACxB,OAAO,qDAAqD,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,CAAkB;IACxC,IAAI,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,CAAkB,EAAE,KAAa;IAC1D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,CAAC,iBAAiB,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAE5D,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAClB,mDAAmD;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,CAAC;QACxE,MAAM,GAAG,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,CAAC,CAAC,iBAAiB,KAAK,IAAI,CAAC;IACtD,MAAM,UAAU,GAAG,gBAAgB;QACjC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,iBAAiB,WAAW;QAC7D,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,iBAAiB,CAAC;IAClC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAExE,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,QAAsB,EAAE,SAAuB;IACrE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,KAAmB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,GAAG,GAAG,MAAM,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,mBAAmB,CAAC,CAAiC;IAC5D,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAExD,EAAE,KAAK,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,8BAA8B,CAElE,CAAC;IACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3F,MAAM,OAAO,GAAG,CAAC,CAAW,EAAU,EAAE,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CACR,GAAG,KAAK,IAAI,KAAK,eAAe,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,oBAAoB,iBAAiB,CAC/F,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG;YACpB,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG;YACrE,CAAC,CAAC,qBAAqB;QACzB,CAAC,CAAC,qBAAqB,CAAC;IAE1B,MAAM,WAAW,GAAG,CAAC,cAAc,OAAO,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CACR,GAAG,KAAK,IAAI,KAAK,eAAe,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9E,CAAC;IAEF,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,GAAG,KAAK,IAAI,KAAK,eAAe,CAAC,CAAC,eAAe,CAAC,MAAM,kBAAkB,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,+BAA+B,oBAAoB,EAAE,CACzK,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,SAAS,oBAAoB,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,CAAiC;IACxD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC;IAC5C,MAAM,cAAc,GAClB,UAAU,GAAG,CAAC;QACZ,CAAC,CAAC,IAAI,UAAU,kBAAkB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc;QAC3E,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,GAAG,GAAG,cAAc,CAAC,CAAC,IAAI,KAAK,OAAO,iBAAiB,cAAc,GAAG,KAAK,EAAE,CAAC;AACzF,CAAC;AAED,SAAS,YAAY,CAAC,UAA0B;IAC9C,kFAAkF;IAClF,MAAM,KAAK,GAA4D;QACrE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;QACxC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;QACpD,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QACtC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;KAC/B,CAAC;IACF,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACtB,MAAM,IAAI,GAA8B,UAAU,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,KAAK,IAAI,CAAC;QAC/B,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;IACnE,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAqB,EAAE,OAA8B;IACjF,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,uEAAuE;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;IAC9C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,KAAK,CAAC,IAAI,CACR,GAAG,KAAK,IAAI,KAAK,eAAe,KAAK,CAAC,OAAO,gBAAgB,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,EAAE,CAC5G,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,GAAG,KAAK,IAAI,KAAK,YAAY,OAAO,CAAC,SAAS,QAAQ,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC3F,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,uEAAuE;IACvE,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,uEAAuE;IACvE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,WAAW,KAAK,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,MAAM,GAAG,KAAK,EAAE,CACtF,CAAC;IACF,wEAAwE;IACxE,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3D,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAE7C,sEAAsE;IACtE,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,GAAG,GAAG,0FAA0F,KAAK,EAAE,CACxG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,sEAAsE;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IAE/C,IAAI,YAAY,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,yBAAyB,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,uEAAuE;IACvE,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,YAAY,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,gDAAgD,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,uEAAuE;IACvE,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,WAAW,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AuditSummary } from "../types.js";
|
|
2
|
+
export interface FixplanFormatOptions {
|
|
3
|
+
/** ISO date string (YYYY-MM-DD) used in the header. Defaults to today (UTC). */
|
|
4
|
+
generatedDate?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Render an `AuditSummary` as a GitHub-flavoured markdown checklist suitable
|
|
8
|
+
* for pasting into a PR description, issue body, or commit message. Findings
|
|
9
|
+
* are bucketed by `(ruleId, templateSignature)` so a 47-page near-duplicate
|
|
10
|
+
* cluster collapses to a single checkbox the user ticks once.
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatFixplan(summary: AuditSummary, options?: FixplanFormatOptions): string;
|
|
13
|
+
//# sourceMappingURL=fixplan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixplan.d.ts","sourceRoot":"","sources":["../../src/formatters/fixplan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA+C,MAAM,aAAa,CAAC;AAI7F,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6SD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAgFR"}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import { inferUrlTemplate } from "../stratified-sample.js";
|
|
2
|
+
const CONFIDENCE_RANK = {
|
|
3
|
+
speculative: 1,
|
|
4
|
+
low: 2,
|
|
5
|
+
medium: 3,
|
|
6
|
+
high: 4,
|
|
7
|
+
};
|
|
8
|
+
function confidenceCaveat(c) {
|
|
9
|
+
if (c === "low")
|
|
10
|
+
return "low confidence — known false-positive risk on this site type";
|
|
11
|
+
if (c === "speculative")
|
|
12
|
+
return "speculative — heuristic match; verify before acting";
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const SEVERITY_RANK = {
|
|
16
|
+
critical: 0,
|
|
17
|
+
error: 1,
|
|
18
|
+
warning: 2,
|
|
19
|
+
info: 3,
|
|
20
|
+
};
|
|
21
|
+
const EFFORT_ORDER = [
|
|
22
|
+
"quick",
|
|
23
|
+
"moderate",
|
|
24
|
+
"structural",
|
|
25
|
+
"other",
|
|
26
|
+
];
|
|
27
|
+
const EFFORT_HEADING = {
|
|
28
|
+
quick: "Quick wins (≤ 30 min each)",
|
|
29
|
+
moderate: "Moderate fixes (1-2 hours each)",
|
|
30
|
+
structural: "Structural changes (deeper refactor)",
|
|
31
|
+
other: "Other fixes",
|
|
32
|
+
};
|
|
33
|
+
/** Approximate hours-per-fix used in the footer estimate. */
|
|
34
|
+
const EFFORT_HOURS = {
|
|
35
|
+
quick: 0.5,
|
|
36
|
+
moderate: 1.5,
|
|
37
|
+
structural: 4,
|
|
38
|
+
other: 1,
|
|
39
|
+
};
|
|
40
|
+
const VERDICT_LABEL = {
|
|
41
|
+
ready: "ready",
|
|
42
|
+
caution: "caution",
|
|
43
|
+
concerning: "concerning",
|
|
44
|
+
critical: "critical",
|
|
45
|
+
};
|
|
46
|
+
function shortenUrl(url) {
|
|
47
|
+
if (!url)
|
|
48
|
+
return "";
|
|
49
|
+
try {
|
|
50
|
+
return new URL(url).pathname || "/";
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return url;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a template signature for bucketing. Prefer the enrichment-pipeline
|
|
58
|
+
* field (`templateSignature` populated post Agent C), else derive one from the
|
|
59
|
+
* page URL via `inferUrlTemplate`. Findings with no `pageUrl` (corpus-scoped
|
|
60
|
+
* rules) get a synthetic `__corpus__` signature so they each land in their
|
|
61
|
+
* own per-rule bucket.
|
|
62
|
+
*/
|
|
63
|
+
function templateSigFor(f) {
|
|
64
|
+
const sig = f.templateSignature;
|
|
65
|
+
if (sig && sig.length > 0)
|
|
66
|
+
return sig;
|
|
67
|
+
if (f.pageUrl)
|
|
68
|
+
return inferUrlTemplate(f.pageUrl);
|
|
69
|
+
return "__corpus__";
|
|
70
|
+
}
|
|
71
|
+
function bucketByTemplate(findings) {
|
|
72
|
+
const map = new Map();
|
|
73
|
+
for (const f of findings) {
|
|
74
|
+
const sig = templateSigFor(f);
|
|
75
|
+
const key = `${f.ruleId} ${sig}`;
|
|
76
|
+
let b = map.get(key);
|
|
77
|
+
const rank = SEVERITY_RANK[f.severity] ?? 3;
|
|
78
|
+
if (!b) {
|
|
79
|
+
b = {
|
|
80
|
+
ruleId: f.ruleId,
|
|
81
|
+
templateSignature: sig,
|
|
82
|
+
count: 0,
|
|
83
|
+
worstSeverityRank: rank,
|
|
84
|
+
worstSeverity: f.severity,
|
|
85
|
+
effort: f.effort ?? "other",
|
|
86
|
+
exemplar: f,
|
|
87
|
+
urls: [],
|
|
88
|
+
worstConfidence: f.confidence,
|
|
89
|
+
};
|
|
90
|
+
map.set(key, b);
|
|
91
|
+
}
|
|
92
|
+
b.count += 1;
|
|
93
|
+
if (rank < b.worstSeverityRank) {
|
|
94
|
+
b.worstSeverityRank = rank;
|
|
95
|
+
b.worstSeverity = f.severity;
|
|
96
|
+
}
|
|
97
|
+
// Promote effort if the bucket was "other" but a later finding declares one.
|
|
98
|
+
if (b.effort === "other" && f.effort) {
|
|
99
|
+
b.effort = f.effort;
|
|
100
|
+
}
|
|
101
|
+
if (f.confidence !== undefined) {
|
|
102
|
+
const cur = b.worstConfidence;
|
|
103
|
+
if (cur === undefined || CONFIDENCE_RANK[f.confidence] < CONFIDENCE_RANK[cur]) {
|
|
104
|
+
b.worstConfidence = f.confidence;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (f.pageUrl && !b.urls.includes(f.pageUrl)) {
|
|
108
|
+
b.urls.push(f.pageUrl);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return Array.from(map.values());
|
|
112
|
+
}
|
|
113
|
+
function isTemplateBucket(b) {
|
|
114
|
+
// A "template" bucket is one whose signature contains a generalised segment
|
|
115
|
+
// (`:slug`, `:num`, `:id`, `:date`). Single-page or corpus buckets render
|
|
116
|
+
// without the "x N instances on `<template>`" suffix.
|
|
117
|
+
return /:slug|:num|:id|:date/.test(b.templateSignature);
|
|
118
|
+
}
|
|
119
|
+
function bucketHeadline(b) {
|
|
120
|
+
const code = `\`${b.ruleId}\``;
|
|
121
|
+
if (b.count > 1 && isTemplateBucket(b)) {
|
|
122
|
+
return `**${code} × ${b.count} instances on \`${b.templateSignature}\` template**`;
|
|
123
|
+
}
|
|
124
|
+
if (b.count > 1) {
|
|
125
|
+
return `**${code} × ${b.count} affected pages**`;
|
|
126
|
+
}
|
|
127
|
+
if (b.exemplar.pageUrl) {
|
|
128
|
+
return `**${code} on \`${shortenUrl(b.exemplar.pageUrl)}\`**`;
|
|
129
|
+
}
|
|
130
|
+
return `**${code}**`;
|
|
131
|
+
}
|
|
132
|
+
function bucketNarrative(b) {
|
|
133
|
+
// Prefer the explicit `fix` narrative when present; else paraphrase the
|
|
134
|
+
// message. Hard-wrap the narrative onto a single bullet line.
|
|
135
|
+
const text = (b.exemplar.fix ?? b.exemplar.message).trim();
|
|
136
|
+
return text.endsWith(".") ? text : `${text}.`;
|
|
137
|
+
}
|
|
138
|
+
function renderBucketLines(b) {
|
|
139
|
+
const lines = [];
|
|
140
|
+
lines.push(`- [ ] ${bucketHeadline(b)} — ${bucketNarrative(b)}`);
|
|
141
|
+
const caveat = confidenceCaveat(b.worstConfidence);
|
|
142
|
+
if (caveat) {
|
|
143
|
+
lines.push(` - _${caveat}_`);
|
|
144
|
+
}
|
|
145
|
+
// Nested bullet: first concrete URL example (only useful when we have one).
|
|
146
|
+
if (b.exemplar.pageUrl) {
|
|
147
|
+
if (b.count > 1 && isTemplateBucket(b) && b.urls.length > 0) {
|
|
148
|
+
const first = shortenUrl(b.urls[0]);
|
|
149
|
+
const allShort = b.urls.slice(0, 4).map((u) => `\`${shortenUrl(u)}\``).join(", ");
|
|
150
|
+
const more = b.urls.length > 4 ? `, +${b.urls.length - 4} more` : "";
|
|
151
|
+
lines.push(` - First instance: \`${first}\` — ${b.exemplar.message}`);
|
|
152
|
+
lines.push(` - Pages: ${allShort}${more}`);
|
|
153
|
+
}
|
|
154
|
+
else if (b.count === 1) {
|
|
155
|
+
// Single-finding bucket: URL is already in the headline; show the raw
|
|
156
|
+
// message as a secondary line so the user has the engine's verbatim
|
|
157
|
+
// explanation alongside the fix narrative.
|
|
158
|
+
if (b.exemplar.fix && b.exemplar.message && b.exemplar.fix !== b.exemplar.message) {
|
|
159
|
+
lines.push(` - ${b.exemplar.message}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return lines;
|
|
164
|
+
}
|
|
165
|
+
function renderEffortSection(effort, buckets) {
|
|
166
|
+
if (buckets.length === 0)
|
|
167
|
+
return [];
|
|
168
|
+
const lines = [];
|
|
169
|
+
lines.push(`## ${EFFORT_HEADING[effort]}`);
|
|
170
|
+
lines.push("");
|
|
171
|
+
for (const b of buckets) {
|
|
172
|
+
lines.push(...renderBucketLines(b));
|
|
173
|
+
}
|
|
174
|
+
lines.push("");
|
|
175
|
+
return lines;
|
|
176
|
+
}
|
|
177
|
+
function summarizeSkips(summary) {
|
|
178
|
+
const out = { noindex: 0, authDetected: 0, contentHashUnchanged: 0, other: 0 };
|
|
179
|
+
const total = summary.skippedUrls?.length ?? 0;
|
|
180
|
+
if (total === 0)
|
|
181
|
+
return out;
|
|
182
|
+
const policyFinding = summary.diagnostics?.auditFindings?.find((f) => f.ruleId === "audit/skipped-by-policy");
|
|
183
|
+
if (policyFinding) {
|
|
184
|
+
// The policy finding's message embeds counts like "3 marked noindex,
|
|
185
|
+
// 2 detected as auth". Parse them out: cheap heuristic that matches the
|
|
186
|
+
// auditor's own emit format.
|
|
187
|
+
const noindex = /(\d+)\s+marked noindex/i.exec(policyFinding.message);
|
|
188
|
+
const auth = /(\d+)\s+detected as auth/i.exec(policyFinding.message);
|
|
189
|
+
if (noindex)
|
|
190
|
+
out.noindex = Number(noindex[1]);
|
|
191
|
+
if (auth)
|
|
192
|
+
out.authDetected = Number(auth[1]);
|
|
193
|
+
}
|
|
194
|
+
// Whatever's left in skippedUrls but not accounted for by policy is most
|
|
195
|
+
// likely state-cache (`--since` skipped contentHash-unchanged URLs).
|
|
196
|
+
const policyTotal = out.noindex + out.authDetected;
|
|
197
|
+
const remainder = Math.max(0, total - policyTotal);
|
|
198
|
+
out.contentHashUnchanged = remainder;
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
function renderSkippedSection(summary) {
|
|
202
|
+
const total = summary.skippedUrls?.length ?? 0;
|
|
203
|
+
if (total === 0)
|
|
204
|
+
return [];
|
|
205
|
+
const breakdown = summarizeSkips(summary);
|
|
206
|
+
const lines = [];
|
|
207
|
+
lines.push(`## Skipped this run`);
|
|
208
|
+
lines.push("");
|
|
209
|
+
if (breakdown.noindex > 0) {
|
|
210
|
+
lines.push(`- ${breakdown.noindex} page${breakdown.noindex === 1 ? "" : "s"} skipped (noindex)`);
|
|
211
|
+
}
|
|
212
|
+
if (breakdown.authDetected > 0) {
|
|
213
|
+
lines.push(`- ${breakdown.authDetected} page${breakdown.authDetected === 1 ? "" : "s"} skipped (auth-detected)`);
|
|
214
|
+
}
|
|
215
|
+
if (breakdown.contentHashUnchanged > 0) {
|
|
216
|
+
lines.push(`- ${breakdown.contentHashUnchanged} page${breakdown.contentHashUnchanged === 1 ? "" : "s"} skipped (unchanged since prior run)`);
|
|
217
|
+
}
|
|
218
|
+
if (breakdown.noindex === 0 &&
|
|
219
|
+
breakdown.authDetected === 0 &&
|
|
220
|
+
breakdown.contentHashUnchanged === 0) {
|
|
221
|
+
lines.push(`- ${total} page${total === 1 ? "" : "s"} skipped`);
|
|
222
|
+
}
|
|
223
|
+
lines.push("");
|
|
224
|
+
return lines;
|
|
225
|
+
}
|
|
226
|
+
function todayUtc() {
|
|
227
|
+
return new Date().toISOString().slice(0, 10);
|
|
228
|
+
}
|
|
229
|
+
function auditedAsFixplanLine(c) {
|
|
230
|
+
if (!c)
|
|
231
|
+
return null;
|
|
232
|
+
const confPct = Math.round(c.confidence * 100);
|
|
233
|
+
const suppressed = c.suppressedRules.length;
|
|
234
|
+
const suppressedPart = suppressed > 0
|
|
235
|
+
? ` ${suppressed} pSEO-only rule${suppressed === 1 ? "" : "s"} suppressed.`
|
|
236
|
+
: "";
|
|
237
|
+
return `> Audited as **${c.type}** (${confPct}% confidence).${suppressedPart}`;
|
|
238
|
+
}
|
|
239
|
+
function estimateHours(buckets) {
|
|
240
|
+
let h = 0;
|
|
241
|
+
for (const b of buckets) {
|
|
242
|
+
h += EFFORT_HOURS[b.effort];
|
|
243
|
+
}
|
|
244
|
+
return Math.round(h * 10) / 10;
|
|
245
|
+
}
|
|
246
|
+
function formatHours(h) {
|
|
247
|
+
if (h <= 0)
|
|
248
|
+
return "0 hours";
|
|
249
|
+
if (h < 1)
|
|
250
|
+
return `~${Math.round(h * 60)} minutes`;
|
|
251
|
+
if (h < 10)
|
|
252
|
+
return `~${h} hours`;
|
|
253
|
+
return `~${Math.round(h)} hours`;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Render an `AuditSummary` as a GitHub-flavoured markdown checklist suitable
|
|
257
|
+
* for pasting into a PR description, issue body, or commit message. Findings
|
|
258
|
+
* are bucketed by `(ruleId, templateSignature)` so a 47-page near-duplicate
|
|
259
|
+
* cluster collapses to a single checkbox the user ticks once.
|
|
260
|
+
*/
|
|
261
|
+
export function formatFixplan(summary, options) {
|
|
262
|
+
const lines = [];
|
|
263
|
+
const date = options?.generatedDate ?? todayUtc();
|
|
264
|
+
lines.push(`# pseolint fix plan`);
|
|
265
|
+
lines.push("");
|
|
266
|
+
const verdict = VERDICT_LABEL[summary.verdict];
|
|
267
|
+
lines.push(`> Generated ${date}. Verdict: **${verdict}** (risk ${summary.risk}/100). ${summary.pageCount} pages audited.`);
|
|
268
|
+
// v0.4.3 — surface the scoring profile so plan readers know which
|
|
269
|
+
// site-type-aware overrides shaped the plan.
|
|
270
|
+
const auditedLine = auditedAsFixplanLine(summary.siteClassification);
|
|
271
|
+
if (auditedLine) {
|
|
272
|
+
lines.push(`>`);
|
|
273
|
+
lines.push(auditedLine);
|
|
274
|
+
}
|
|
275
|
+
lines.push(`>`);
|
|
276
|
+
lines.push(`> Run \`pseolint <source> --fixplan plan.md\` after each fix round to refresh`);
|
|
277
|
+
lines.push(`> this list — \`[x]\` items are inferred from finding hashes that no longer`);
|
|
278
|
+
lines.push(`> appear in the new audit.`);
|
|
279
|
+
lines.push("");
|
|
280
|
+
// Aggregate every actionable finding into a single flat list, then bucket.
|
|
281
|
+
// (`audit/*` findings are diagnostics, never appear in `summary.issues`.)
|
|
282
|
+
const allFindings = [
|
|
283
|
+
...summary.issues.blockers,
|
|
284
|
+
...summary.issues.shouldFix,
|
|
285
|
+
...summary.issues.informational,
|
|
286
|
+
];
|
|
287
|
+
const buckets = bucketByTemplate(allFindings);
|
|
288
|
+
if (buckets.length === 0) {
|
|
289
|
+
lines.push(`No findings to fix — site looks clean.`);
|
|
290
|
+
const skipLines = renderSkippedSection(summary);
|
|
291
|
+
if (skipLines.length > 0) {
|
|
292
|
+
lines.push("");
|
|
293
|
+
lines.push(...skipLines);
|
|
294
|
+
}
|
|
295
|
+
while (lines.length > 0 && lines[lines.length - 1] === "")
|
|
296
|
+
lines.pop();
|
|
297
|
+
return lines.join("\n");
|
|
298
|
+
}
|
|
299
|
+
// Group by effort, then sort within each group by count DESC, severity ASC.
|
|
300
|
+
const byEffort = new Map();
|
|
301
|
+
for (const b of buckets) {
|
|
302
|
+
const arr = byEffort.get(b.effort) ?? [];
|
|
303
|
+
arr.push(b);
|
|
304
|
+
byEffort.set(b.effort, arr);
|
|
305
|
+
}
|
|
306
|
+
for (const arr of byEffort.values()) {
|
|
307
|
+
arr.sort((a, b) => {
|
|
308
|
+
if (b.count !== a.count)
|
|
309
|
+
return b.count - a.count;
|
|
310
|
+
return a.worstSeverityRank - b.worstSeverityRank;
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
for (const effort of EFFORT_ORDER) {
|
|
314
|
+
const arr = byEffort.get(effort) ?? [];
|
|
315
|
+
lines.push(...renderEffortSection(effort, arr));
|
|
316
|
+
}
|
|
317
|
+
// Skipped section.
|
|
318
|
+
lines.push(...renderSkippedSection(summary));
|
|
319
|
+
// Footer.
|
|
320
|
+
const totalItems = buckets.length;
|
|
321
|
+
const hours = estimateHours(buckets);
|
|
322
|
+
lines.push(`---`);
|
|
323
|
+
lines.push(`*Total: ${totalItems} fix-plan item${totalItems === 1 ? "" : "s"}. Estimated time-to-\`ready\`: ${formatHours(hours)}.*`);
|
|
324
|
+
while (lines.length > 0 && lines[lines.length - 1] === "")
|
|
325
|
+
lines.pop();
|
|
326
|
+
return lines.join("\n");
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=fixplan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixplan.js","sourceRoot":"","sources":["../../src/formatters/fixplan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/formatters/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/formatters/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAQb,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,iBAAiB;IAChC,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAsOD,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,MAAM,CA+MtF"}
|