slopbrick 0.18.1 → 0.18.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/engine/worker.cjs +214 -109
- package/dist/engine/worker.js +214 -109
- package/dist/index.cjs +4392 -4027
- package/dist/index.d.cts +17 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +4185 -3830
- package/package.json +1 -1
package/dist/engine/worker.cjs
CHANGED
|
@@ -26,6 +26,7 @@ __export(worker_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(worker_exports);
|
|
27
27
|
var import_node_worker_threads = require("worker_threads");
|
|
28
28
|
var import_node_path11 = require("path");
|
|
29
|
+
var import_node_path12 = require("path");
|
|
29
30
|
|
|
30
31
|
// ../engine/dist/index.js
|
|
31
32
|
var import_promises = require("fs/promises");
|
|
@@ -4290,10 +4291,10 @@ function parseSvelte(source) {
|
|
|
4290
4291
|
const ast = parseScriptContent(script.content, isTypeScriptScript(script.openTag));
|
|
4291
4292
|
return { ast, source };
|
|
4292
4293
|
}
|
|
4293
|
-
function
|
|
4294
|
+
function legacyCacheEnabled() {
|
|
4294
4295
|
return process.env.SLOP_AUDIT_CACHE === "1" || process.env.SLOP_AUDIT_CACHE === "true";
|
|
4295
4296
|
}
|
|
4296
|
-
function
|
|
4297
|
+
function legacyCacheRoot() {
|
|
4297
4298
|
const override = process.env.SLOP_AUDIT_CACHE_ROOT;
|
|
4298
4299
|
if (override) return override;
|
|
4299
4300
|
return (0, import_path.join)(process.cwd(), ".slopbrick", "cache", "ast");
|
|
@@ -4301,11 +4302,11 @@ function cacheRoot() {
|
|
|
4301
4302
|
function hashContent(content) {
|
|
4302
4303
|
return (0, import_crypto.createHash)("md5").update(content, "utf-8").digest("hex");
|
|
4303
4304
|
}
|
|
4304
|
-
function
|
|
4305
|
-
return (0, import_path.join)(
|
|
4305
|
+
function cachePathWithRoot(content, root) {
|
|
4306
|
+
return (0, import_path.join)(root, `${hashContent(content)}.json`);
|
|
4306
4307
|
}
|
|
4307
|
-
async function
|
|
4308
|
-
const path =
|
|
4308
|
+
async function readCacheWithRoot(filePath, content, root) {
|
|
4309
|
+
const path = cachePathWithRoot(content, root);
|
|
4309
4310
|
try {
|
|
4310
4311
|
await (0, import_promises.access)(path);
|
|
4311
4312
|
const raw = await (0, import_promises.readFile)(path, "utf8");
|
|
@@ -4318,8 +4319,8 @@ async function readCache(filePath, content) {
|
|
|
4318
4319
|
}
|
|
4319
4320
|
return void 0;
|
|
4320
4321
|
}
|
|
4321
|
-
async function
|
|
4322
|
-
const path =
|
|
4322
|
+
async function writeCacheWithRoot(content, result, root) {
|
|
4323
|
+
const path = cachePathWithRoot(content, root);
|
|
4323
4324
|
await (0, import_promises.mkdir)((0, import_path.dirname)(path), { recursive: true });
|
|
4324
4325
|
await (0, import_promises.writeFile)(path, JSON.stringify(result), "utf8");
|
|
4325
4326
|
}
|
|
@@ -4350,15 +4351,17 @@ function parseSource(source, filePath) {
|
|
|
4350
4351
|
return parseWithSwc(source, filePath);
|
|
4351
4352
|
}
|
|
4352
4353
|
}
|
|
4353
|
-
async function parseFile(filePath) {
|
|
4354
|
+
async function parseFile(filePath, opts) {
|
|
4354
4355
|
const source = await (0, import_promises.readFile)(filePath, "utf-8");
|
|
4355
|
-
|
|
4356
|
-
|
|
4356
|
+
const useCache = opts?.cache?.enabled ?? legacyCacheEnabled();
|
|
4357
|
+
const cacheDir = opts?.cache?.root ?? legacyCacheRoot();
|
|
4358
|
+
if (useCache) {
|
|
4359
|
+
const cached = await readCacheWithRoot(filePath, source, cacheDir);
|
|
4357
4360
|
if (cached) return cached;
|
|
4358
4361
|
}
|
|
4359
4362
|
const result = parseSource(source, filePath);
|
|
4360
|
-
if (
|
|
4361
|
-
await
|
|
4363
|
+
if (useCache) {
|
|
4364
|
+
await writeCacheWithRoot(source, result, cacheDir);
|
|
4362
4365
|
}
|
|
4363
4366
|
return result;
|
|
4364
4367
|
}
|
|
@@ -39724,7 +39727,8 @@ var signal_strength_default = {
|
|
|
39724
39727
|
precision: 0.8968,
|
|
39725
39728
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39726
39729
|
verdict: "USEFUL",
|
|
39727
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1678, FP=193, P=89.7%, FPR=0.10%, lift=6.7. aiSpecific=True."
|
|
39730
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1678, FP=193, P=89.7%, FPR=0.10%, lift=6.7. aiSpecific=True.",
|
|
39731
|
+
aiSpecific: true
|
|
39728
39732
|
},
|
|
39729
39733
|
"logic/math-any-density": {
|
|
39730
39734
|
recall: 16e-4,
|
|
@@ -39734,7 +39738,8 @@ var signal_strength_default = {
|
|
|
39734
39738
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39735
39739
|
verdict: "NOISY",
|
|
39736
39740
|
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. NOISY \u2014 TP=376, FP=247, P=60.4%, FPR=0.13%, lift=1.2. aiSpecific=True.",
|
|
39737
|
-
defaultOff: true
|
|
39741
|
+
defaultOff: true,
|
|
39742
|
+
aiSpecific: true
|
|
39738
39743
|
},
|
|
39739
39744
|
"logic/boundary-violation": {
|
|
39740
39745
|
recall: 0.0263,
|
|
@@ -39743,7 +39748,8 @@ var signal_strength_default = {
|
|
|
39743
39748
|
precision: 0.6601,
|
|
39744
39749
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39745
39750
|
verdict: "HYGIENE",
|
|
39746
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=6282, FP=3235, P=66.0%, FPR=1.75%, lift=1.5. aiSpecific=False."
|
|
39751
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=6282, FP=3235, P=66.0%, FPR=1.75%, lift=1.5. aiSpecific=False.",
|
|
39752
|
+
aiSpecific: false
|
|
39747
39753
|
},
|
|
39748
39754
|
"logic/reactive-hook-soup": {
|
|
39749
39755
|
recall: 38e-4,
|
|
@@ -39752,7 +39758,8 @@ var signal_strength_default = {
|
|
|
39752
39758
|
precision: 0.8476,
|
|
39753
39759
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39754
39760
|
verdict: "USEFUL",
|
|
39755
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=901, FP=162, P=84.8%, FPR=0.09%, lift=4.3. aiSpecific=True."
|
|
39761
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=901, FP=162, P=84.8%, FPR=0.09%, lift=4.3. aiSpecific=True.",
|
|
39762
|
+
aiSpecific: true
|
|
39756
39763
|
},
|
|
39757
39764
|
"logic/optimistic-no-rollback": {
|
|
39758
39765
|
recall: 12e-4,
|
|
@@ -39761,7 +39768,8 @@ var signal_strength_default = {
|
|
|
39761
39768
|
precision: 0.824,
|
|
39762
39769
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39763
39770
|
verdict: "USEFUL",
|
|
39764
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=281, FP=60, P=82.4%, FPR=0.03%, lift=3.6. aiSpecific=True."
|
|
39771
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=281, FP=60, P=82.4%, FPR=0.03%, lift=3.6. aiSpecific=True.",
|
|
39772
|
+
aiSpecific: true
|
|
39765
39773
|
},
|
|
39766
39774
|
"logic/zombie-state": {
|
|
39767
39775
|
recall: 1e-4,
|
|
@@ -39770,7 +39778,8 @@ var signal_strength_default = {
|
|
|
39770
39778
|
precision: 0.9231,
|
|
39771
39779
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39772
39780
|
verdict: "USEFUL",
|
|
39773
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=24, FP=2, P=92.3%, FPR=0.00%, lift=9.3. aiSpecific=True."
|
|
39781
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=24, FP=2, P=92.3%, FPR=0.00%, lift=9.3. aiSpecific=True.",
|
|
39782
|
+
aiSpecific: true
|
|
39774
39783
|
},
|
|
39775
39784
|
"logic/math-gini-class-usage": {
|
|
39776
39785
|
recall: 13e-4,
|
|
@@ -39779,7 +39788,8 @@ var signal_strength_default = {
|
|
|
39779
39788
|
precision: 0.8683,
|
|
39780
39789
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39781
39790
|
verdict: "USEFUL",
|
|
39782
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=310, FP=47, P=86.8%, FPR=0.03%, lift=5.1. aiSpecific=True."
|
|
39791
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=310, FP=47, P=86.8%, FPR=0.03%, lift=5.1. aiSpecific=True.",
|
|
39792
|
+
aiSpecific: true
|
|
39783
39793
|
},
|
|
39784
39794
|
"visual/math-color-cluster": {
|
|
39785
39795
|
recall: 2e-4,
|
|
@@ -39788,7 +39798,8 @@ var signal_strength_default = {
|
|
|
39788
39798
|
precision: 0.9206,
|
|
39789
39799
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39790
39800
|
verdict: "USEFUL",
|
|
39791
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=58, FP=5, P=92.1%, FPR=0.00%, lift=9.0. aiSpecific=True."
|
|
39801
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=58, FP=5, P=92.1%, FPR=0.00%, lift=9.0. aiSpecific=True.",
|
|
39802
|
+
aiSpecific: true
|
|
39792
39803
|
},
|
|
39793
39804
|
"visual/math-default-font": {
|
|
39794
39805
|
recall: 13e-4,
|
|
@@ -39797,7 +39808,8 @@ var signal_strength_default = {
|
|
|
39797
39808
|
precision: 0.8151,
|
|
39798
39809
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39799
39810
|
verdict: "USEFUL",
|
|
39800
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=313, FP=71, P=81.5%, FPR=0.04%, lift=3.4. aiSpecific=True."
|
|
39811
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=313, FP=71, P=81.5%, FPR=0.04%, lift=3.4. aiSpecific=True.",
|
|
39812
|
+
aiSpecific: true
|
|
39801
39813
|
},
|
|
39802
39814
|
"visual/math-gradient-hue-rotation": {
|
|
39803
39815
|
recall: 0,
|
|
@@ -39807,7 +39819,8 @@ var signal_strength_default = {
|
|
|
39807
39819
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39808
39820
|
verdict: "DORMANT",
|
|
39809
39821
|
defaultOff: true,
|
|
39810
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Munsell, A. H. (1905), *A Color Notation*, Munsell Color Company; Itten, J. (1961), *The Art of Color*, Van Nostrand Reinhold. (Munsell color space + Itten color wheel \u2014 hue rotation analysis.)"
|
|
39822
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Munsell, A. H. (1905), *A Color Notation*, Munsell Color Company; Itten, J. (1961), *The Art of Color*, Van Nostrand Reinhold. (Munsell color space + Itten color wheel \u2014 hue rotation analysis.)",
|
|
39823
|
+
aiSpecific: true
|
|
39811
39824
|
},
|
|
39812
39825
|
"visual/math-rounded-entropy": {
|
|
39813
39826
|
recall: 37e-4,
|
|
@@ -39816,7 +39829,8 @@ var signal_strength_default = {
|
|
|
39816
39829
|
precision: 0.9339,
|
|
39817
39830
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39818
39831
|
verdict: "USEFUL",
|
|
39819
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=876, FP=62, P=93.4%, FPR=0.03%, lift=10.9. aiSpecific=True."
|
|
39832
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=876, FP=62, P=93.4%, FPR=0.03%, lift=10.9. aiSpecific=True.",
|
|
39833
|
+
aiSpecific: true
|
|
39820
39834
|
},
|
|
39821
39835
|
"visual/math-font-entropy": {
|
|
39822
39836
|
recall: 45e-4,
|
|
@@ -39825,7 +39839,8 @@ var signal_strength_default = {
|
|
|
39825
39839
|
precision: 0.8114,
|
|
39826
39840
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39827
39841
|
verdict: "USEFUL",
|
|
39828
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1067, FP=248, P=81.1%, FPR=0.13%, lift=3.3. aiSpecific=True."
|
|
39842
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1067, FP=248, P=81.1%, FPR=0.13%, lift=3.3. aiSpecific=True.",
|
|
39843
|
+
aiSpecific: true
|
|
39829
39844
|
},
|
|
39830
39845
|
"visual/math-spacing-entropy": {
|
|
39831
39846
|
recall: 18e-4,
|
|
@@ -39834,7 +39849,8 @@ var signal_strength_default = {
|
|
|
39834
39849
|
precision: 0.7959,
|
|
39835
39850
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39836
39851
|
verdict: "USEFUL",
|
|
39837
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=425, FP=109, P=79.6%, FPR=0.06%, lift=3.0. aiSpecific=True."
|
|
39852
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=425, FP=109, P=79.6%, FPR=0.06%, lift=3.0. aiSpecific=True.",
|
|
39853
|
+
aiSpecific: true
|
|
39838
39854
|
},
|
|
39839
39855
|
"visual/clamp-soup": {
|
|
39840
39856
|
recall: 0,
|
|
@@ -39844,7 +39860,8 @@ var signal_strength_default = {
|
|
|
39844
39860
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39845
39861
|
verdict: "DORMANT",
|
|
39846
39862
|
defaultOff: true,
|
|
39847
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: W3C (2023), CSS Values and Units Module Level 4, W3C CR-css-values-4-20231218. (W3C clamp() spec \u2014 overuse is a code-smell, not a feature.)"
|
|
39863
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: W3C (2023), CSS Values and Units Module Level 4, W3C CR-css-values-4-20231218. (W3C clamp() spec \u2014 overuse is a code-smell, not a feature.)",
|
|
39864
|
+
aiSpecific: true
|
|
39848
39865
|
},
|
|
39849
39866
|
"component/giant-component": {
|
|
39850
39867
|
recall: 0.0176,
|
|
@@ -39853,7 +39870,8 @@ var signal_strength_default = {
|
|
|
39853
39870
|
precision: 0.7485,
|
|
39854
39871
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39855
39872
|
verdict: "USEFUL",
|
|
39856
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=4205, FP=1413, P=74.8%, FPR=0.77%, lift=2.3. aiSpecific=True."
|
|
39873
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=4205, FP=1413, P=74.8%, FPR=0.77%, lift=2.3. aiSpecific=True.",
|
|
39874
|
+
aiSpecific: true
|
|
39857
39875
|
},
|
|
39858
39876
|
"component/shadcn-prop-mismatch": {
|
|
39859
39877
|
recall: 13e-4,
|
|
@@ -39862,7 +39880,8 @@ var signal_strength_default = {
|
|
|
39862
39880
|
precision: 0.929,
|
|
39863
39881
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39864
39882
|
verdict: "USEFUL",
|
|
39865
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=314, FP=24, P=92.9%, FPR=0.01%, lift=10.1. aiSpecific=True."
|
|
39883
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=314, FP=24, P=92.9%, FPR=0.01%, lift=10.1. aiSpecific=True.",
|
|
39884
|
+
aiSpecific: true
|
|
39866
39885
|
},
|
|
39867
39886
|
"layout/math-grid-uniformity": {
|
|
39868
39887
|
recall: 3e-4,
|
|
@@ -39871,7 +39890,8 @@ var signal_strength_default = {
|
|
|
39871
39890
|
precision: 0.6907,
|
|
39872
39891
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39873
39892
|
verdict: "OK",
|
|
39874
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=67, FP=30, P=69.1%, FPR=0.02%, lift=1.7. aiSpecific=True."
|
|
39893
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=67, FP=30, P=69.1%, FPR=0.02%, lift=1.7. aiSpecific=True.",
|
|
39894
|
+
aiSpecific: true
|
|
39875
39895
|
},
|
|
39876
39896
|
"layout/math-element-uniformity": {
|
|
39877
39897
|
recall: 28e-4,
|
|
@@ -39880,7 +39900,8 @@ var signal_strength_default = {
|
|
|
39880
39900
|
precision: 0.7475,
|
|
39881
39901
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39882
39902
|
verdict: "USEFUL",
|
|
39883
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=666, FP=225, P=74.7%, FPR=0.12%, lift=2.3. aiSpecific=True."
|
|
39903
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=666, FP=225, P=74.7%, FPR=0.12%, lift=2.3. aiSpecific=True.",
|
|
39904
|
+
aiSpecific: true
|
|
39884
39905
|
},
|
|
39885
39906
|
"typo/math-button-label-uniformity": {
|
|
39886
39907
|
recall: 2e-4,
|
|
@@ -39889,7 +39910,8 @@ var signal_strength_default = {
|
|
|
39889
39910
|
precision: 0.6379,
|
|
39890
39911
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39891
39912
|
verdict: "HYGIENE",
|
|
39892
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=37, FP=21, P=63.8%, FPR=0.01%, lift=1.4. aiSpecific=False."
|
|
39913
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=37, FP=21, P=63.8%, FPR=0.01%, lift=1.4. aiSpecific=False.",
|
|
39914
|
+
aiSpecific: false
|
|
39893
39915
|
},
|
|
39894
39916
|
"perf/css-bloat": {
|
|
39895
39917
|
recall: 0.0117,
|
|
@@ -39898,7 +39920,8 @@ var signal_strength_default = {
|
|
|
39898
39920
|
precision: 0.8252,
|
|
39899
39921
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39900
39922
|
verdict: "HYGIENE",
|
|
39901
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2790, FP=591, P=82.5%, FPR=0.32%, lift=3.6. aiSpecific=False."
|
|
39923
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2790, FP=591, P=82.5%, FPR=0.32%, lift=3.6. aiSpecific=False.",
|
|
39924
|
+
aiSpecific: false
|
|
39902
39925
|
},
|
|
39903
39926
|
"wcag/focus-appearance": {
|
|
39904
39927
|
recall: 26e-4,
|
|
@@ -39907,7 +39930,8 @@ var signal_strength_default = {
|
|
|
39907
39930
|
precision: 0.9623,
|
|
39908
39931
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39909
39932
|
verdict: "HYGIENE",
|
|
39910
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=612, FP=24, P=96.2%, FPR=0.01%, lift=19.7. aiSpecific=False."
|
|
39933
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=612, FP=24, P=96.2%, FPR=0.01%, lift=19.7. aiSpecific=False.",
|
|
39934
|
+
aiSpecific: false
|
|
39911
39935
|
},
|
|
39912
39936
|
"wcag/target-size": {
|
|
39913
39937
|
recall: 0,
|
|
@@ -39917,7 +39941,8 @@ var signal_strength_default = {
|
|
|
39917
39941
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39918
39942
|
verdict: "DORMANT",
|
|
39919
39943
|
defaultOff: true,
|
|
39920
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: W3C (2018), Web Content Accessibility Guidelines (WCAG) 2.1, Success Criterion 2.5.5 (Target Size); Fitts, P. M. (1954), \u2018The Information Capacity of the Human Motor System in Controlling the Amplitude of Movement\u2019, J. Exp. Psychol. 47(6):381-391. (WCAG 2.5.5 + Fitts's Law \u2014 minimum 24\xD724 CSS px tap target.)"
|
|
39944
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: W3C (2018), Web Content Accessibility Guidelines (WCAG) 2.1, Success Criterion 2.5.5 (Target Size); Fitts, P. M. (1954), \u2018The Information Capacity of the Human Motor System in Controlling the Amplitude of Movement\u2019, J. Exp. Psychol. 47(6):381-391. (WCAG 2.5.5 + Fitts's Law \u2014 minimum 24\xD724 CSS px tap target.)",
|
|
39945
|
+
aiSpecific: false
|
|
39921
39946
|
},
|
|
39922
39947
|
"component/multiple-components-per-file": {
|
|
39923
39948
|
recall: 0.0681,
|
|
@@ -39926,7 +39951,8 @@ var signal_strength_default = {
|
|
|
39926
39951
|
precision: 0.6294,
|
|
39927
39952
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39928
39953
|
verdict: "HYGIENE",
|
|
39929
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=16288, FP=9589, P=62.9%, FPR=5.20%, lift=1.3. aiSpecific=False."
|
|
39954
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=16288, FP=9589, P=62.9%, FPR=5.20%, lift=1.3. aiSpecific=False.",
|
|
39955
|
+
aiSpecific: false
|
|
39930
39956
|
},
|
|
39931
39957
|
"context/import-path-mismatch": {
|
|
39932
39958
|
recall: 0.0739,
|
|
@@ -39935,7 +39961,8 @@ var signal_strength_default = {
|
|
|
39935
39961
|
precision: 0.8079,
|
|
39936
39962
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39937
39963
|
verdict: "HYGIENE",
|
|
39938
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=17672, FP=4202, P=80.8%, FPR=2.28%, lift=3.2. aiSpecific=False."
|
|
39964
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=17672, FP=4202, P=80.8%, FPR=2.28%, lift=3.2. aiSpecific=False.",
|
|
39965
|
+
aiSpecific: false
|
|
39939
39966
|
},
|
|
39940
39967
|
"logic/key-prop-missing": {
|
|
39941
39968
|
recall: 17e-4,
|
|
@@ -39944,7 +39971,8 @@ var signal_strength_default = {
|
|
|
39944
39971
|
precision: 0.6246,
|
|
39945
39972
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39946
39973
|
verdict: "HYGIENE",
|
|
39947
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=416, FP=250, P=62.5%, FPR=0.14%, lift=1.3. aiSpecific=False."
|
|
39974
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=416, FP=250, P=62.5%, FPR=0.14%, lift=1.3. aiSpecific=False.",
|
|
39975
|
+
aiSpecific: false
|
|
39948
39976
|
},
|
|
39949
39977
|
"logic/math-variable-name-entropy": {
|
|
39950
39978
|
recall: 2e-4,
|
|
@@ -39953,7 +39981,8 @@ var signal_strength_default = {
|
|
|
39953
39981
|
precision: 0.5806,
|
|
39954
39982
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39955
39983
|
verdict: "HYGIENE",
|
|
39956
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=36, FP=26, P=58.1%, FPR=0.01%, lift=1.1. aiSpecific=False."
|
|
39984
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=36, FP=26, P=58.1%, FPR=0.01%, lift=1.1. aiSpecific=False.",
|
|
39985
|
+
aiSpecific: false
|
|
39957
39986
|
},
|
|
39958
39987
|
"security/public-admin-route": {
|
|
39959
39988
|
recall: 28e-4,
|
|
@@ -39963,7 +39992,8 @@ var signal_strength_default = {
|
|
|
39963
39992
|
lastCalibratedAt: "2026-06-26T22:30:00Z",
|
|
39964
39993
|
verdict: "HYGIENE",
|
|
39965
39994
|
_calibrationNote: "v4 corpus (2026-06-25): 95,599 neg + 76,550 pos (frontend, TS/TSX/JS/JSX). INVERTED \u2014 TP=217, FP=747, P=22.5%, FPR=0.78%, lift=0.4. [v0.12.2: reclassified to HYGIENE because rule is aiSpecific: false]",
|
|
39966
|
-
defaultOff: true
|
|
39995
|
+
defaultOff: true,
|
|
39996
|
+
aiSpecific: false
|
|
39967
39997
|
},
|
|
39968
39998
|
"security/unsafe-html-render": {
|
|
39969
39999
|
recall: 13e-4,
|
|
@@ -39972,7 +40002,8 @@ var signal_strength_default = {
|
|
|
39972
40002
|
precision: 0.661,
|
|
39973
40003
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39974
40004
|
verdict: "HYGIENE",
|
|
39975
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=312, FP=160, P=66.1%, FPR=0.09%, lift=1.5. aiSpecific=False."
|
|
40005
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=312, FP=160, P=66.1%, FPR=0.09%, lift=1.5. aiSpecific=False.",
|
|
40006
|
+
aiSpecific: false
|
|
39976
40007
|
},
|
|
39977
40008
|
"visual/naturalness-anomaly": {
|
|
39978
40009
|
recall: 0.1645,
|
|
@@ -39981,7 +40012,8 @@ var signal_strength_default = {
|
|
|
39981
40012
|
precision: 0.7755,
|
|
39982
40013
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39983
40014
|
verdict: "USEFUL",
|
|
39984
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=39319, FP=11382, P=77.6%, FPR=6.17%, lift=2.7. aiSpecific=True."
|
|
40015
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=39319, FP=11382, P=77.6%, FPR=6.17%, lift=2.7. aiSpecific=True.",
|
|
40016
|
+
aiSpecific: true
|
|
39985
40017
|
},
|
|
39986
40018
|
"perf/halstead-anomaly": {
|
|
39987
40019
|
recall: 0,
|
|
@@ -39990,7 +40022,8 @@ var signal_strength_default = {
|
|
|
39990
40022
|
precision: 0.75,
|
|
39991
40023
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39992
40024
|
verdict: "USEFUL",
|
|
39993
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=3, FP=1, P=75.0%, FPR=0.00%, lift=2.3. aiSpecific=True."
|
|
40025
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=3, FP=1, P=75.0%, FPR=0.00%, lift=2.3. aiSpecific=True.",
|
|
40026
|
+
aiSpecific: true
|
|
39994
40027
|
},
|
|
39995
40028
|
"arch/astro-island-leak": {
|
|
39996
40029
|
recall: 0,
|
|
@@ -40000,7 +40033,8 @@ var signal_strength_default = {
|
|
|
40000
40033
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40001
40034
|
verdict: "DORMANT",
|
|
40002
40035
|
defaultOff: true,
|
|
40003
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Hevery, M. (2022), \u2018Islands Architecture: A New Pattern for Server-Component Frameworks\u2019, ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), invited talk; Astro Documentation (2023), https://docs.astro.build. (Astro Islands architecture \u2014 client JS should not leak into server components.)"
|
|
40036
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Hevery, M. (2022), \u2018Islands Architecture: A New Pattern for Server-Component Frameworks\u2019, ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), invited talk; Astro Documentation (2023), https://docs.astro.build. (Astro Islands architecture \u2014 client JS should not leak into server components.)",
|
|
40037
|
+
aiSpecific: true
|
|
40004
40038
|
},
|
|
40005
40039
|
"logic/qwik-hook-leak": {
|
|
40006
40040
|
recall: 0,
|
|
@@ -40010,7 +40044,8 @@ var signal_strength_default = {
|
|
|
40010
40044
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40011
40045
|
verdict: "DORMANT",
|
|
40012
40046
|
defaultOff: true,
|
|
40013
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Hevery, M. (2022), \u2018Qwik: A Resumable JavaScript Framework\u2019, ACM SIGPLAN OOPSLA companion; Builder.io Technical Report. (Qwik resumability \u2014 serializing state avoids hydration cost.)"
|
|
40047
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Hevery, M. (2022), \u2018Qwik: A Resumable JavaScript Framework\u2019, ACM SIGPLAN OOPSLA companion; Builder.io Technical Report. (Qwik resumability \u2014 serializing state avoids hydration cost.)",
|
|
40048
|
+
aiSpecific: true
|
|
40014
40049
|
},
|
|
40015
40050
|
"test/missing-edge-case": {
|
|
40016
40051
|
recall: 0,
|
|
@@ -40020,7 +40055,8 @@ var signal_strength_default = {
|
|
|
40020
40055
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40021
40056
|
verdict: "DORMANT",
|
|
40022
40057
|
defaultOff: true,
|
|
40023
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Myers, G. J. (1979), *The Art of Software Testing*, Wiley-Interscience (canonical boundary value analysis reference); Beizer, B. (1990), *Software Testing Techniques*, 2nd ed., Van Nostrand Reinhold. (Boundary value analysis \u2014 empty / zero / max / null / type-boundary cases.)"
|
|
40058
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Myers, G. J. (1979), *The Art of Software Testing*, Wiley-Interscience (canonical boundary value analysis reference); Beizer, B. (1990), *Software Testing Techniques*, 2nd ed., Van Nostrand Reinhold. (Boundary value analysis \u2014 empty / zero / max / null / type-boundary cases.)",
|
|
40059
|
+
aiSpecific: true
|
|
40024
40060
|
},
|
|
40025
40061
|
"typo/calc-fontsize": {
|
|
40026
40062
|
recall: 0,
|
|
@@ -40030,7 +40066,8 @@ var signal_strength_default = {
|
|
|
40030
40066
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40031
40067
|
verdict: "DORMANT",
|
|
40032
40068
|
defaultOff: true,
|
|
40033
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Marcotte, E. (2016), *Responsive Design: Patterns & Principles*, A Book Apart; Brown, J. (2018), *Every Layout*, self-published (rel='https://every-layout.dev'). (Fluid typography via clamp(min, preferred, max).)"
|
|
40069
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Marcotte, E. (2016), *Responsive Design: Patterns & Principles*, A Book Apart; Brown, J. (2018), *Every Layout*, self-published (rel='https://every-layout.dev'). (Fluid typography via clamp(min, preferred, max).)",
|
|
40070
|
+
aiSpecific: false
|
|
40034
40071
|
},
|
|
40035
40072
|
"typo/clamp-offscale": {
|
|
40036
40073
|
recall: 0,
|
|
@@ -40040,7 +40077,8 @@ var signal_strength_default = {
|
|
|
40040
40077
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40041
40078
|
verdict: "DORMANT",
|
|
40042
40079
|
defaultOff: true,
|
|
40043
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: W3C (2023), CSS Values 4 \xA77.2 (Functional Notations: clamp()); Brown, J. (2018), *Every Layout*. (CSS clamp() \u2014 off-scale (negative, >10rem) values are typos.)"
|
|
40080
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: W3C (2023), CSS Values 4 \xA77.2 (Functional Notations: clamp()); Brown, J. (2018), *Every Layout*. (CSS clamp() \u2014 off-scale (negative, >10rem) values are typos.)",
|
|
40081
|
+
aiSpecific: false
|
|
40044
40082
|
},
|
|
40045
40083
|
"typo/math-cta-vocabulary": {
|
|
40046
40084
|
recall: 0,
|
|
@@ -40050,7 +40088,8 @@ var signal_strength_default = {
|
|
|
40050
40088
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40051
40089
|
verdict: "DORMANT",
|
|
40052
40090
|
defaultOff: true,
|
|
40053
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Cialdini, R. B. (1984), *Influence: The Psychology of Persuasion*, Harper Business; Krug, S. (2000), *Don't Make Me Think*, 2nd ed., New Riders. (CTA wording \u2014 vague labels reduce click-through per Cialdini commitment/consistency.)"
|
|
40091
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Cialdini, R. B. (1984), *Influence: The Psychology of Persuasion*, Harper Business; Krug, S. (2000), *Don't Make Me Think*, 2nd ed., New Riders. (CTA wording \u2014 vague labels reduce click-through per Cialdini commitment/consistency.)",
|
|
40092
|
+
aiSpecific: true
|
|
40054
40093
|
},
|
|
40055
40094
|
"layout/forced-layout": {
|
|
40056
40095
|
recall: 0,
|
|
@@ -40060,7 +40099,8 @@ var signal_strength_default = {
|
|
|
40060
40099
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40061
40100
|
verdict: "DORMANT",
|
|
40062
40101
|
defaultOff: true,
|
|
40063
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Mozilla Developer Network (2023), CSS Grid Layout, https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout; W3C (2023), CSS Grid Layout Module Level 3, W3C CR-css-grid-3-20231218. (CSS Grid spec \u2014 forced layout is a fallback hack, not the idiomatic approach.)"
|
|
40102
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Mozilla Developer Network (2023), CSS Grid Layout, https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout; W3C (2023), CSS Grid Layout Module Level 3, W3C CR-css-grid-3-20231218. (CSS Grid spec \u2014 forced layout is a fallback hack, not the idiomatic approach.)",
|
|
40103
|
+
aiSpecific: true
|
|
40064
40104
|
},
|
|
40065
40105
|
"visual/generic-centering": {
|
|
40066
40106
|
recall: 0,
|
|
@@ -40070,7 +40110,8 @@ var signal_strength_default = {
|
|
|
40070
40110
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40071
40111
|
verdict: "DORMANT",
|
|
40072
40112
|
defaultOff: true,
|
|
40073
|
-
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Wertheimer, M. (1923), \u2018Untersuchungen zur Lehre von der Gestalt II\u2019, Psychologische Forschung 4:301-350; M\xFCller-Brockmann, J. (1981), *Grid Systems in Graphic Design*, Niggli. (Gestalt centering + grid systems \u2014 generic centering is anti-grid.)"
|
|
40113
|
+
_calibrationNote: "v0.10.1 ship \u2014 not in v4 per-rule table. Default-off until calibration data lands. Backed by: Wertheimer, M. (1923), \u2018Untersuchungen zur Lehre von der Gestalt II\u2019, Psychologische Forschung 4:301-350; M\xFCller-Brockmann, J. (1981), *Grid Systems in Graphic Design*, Niggli. (Gestalt centering + grid systems \u2014 generic centering is anti-grid.)",
|
|
40114
|
+
aiSpecific: true
|
|
40074
40115
|
},
|
|
40075
40116
|
"product/terminology-drift": {
|
|
40076
40117
|
recall: 85e-4,
|
|
@@ -40079,7 +40120,8 @@ var signal_strength_default = {
|
|
|
40079
40120
|
precision: 0.7956,
|
|
40080
40121
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40081
40122
|
verdict: "HYGIENE",
|
|
40082
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2028, FP=521, P=79.6%, FPR=0.28%, lift=3.0. aiSpecific=False."
|
|
40123
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2028, FP=521, P=79.6%, FPR=0.28%, lift=3.0. aiSpecific=False.",
|
|
40124
|
+
aiSpecific: false
|
|
40083
40125
|
},
|
|
40084
40126
|
"product/ux-pattern-fragmentation": {
|
|
40085
40127
|
recall: 1e-4,
|
|
@@ -40088,7 +40130,8 @@ var signal_strength_default = {
|
|
|
40088
40130
|
precision: 0.8,
|
|
40089
40131
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40090
40132
|
verdict: "USEFUL",
|
|
40091
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=32, FP=8, P=80.0%, FPR=0.00%, lift=3.1. aiSpecific=True."
|
|
40133
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=32, FP=8, P=80.0%, FPR=0.00%, lift=3.1. aiSpecific=True.",
|
|
40134
|
+
aiSpecific: true
|
|
40092
40135
|
},
|
|
40093
40136
|
"security/sql-construction": {
|
|
40094
40137
|
recall: 3e-3,
|
|
@@ -40097,7 +40140,8 @@ var signal_strength_default = {
|
|
|
40097
40140
|
precision: 0.6788,
|
|
40098
40141
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40099
40142
|
verdict: "OK",
|
|
40100
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=710, FP=336, P=67.9%, FPR=0.18%, lift=1.6. aiSpecific=True."
|
|
40143
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=710, FP=336, P=67.9%, FPR=0.18%, lift=1.6. aiSpecific=True.",
|
|
40144
|
+
aiSpecific: true
|
|
40101
40145
|
},
|
|
40102
40146
|
"security/missing-auth-check": {
|
|
40103
40147
|
recall: 63e-4,
|
|
@@ -40106,7 +40150,8 @@ var signal_strength_default = {
|
|
|
40106
40150
|
precision: 0.9247,
|
|
40107
40151
|
lastCalibratedAt: "2026-06-26T22:30:00Z",
|
|
40108
40152
|
verdict: "USEFUL",
|
|
40109
|
-
_calibrationNote: "v4 corpus (2026-06-25): 95,599 neg + 76,550 pos (frontend, TS/TSX/JS/JSX). USEFUL \u2014 TP=479, FP=39, P=92.5%, FPR=0.04%, lift=15.3."
|
|
40153
|
+
_calibrationNote: "v4 corpus (2026-06-25): 95,599 neg + 76,550 pos (frontend, TS/TSX/JS/JSX). USEFUL \u2014 TP=479, FP=39, P=92.5%, FPR=0.04%, lift=15.3.",
|
|
40154
|
+
aiSpecific: false
|
|
40110
40155
|
},
|
|
40111
40156
|
"security/dangerous-cors": {
|
|
40112
40157
|
recall: 5e-4,
|
|
@@ -40116,7 +40161,8 @@ var signal_strength_default = {
|
|
|
40116
40161
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40117
40162
|
verdict: "NOISY",
|
|
40118
40163
|
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. NOISY \u2014 TP=114, FP=84, P=57.6%, FPR=0.05%, lift=1.0. aiSpecific=True.",
|
|
40119
|
-
defaultOff: true
|
|
40164
|
+
defaultOff: true,
|
|
40165
|
+
aiSpecific: true
|
|
40120
40166
|
},
|
|
40121
40167
|
"test/duplicate-setup": {
|
|
40122
40168
|
recall: 1e-4,
|
|
@@ -40125,7 +40171,8 @@ var signal_strength_default = {
|
|
|
40125
40171
|
precision: 0.8235,
|
|
40126
40172
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40127
40173
|
verdict: "USEFUL",
|
|
40128
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=14, FP=3, P=82.4%, FPR=0.00%, lift=3.6. aiSpecific=True."
|
|
40174
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=14, FP=3, P=82.4%, FPR=0.00%, lift=3.6. aiSpecific=True.",
|
|
40175
|
+
aiSpecific: true
|
|
40129
40176
|
},
|
|
40130
40177
|
"logic/ghost-defensive": {
|
|
40131
40178
|
recall: 1e-4,
|
|
@@ -40134,7 +40181,8 @@ var signal_strength_default = {
|
|
|
40134
40181
|
precision: 0.8824,
|
|
40135
40182
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40136
40183
|
verdict: "USEFUL",
|
|
40137
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=15, FP=2, P=88.2%, FPR=0.00%, lift=5.8. aiSpecific=True."
|
|
40184
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=15, FP=2, P=88.2%, FPR=0.00%, lift=5.8. aiSpecific=True.",
|
|
40185
|
+
aiSpecific: true
|
|
40138
40186
|
},
|
|
40139
40187
|
"typo/calc-raw-px": {
|
|
40140
40188
|
recall: 0,
|
|
@@ -40143,7 +40191,8 @@ var signal_strength_default = {
|
|
|
40143
40191
|
precision: 0.75,
|
|
40144
40192
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40145
40193
|
verdict: "HYGIENE",
|
|
40146
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=3, FP=1, P=75.0%, FPR=0.00%, lift=2.3. aiSpecific=False."
|
|
40194
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=3, FP=1, P=75.0%, FPR=0.00%, lift=2.3. aiSpecific=False.",
|
|
40195
|
+
aiSpecific: false
|
|
40147
40196
|
},
|
|
40148
40197
|
"security/fail-open-auth": {
|
|
40149
40198
|
recall: 0,
|
|
@@ -40152,7 +40201,8 @@ var signal_strength_default = {
|
|
|
40152
40201
|
precision: 1,
|
|
40153
40202
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40154
40203
|
verdict: "USEFUL",
|
|
40155
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1, FP=0, P=100.0%, FPR=0.00%, lift=inf. aiSpecific=True."
|
|
40204
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1, FP=0, P=100.0%, FPR=0.00%, lift=inf. aiSpecific=True.",
|
|
40205
|
+
aiSpecific: true
|
|
40156
40206
|
},
|
|
40157
40207
|
"wcag/focus-obscured": {
|
|
40158
40208
|
recall: 33e-4,
|
|
@@ -40161,7 +40211,8 @@ var signal_strength_default = {
|
|
|
40161
40211
|
precision: 0.82,
|
|
40162
40212
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40163
40213
|
verdict: "HYGIENE",
|
|
40164
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=797, FP=175, P=82.0%, FPR=0.09%, lift=3.5. aiSpecific=False."
|
|
40214
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=797, FP=175, P=82.0%, FPR=0.09%, lift=3.5. aiSpecific=False.",
|
|
40215
|
+
aiSpecific: false
|
|
40165
40216
|
},
|
|
40166
40217
|
"visual/arbitrary-escape": {
|
|
40167
40218
|
recall: 25e-4,
|
|
@@ -40170,7 +40221,8 @@ var signal_strength_default = {
|
|
|
40170
40221
|
precision: 0.7802,
|
|
40171
40222
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40172
40223
|
verdict: "USEFUL",
|
|
40173
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=600, FP=169, P=78.0%, FPR=0.09%, lift=2.7. aiSpecific=True."
|
|
40224
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=600, FP=169, P=78.0%, FPR=0.09%, lift=2.7. aiSpecific=True.",
|
|
40225
|
+
aiSpecific: true
|
|
40174
40226
|
},
|
|
40175
40227
|
"security/hardcoded-secret": {
|
|
40176
40228
|
recall: 13e-4,
|
|
@@ -40179,7 +40231,8 @@ var signal_strength_default = {
|
|
|
40179
40231
|
precision: 0.6899,
|
|
40180
40232
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40181
40233
|
verdict: "OK",
|
|
40182
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=307, FP=138, P=69.0%, FPR=0.07%, lift=1.7. aiSpecific=True."
|
|
40234
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=307, FP=138, P=69.0%, FPR=0.07%, lift=1.7. aiSpecific=True.",
|
|
40235
|
+
aiSpecific: true
|
|
40183
40236
|
},
|
|
40184
40237
|
"visual/radius-scale-violation": {
|
|
40185
40238
|
recall: 4e-4,
|
|
@@ -40188,7 +40241,8 @@ var signal_strength_default = {
|
|
|
40188
40241
|
precision: 0.9697,
|
|
40189
40242
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40190
40243
|
verdict: "HYGIENE",
|
|
40191
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=96, FP=3, P=97.0%, FPR=0.00%, lift=24.7. aiSpecific=False."
|
|
40244
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=96, FP=3, P=97.0%, FPR=0.00%, lift=24.7. aiSpecific=False.",
|
|
40245
|
+
aiSpecific: false
|
|
40192
40246
|
},
|
|
40193
40247
|
"test/fake-placeholder": {
|
|
40194
40248
|
recall: 53e-4,
|
|
@@ -40197,7 +40251,8 @@ var signal_strength_default = {
|
|
|
40197
40251
|
precision: 0.7854,
|
|
40198
40252
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40199
40253
|
verdict: "USEFUL",
|
|
40200
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1259, FP=344, P=78.5%, FPR=0.19%, lift=2.8. aiSpecific=True."
|
|
40254
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1259, FP=344, P=78.5%, FPR=0.19%, lift=2.8. aiSpecific=True.",
|
|
40255
|
+
aiSpecific: true
|
|
40201
40256
|
},
|
|
40202
40257
|
"security/exposed-env-var": {
|
|
40203
40258
|
recall: 6e-4,
|
|
@@ -40206,7 +40261,8 @@ var signal_strength_default = {
|
|
|
40206
40261
|
precision: 0.5387,
|
|
40207
40262
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40208
40263
|
verdict: "HYGIENE",
|
|
40209
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=146, FP=125, P=53.9%, FPR=0.07%, lift=0.9. aiSpecific=False."
|
|
40264
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=146, FP=125, P=53.9%, FPR=0.07%, lift=0.9. aiSpecific=False.",
|
|
40265
|
+
aiSpecific: false
|
|
40210
40266
|
},
|
|
40211
40267
|
"perf/cls-image": {
|
|
40212
40268
|
recall: 2e-4,
|
|
@@ -40215,7 +40271,8 @@ var signal_strength_default = {
|
|
|
40215
40271
|
precision: 0.5104,
|
|
40216
40272
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40217
40273
|
verdict: "HYGIENE",
|
|
40218
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=49, FP=47, P=51.0%, FPR=0.03%, lift=0.8. aiSpecific=False."
|
|
40274
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=49, FP=47, P=51.0%, FPR=0.03%, lift=0.8. aiSpecific=False.",
|
|
40275
|
+
aiSpecific: false
|
|
40219
40276
|
},
|
|
40220
40277
|
"layout/gap-monopoly": {
|
|
40221
40278
|
recall: 4e-4,
|
|
@@ -40224,7 +40281,8 @@ var signal_strength_default = {
|
|
|
40224
40281
|
precision: 0.7928,
|
|
40225
40282
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40226
40283
|
verdict: "HYGIENE",
|
|
40227
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=88, FP=23, P=79.3%, FPR=0.01%, lift=3.0. aiSpecific=False."
|
|
40284
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=88, FP=23, P=79.3%, FPR=0.01%, lift=3.0. aiSpecific=False.",
|
|
40285
|
+
aiSpecific: false
|
|
40228
40286
|
},
|
|
40229
40287
|
"visual/spacing-scale-violation": {
|
|
40230
40288
|
recall: 83e-4,
|
|
@@ -40233,7 +40291,8 @@ var signal_strength_default = {
|
|
|
40233
40291
|
precision: 0.7342,
|
|
40234
40292
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40235
40293
|
verdict: "HYGIENE",
|
|
40236
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=1981, FP=717, P=73.4%, FPR=0.39%, lift=2.1. aiSpecific=False."
|
|
40294
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=1981, FP=717, P=73.4%, FPR=0.39%, lift=2.1. aiSpecific=False.",
|
|
40295
|
+
aiSpecific: false
|
|
40237
40296
|
},
|
|
40238
40297
|
"visual/inline-style-dominance": {
|
|
40239
40298
|
recall: 96e-4,
|
|
@@ -40242,7 +40301,8 @@ var signal_strength_default = {
|
|
|
40242
40301
|
precision: 0.6535,
|
|
40243
40302
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40244
40303
|
verdict: "HYGIENE",
|
|
40245
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2303, FP=1221, P=65.4%, FPR=0.66%, lift=1.5. aiSpecific=False."
|
|
40304
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2303, FP=1221, P=65.4%, FPR=0.66%, lift=1.5. aiSpecific=False.",
|
|
40305
|
+
aiSpecific: false
|
|
40246
40306
|
},
|
|
40247
40307
|
"layout/spacing-grid": {
|
|
40248
40308
|
recall: 2e-4,
|
|
@@ -40251,7 +40311,8 @@ var signal_strength_default = {
|
|
|
40251
40311
|
precision: 0.7222,
|
|
40252
40312
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40253
40313
|
verdict: "HYGIENE",
|
|
40254
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=39, FP=15, P=72.2%, FPR=0.01%, lift=2.0. aiSpecific=False."
|
|
40314
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=39, FP=15, P=72.2%, FPR=0.01%, lift=2.0. aiSpecific=False.",
|
|
40315
|
+
aiSpecific: false
|
|
40255
40316
|
},
|
|
40256
40317
|
"wcag/dragging-movements": {
|
|
40257
40318
|
recall: 0,
|
|
@@ -40260,7 +40321,8 @@ var signal_strength_default = {
|
|
|
40260
40321
|
precision: 0.4,
|
|
40261
40322
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40262
40323
|
verdict: "HYGIENE",
|
|
40263
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2, FP=3, P=40.0%, FPR=0.00%, lift=0.5. aiSpecific=False."
|
|
40324
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2, FP=3, P=40.0%, FPR=0.00%, lift=0.5. aiSpecific=False.",
|
|
40325
|
+
aiSpecific: false
|
|
40264
40326
|
},
|
|
40265
40327
|
"test/weak-assertion": {
|
|
40266
40328
|
recall: 0.0414,
|
|
@@ -40269,7 +40331,8 @@ var signal_strength_default = {
|
|
|
40269
40331
|
precision: 0.8622,
|
|
40270
40332
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40271
40333
|
verdict: "USEFUL",
|
|
40272
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=9906, FP=1583, P=86.2%, FPR=0.86%, lift=4.8. aiSpecific=True."
|
|
40334
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=9906, FP=1583, P=86.2%, FPR=0.86%, lift=4.8. aiSpecific=True.",
|
|
40335
|
+
aiSpecific: true
|
|
40273
40336
|
},
|
|
40274
40337
|
"logic/bayesian-conditional": {
|
|
40275
40338
|
recall: 0,
|
|
@@ -40279,7 +40342,8 @@ var signal_strength_default = {
|
|
|
40279
40342
|
lastCalibratedAt: "2026-06-27T00:00:00Z",
|
|
40280
40343
|
verdict: "DORMANT",
|
|
40281
40344
|
defaultOff: true,
|
|
40282
|
-
_calibrationNote: "v0.12.0 ship \u2014 new Bayesian LR-combiner rule (Bento et al. 2024 *Neurocomputing*). Default-off until v0.12 corpus re-calibration lands. Threshold P(AI|fires) \u2265 0.7; posterior computed from per-rule likelihood ratios."
|
|
40345
|
+
_calibrationNote: "v0.12.0 ship \u2014 new Bayesian LR-combiner rule (Bento et al. 2024 *Neurocomputing*). Default-off until v0.12 corpus re-calibration lands. Threshold P(AI|fires) \u2265 0.7; posterior computed from per-rule likelihood ratios.",
|
|
40346
|
+
aiSpecific: true
|
|
40283
40347
|
},
|
|
40284
40348
|
"logic/heaps-deviation": {
|
|
40285
40349
|
recall: 0.0122,
|
|
@@ -40288,7 +40352,8 @@ var signal_strength_default = {
|
|
|
40288
40352
|
precision: 0.5461,
|
|
40289
40353
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40290
40354
|
verdict: "HYGIENE",
|
|
40291
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2924, FP=2430, P=54.6%, FPR=1.32%, lift=0.9. aiSpecific=False."
|
|
40355
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=2924, FP=2430, P=54.6%, FPR=1.32%, lift=0.9. aiSpecific=False.",
|
|
40356
|
+
aiSpecific: false
|
|
40292
40357
|
},
|
|
40293
40358
|
"logic/ks-distribution-shift": {
|
|
40294
40359
|
recall: 0.6375,
|
|
@@ -40297,7 +40362,8 @@ var signal_strength_default = {
|
|
|
40297
40362
|
precision: 0.7096,
|
|
40298
40363
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40299
40364
|
verdict: "HYGIENE",
|
|
40300
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=152391, FP=62358, P=71.0%, FPR=33.80%, lift=1.9. aiSpecific=False."
|
|
40365
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=152391, FP=62358, P=71.0%, FPR=33.80%, lift=1.9. aiSpecific=False.",
|
|
40366
|
+
aiSpecific: false
|
|
40301
40367
|
},
|
|
40302
40368
|
"logic/zipf-slope-anomaly": {
|
|
40303
40369
|
recall: 0.0156,
|
|
@@ -40306,7 +40372,8 @@ var signal_strength_default = {
|
|
|
40306
40372
|
precision: 0.6983,
|
|
40307
40373
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40308
40374
|
verdict: "HYGIENE",
|
|
40309
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=3718, FP=1606, P=69.8%, FPR=0.87%, lift=1.8. aiSpecific=False."
|
|
40375
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. HYGIENE \u2014 TP=3718, FP=1606, P=69.8%, FPR=0.87%, lift=1.8. aiSpecific=False.",
|
|
40376
|
+
aiSpecific: false
|
|
40310
40377
|
},
|
|
40311
40378
|
"ai/markdown-leakage": {
|
|
40312
40379
|
recall: 0,
|
|
@@ -40315,7 +40382,8 @@ var signal_strength_default = {
|
|
|
40315
40382
|
precision: 0.7143,
|
|
40316
40383
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40317
40384
|
verdict: "OK",
|
|
40318
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=5, FP=2, P=71.4%, FPR=0.00%, lift=1.9. aiSpecific=True."
|
|
40385
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=5, FP=2, P=71.4%, FPR=0.00%, lift=1.9. aiSpecific=True.",
|
|
40386
|
+
aiSpecific: true
|
|
40319
40387
|
},
|
|
40320
40388
|
"ai/comment-ratio": {
|
|
40321
40389
|
recall: 0.2523,
|
|
@@ -40324,7 +40392,8 @@ var signal_strength_default = {
|
|
|
40324
40392
|
precision: 0.6687,
|
|
40325
40393
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40326
40394
|
verdict: "OK",
|
|
40327
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=60308, FP=29876, P=66.9%, FPR=16.19%, lift=1.6. aiSpecific=True."
|
|
40395
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. OK \u2014 TP=60308, FP=29876, P=66.9%, FPR=16.19%, lift=1.6. aiSpecific=True.",
|
|
40396
|
+
aiSpecific: true
|
|
40328
40397
|
},
|
|
40329
40398
|
"ai/whitespace-regularity": {
|
|
40330
40399
|
recall: 0.0731,
|
|
@@ -40334,7 +40403,8 @@ var signal_strength_default = {
|
|
|
40334
40403
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40335
40404
|
verdict: "NOISY",
|
|
40336
40405
|
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. NOISY \u2014 TP=17466, FP=13438, P=56.5%, FPR=7.28%, lift=1.0. aiSpecific=True.",
|
|
40337
|
-
defaultOff: true
|
|
40406
|
+
defaultOff: true,
|
|
40407
|
+
aiSpecific: true
|
|
40338
40408
|
},
|
|
40339
40409
|
"ai/text-like-ratio": {
|
|
40340
40410
|
recall: 0,
|
|
@@ -40343,7 +40413,8 @@ var signal_strength_default = {
|
|
|
40343
40413
|
precision: 0.75,
|
|
40344
40414
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40345
40415
|
verdict: "USEFUL",
|
|
40346
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=3, FP=1, P=75.0%, FPR=0.00%, lift=2.3. aiSpecific=True."
|
|
40416
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=3, FP=1, P=75.0%, FPR=0.00%, lift=2.3. aiSpecific=True.",
|
|
40417
|
+
aiSpecific: true
|
|
40347
40418
|
},
|
|
40348
40419
|
"ai/errors-near-eof": {
|
|
40349
40420
|
recall: 0.0697,
|
|
@@ -40353,7 +40424,8 @@ var signal_strength_default = {
|
|
|
40353
40424
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40354
40425
|
verdict: "NOISY",
|
|
40355
40426
|
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. NOISY \u2014 TP=16673, FP=10112, P=62.2%, FPR=5.48%, lift=1.3. aiSpecific=True.",
|
|
40356
|
-
defaultOff: true
|
|
40427
|
+
defaultOff: true,
|
|
40428
|
+
aiSpecific: true
|
|
40357
40429
|
},
|
|
40358
40430
|
"ai/any-density": {
|
|
40359
40431
|
recall: 55e-4,
|
|
@@ -40363,7 +40435,8 @@ var signal_strength_default = {
|
|
|
40363
40435
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40364
40436
|
verdict: "NOISY",
|
|
40365
40437
|
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. NOISY \u2014 TP=1313, FP=758, P=63.4%, FPR=0.41%, lift=1.3. aiSpecific=True.",
|
|
40366
|
-
defaultOff: true
|
|
40438
|
+
defaultOff: true,
|
|
40439
|
+
aiSpecific: true
|
|
40367
40440
|
},
|
|
40368
40441
|
"ai/renyi-profile": {
|
|
40369
40442
|
recall: 0,
|
|
@@ -40373,7 +40446,8 @@ var signal_strength_default = {
|
|
|
40373
40446
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40374
40447
|
verdict: "INVERTED",
|
|
40375
40448
|
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. INVERTED \u2014 TP=3, FP=9, P=25.0%, FPR=0.00%, lift=0.3. aiSpecific=True.",
|
|
40376
|
-
defaultOff: true
|
|
40449
|
+
defaultOff: true,
|
|
40450
|
+
aiSpecific: true
|
|
40377
40451
|
},
|
|
40378
40452
|
"ai/log-rank-histogram": {
|
|
40379
40453
|
recall: 0,
|
|
@@ -40382,7 +40456,8 @@ var signal_strength_default = {
|
|
|
40382
40456
|
precision: 0,
|
|
40383
40457
|
lastCalibratedAt: "2026-06-27T00:00:00Z",
|
|
40384
40458
|
verdict: "OK",
|
|
40385
|
-
_calibrationNote: "v0.13.0 stub: rule implemented per Gehrmann 2019 GLTR; calibration on v7 corpus pending. v0.13.0: marked OK (peer-reviewed math backing; lift=0 because v7 calibration has not been run yet \u2014 will be re-evaluated)."
|
|
40459
|
+
_calibrationNote: "v0.13.0 stub: rule implemented per Gehrmann 2019 GLTR; calibration on v7 corpus pending. v0.13.0: marked OK (peer-reviewed math backing; lift=0 because v7 calibration has not been run yet \u2014 will be re-evaluated).",
|
|
40460
|
+
aiSpecific: true
|
|
40386
40461
|
},
|
|
40387
40462
|
"ai/segment-surprisal-cv": {
|
|
40388
40463
|
recall: 0.182,
|
|
@@ -40391,7 +40466,8 @@ var signal_strength_default = {
|
|
|
40391
40466
|
precision: 0.7438,
|
|
40392
40467
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40393
40468
|
verdict: "USEFUL",
|
|
40394
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=43498, FP=14983, P=74.4%, FPR=8.12%, lift=2.2. aiSpecific=True."
|
|
40469
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=43498, FP=14983, P=74.4%, FPR=8.12%, lift=2.2. aiSpecific=True.",
|
|
40470
|
+
aiSpecific: true
|
|
40395
40471
|
},
|
|
40396
40472
|
"ai/compression-profile": {
|
|
40397
40473
|
recall: 0.3139,
|
|
@@ -40400,7 +40476,8 @@ var signal_strength_default = {
|
|
|
40400
40476
|
precision: 0.732,
|
|
40401
40477
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40402
40478
|
verdict: "USEFUL",
|
|
40403
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=75031, FP=27473, P=73.2%, FPR=14.89%, lift=2.1. aiSpecific=True."
|
|
40479
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=75031, FP=27473, P=73.2%, FPR=14.89%, lift=2.1. aiSpecific=True.",
|
|
40480
|
+
aiSpecific: true
|
|
40404
40481
|
},
|
|
40405
40482
|
"ai/tailwind-color-overuse": {
|
|
40406
40483
|
recall: 0.0216,
|
|
@@ -40409,7 +40486,8 @@ var signal_strength_default = {
|
|
|
40409
40486
|
precision: 0.8436,
|
|
40410
40487
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40411
40488
|
verdict: "USEFUL",
|
|
40412
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=5169, FP=958, P=84.4%, FPR=0.52%, lift=4.2. aiSpecific=True."
|
|
40489
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=5169, FP=958, P=84.4%, FPR=0.52%, lift=4.2. aiSpecific=True.",
|
|
40490
|
+
aiSpecific: true
|
|
40413
40491
|
},
|
|
40414
40492
|
"ai/default-react-stack": {
|
|
40415
40493
|
recall: 1e-3,
|
|
@@ -40418,7 +40496,8 @@ var signal_strength_default = {
|
|
|
40418
40496
|
precision: 0.9957,
|
|
40419
40497
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40420
40498
|
verdict: "USEFUL",
|
|
40421
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=231, FP=1, P=99.6%, FPR=0.00%, lift=178.3. aiSpecific=True."
|
|
40499
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=231, FP=1, P=99.6%, FPR=0.00%, lift=178.3. aiSpecific=True.",
|
|
40500
|
+
aiSpecific: true
|
|
40422
40501
|
},
|
|
40423
40502
|
"ai/library-reinvention": {
|
|
40424
40503
|
recall: 3e-4,
|
|
@@ -40427,7 +40506,8 @@ var signal_strength_default = {
|
|
|
40427
40506
|
precision: 0.9275,
|
|
40428
40507
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40429
40508
|
verdict: "USEFUL",
|
|
40430
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=64, FP=5, P=92.8%, FPR=0.00%, lift=9.9. aiSpecific=True."
|
|
40509
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=64, FP=5, P=92.8%, FPR=0.00%, lift=9.9. aiSpecific=True.",
|
|
40510
|
+
aiSpecific: true
|
|
40431
40511
|
},
|
|
40432
40512
|
"ai/state-default-overuse": {
|
|
40433
40513
|
recall: 29e-4,
|
|
@@ -40436,7 +40516,8 @@ var signal_strength_default = {
|
|
|
40436
40516
|
precision: 0.8161,
|
|
40437
40517
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40438
40518
|
verdict: "USEFUL",
|
|
40439
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=701, FP=158, P=81.6%, FPR=0.09%, lift=3.4. aiSpecific=True."
|
|
40519
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=701, FP=158, P=81.6%, FPR=0.09%, lift=3.4. aiSpecific=True.",
|
|
40520
|
+
aiSpecific: true
|
|
40440
40521
|
},
|
|
40441
40522
|
"ai/fetch-default-overuse": {
|
|
40442
40523
|
recall: 28e-4,
|
|
@@ -40445,7 +40526,8 @@ var signal_strength_default = {
|
|
|
40445
40526
|
precision: 0.8976,
|
|
40446
40527
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40447
40528
|
verdict: "USEFUL",
|
|
40448
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=666, FP=76, P=89.8%, FPR=0.04%, lift=6.8. aiSpecific=True."
|
|
40529
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=666, FP=76, P=89.8%, FPR=0.04%, lift=6.8. aiSpecific=True.",
|
|
40530
|
+
aiSpecific: true
|
|
40449
40531
|
},
|
|
40450
40532
|
"ai/console-debug-storm": {
|
|
40451
40533
|
recall: 8e-3,
|
|
@@ -40454,7 +40536,8 @@ var signal_strength_default = {
|
|
|
40454
40536
|
precision: 0.9161,
|
|
40455
40537
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40456
40538
|
verdict: "USEFUL",
|
|
40457
|
-
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1912, FP=175, P=91.6%, FPR=0.09%, lift=8.4. aiSpecific=True."
|
|
40539
|
+
_calibrationNote: "v7 corpus re-calibration (2026-06-27, min-date=2025-01-01): 184488 neg + 239054 pos. USEFUL \u2014 TP=1912, FP=175, P=91.6%, FPR=0.09%, lift=8.4. aiSpecific=True.",
|
|
40540
|
+
aiSpecific: true
|
|
40458
40541
|
},
|
|
40459
40542
|
"db/missing-fk-index": {
|
|
40460
40543
|
recall: 0,
|
|
@@ -40464,7 +40547,8 @@ var signal_strength_default = {
|
|
|
40464
40547
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40465
40548
|
verdict: "DORMANT",
|
|
40466
40549
|
defaultOff: true,
|
|
40467
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA75.4 (Constraints)*, https://www.postgresql.org/docs/16/ddl-constraints.html; Squawk (2023), *Postgres linter rules*, https://github.com/sqllabs/squawk, rule `require-index-for-fk`. (Foreign key columns need a matching index \u2014 sequential scan on parent delete is a canonical Postgres anti-pattern.)"
|
|
40550
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA75.4 (Constraints)*, https://www.postgresql.org/docs/16/ddl-constraints.html; Squawk (2023), *Postgres linter rules*, https://github.com/sqllabs/squawk, rule `require-index-for-fk`. (Foreign key columns need a matching index \u2014 sequential scan on parent delete is a canonical Postgres anti-pattern.)",
|
|
40551
|
+
aiSpecific: false
|
|
40468
40552
|
},
|
|
40469
40553
|
"db/duplicate-index": {
|
|
40470
40554
|
recall: 0,
|
|
@@ -40474,7 +40558,8 @@ var signal_strength_default = {
|
|
|
40474
40558
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40475
40559
|
verdict: "DORMANT",
|
|
40476
40560
|
defaultOff: true,
|
|
40477
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA711.2 (Index Types)*; Heroku Postgres Team (2018), *Efficient Use of PostgreSQL Indexes*. (Duplicate indexes silently double write cost without read benefit \u2014 Postgres does not warn.)"
|
|
40561
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA711.2 (Index Types)*; Heroku Postgres Team (2018), *Efficient Use of PostgreSQL Indexes*. (Duplicate indexes silently double write cost without read benefit \u2014 Postgres does not warn.)",
|
|
40562
|
+
aiSpecific: false
|
|
40478
40563
|
},
|
|
40479
40564
|
"db/missing-not-null": {
|
|
40480
40565
|
recall: 0,
|
|
@@ -40484,7 +40569,8 @@ var signal_strength_default = {
|
|
|
40484
40569
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40485
40570
|
verdict: "DORMANT",
|
|
40486
40571
|
defaultOff: true,
|
|
40487
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA75.4.1 (Check Constraints)*; Kleppmann, M. (2017), *Designing Data-Intensive Applications*, O'Reilly, ch.4 (NULL semantics in RDBMS). (Required-identifier columns without NOT NULL produce silent NULL inserts \u2014 canonical AI SQL smell.)"
|
|
40572
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA75.4.1 (Check Constraints)*; Kleppmann, M. (2017), *Designing Data-Intensive Applications*, O'Reilly, ch.4 (NULL semantics in RDBMS). (Required-identifier columns without NOT NULL produce silent NULL inserts \u2014 canonical AI SQL smell.)",
|
|
40573
|
+
aiSpecific: false
|
|
40488
40574
|
},
|
|
40489
40575
|
"db/enum-sprawl": {
|
|
40490
40576
|
recall: 0,
|
|
@@ -40494,7 +40580,8 @@ var signal_strength_default = {
|
|
|
40494
40580
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40495
40581
|
verdict: "DORMANT",
|
|
40496
40582
|
defaultOff: true,
|
|
40497
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA78.7 (Enumerated Types)*; Borkowski, A. (2022), *PostgreSQL enum types: when to use them and when not to*, pgconfig.org. (Enums with >12 values are brittle to extend and hard to localize \u2014 lookup table is the standard replacement.)"
|
|
40583
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA78.7 (Enumerated Types)*; Borkowski, A. (2022), *PostgreSQL enum types: when to use them and when not to*, pgconfig.org. (Enums with >12 values are brittle to extend and hard to localize \u2014 lookup table is the standard replacement.)",
|
|
40584
|
+
aiSpecific: false
|
|
40498
40585
|
},
|
|
40499
40586
|
"db/naming-inconsistency": {
|
|
40500
40587
|
recall: 0,
|
|
@@ -40504,7 +40591,8 @@ var signal_strength_default = {
|
|
|
40504
40591
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40505
40592
|
verdict: "DORMANT",
|
|
40506
40593
|
defaultOff: true,
|
|
40507
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA74.1.1 (Identifiers and Key Words)*; pgsql-hackers (2018), *Re: snake_case vs camelCase in Postgres identifiers*. (snake_case is the Postgres convention; mixing styles in the same schema breaks ORM generators.)"
|
|
40594
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: PostgreSQL Global Development Group (2024), *PostgreSQL 16 Documentation \xA74.1.1 (Identifiers and Key Words)*; pgsql-hackers (2018), *Re: snake_case vs camelCase in Postgres identifiers*. (snake_case is the Postgres convention; mixing styles in the same schema breaks ORM generators.)",
|
|
40595
|
+
aiSpecific: false
|
|
40508
40596
|
},
|
|
40509
40597
|
"db/sql-concat": {
|
|
40510
40598
|
recall: 0,
|
|
@@ -40514,7 +40602,8 @@ var signal_strength_default = {
|
|
|
40514
40602
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40515
40603
|
verdict: "DORMANT",
|
|
40516
40604
|
defaultOff: true,
|
|
40517
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2021), *OWASP Top 10 \u2014 A03:2021 Injection*, https://owasp.org/Top10/A03_2021-Injection/; OWASP Foundation (2017), *SQL Injection Prevention Cheat Sheet*. (Template-literal SQL with ${...} interpolation is the #1 SQL injection vector in AI-generated TypeScript code.)"
|
|
40605
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2021), *OWASP Top 10 \u2014 A03:2021 Injection*, https://owasp.org/Top10/A03_2021-Injection/; OWASP Foundation (2017), *SQL Injection Prevention Cheat Sheet*. (Template-literal SQL with ${...} interpolation is the #1 SQL injection vector in AI-generated TypeScript code.)",
|
|
40606
|
+
aiSpecific: true
|
|
40518
40607
|
},
|
|
40519
40608
|
"docs/stale-package-reference": {
|
|
40520
40609
|
recall: 0,
|
|
@@ -40524,7 +40613,8 @@ var signal_strength_default = {
|
|
|
40524
40613
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40525
40614
|
verdict: "DORMANT",
|
|
40526
40615
|
defaultOff: true,
|
|
40527
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Meng, M. et al. (2020), *The Cost of Fixing Code Documentation: An Empirical Study on Open-Source Software*, ICSE 2020; Aghajani, E. et al. (2019), *Software documentation: a practitioners' perspective*, ICSE 2019. (Doc references to undeclared packages are copy-paste rot from previous projects \u2014 high-signal doc drift.)"
|
|
40616
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Meng, M. et al. (2020), *The Cost of Fixing Code Documentation: An Empirical Study on Open-Source Software*, ICSE 2020; Aghajani, E. et al. (2019), *Software documentation: a practitioners' perspective*, ICSE 2019. (Doc references to undeclared packages are copy-paste rot from previous projects \u2014 high-signal doc drift.)",
|
|
40617
|
+
aiSpecific: false
|
|
40528
40618
|
},
|
|
40529
40619
|
"docs/stale-function-reference": {
|
|
40530
40620
|
recall: 0,
|
|
@@ -40534,7 +40624,8 @@ var signal_strength_default = {
|
|
|
40534
40624
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40535
40625
|
verdict: "DORMANT",
|
|
40536
40626
|
defaultOff: true,
|
|
40537
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Meng, M. et al. (2020), *The Cost of Fixing Code Documentation*; Chen, Z. et al. (2022), *An Empirical Study on Code Documentation Adequacy*, MSR 2022. (Doc callouts to non-existent exports \u2014 readers copy-paste and hit a runtime error.)"
|
|
40627
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Meng, M. et al. (2020), *The Cost of Fixing Code Documentation*; Chen, Z. et al. (2022), *An Empirical Study on Code Documentation Adequacy*, MSR 2022. (Doc callouts to non-existent exports \u2014 readers copy-paste and hit a runtime error.)",
|
|
40628
|
+
aiSpecific: false
|
|
40538
40629
|
},
|
|
40539
40630
|
"docs/expired-code-example": {
|
|
40540
40631
|
recall: 0,
|
|
@@ -40544,7 +40635,8 @@ var signal_strength_default = {
|
|
|
40544
40635
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40545
40636
|
verdict: "DORMANT",
|
|
40546
40637
|
defaultOff: true,
|
|
40547
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Parnas, D.L. (2010), *Precise Documentation: The Key to Better Software*, Springer (canonical doc-correctness argument); Chen, Z. et al. (2022). (Fenced code examples with broken imports erode trust in the entire docs site.)"
|
|
40638
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Parnas, D.L. (2010), *Precise Documentation: The Key to Better Software*, Springer (canonical doc-correctness argument); Chen, Z. et al. (2022). (Fenced code examples with broken imports erode trust in the entire docs site.)",
|
|
40639
|
+
aiSpecific: false
|
|
40548
40640
|
},
|
|
40549
40641
|
"docs/broken-link": {
|
|
40550
40642
|
recall: 0,
|
|
@@ -40554,7 +40646,8 @@ var signal_strength_default = {
|
|
|
40554
40646
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40555
40647
|
verdict: "DORMANT",
|
|
40556
40648
|
defaultOff: true,
|
|
40557
|
-
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Nielsen, J. (2000), *Designing Web Usability*, New Riders (broken links as a top-5 trust erosion signal); Google Search Central (2024), *Crawl errors documentation*, https://developers.google.com/search/docs/crawling-indexing. (Broken internal links cost SEO crawl budget and reader trust.)"
|
|
40649
|
+
_calibrationNote: "v0.17.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Nielsen, J. (2000), *Designing Web Usability*, New Riders (broken links as a top-5 trust erosion signal); Google Search Central (2024), *Crawl errors documentation*, https://developers.google.com/search/docs/crawling-indexing. (Broken internal links cost SEO crawl budget and reader trust.)",
|
|
40650
|
+
aiSpecific: false
|
|
40558
40651
|
},
|
|
40559
40652
|
"security/eval": {
|
|
40560
40653
|
recall: 0,
|
|
@@ -40564,7 +40657,8 @@ var signal_strength_default = {
|
|
|
40564
40657
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40565
40658
|
verdict: "DORMANT",
|
|
40566
40659
|
defaultOff: true,
|
|
40567
|
-
_calibrationNote: "v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2021), *OWASP Top 10 \u2014 A03:2021 Injection*; Mozilla Developer Network (2024), *eval() \u2014 MDN Web Docs*, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval (Security Considerations). (eval() and new Function() are RCE vectors if the input is ever attacker-controlled.)"
|
|
40660
|
+
_calibrationNote: "v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2021), *OWASP Top 10 \u2014 A03:2021 Injection*; Mozilla Developer Network (2024), *eval() \u2014 MDN Web Docs*, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval (Security Considerations). (eval() and new Function() are RCE vectors if the input is ever attacker-controlled.)",
|
|
40661
|
+
aiSpecific: false
|
|
40568
40662
|
},
|
|
40569
40663
|
"security/localstorage-token": {
|
|
40570
40664
|
recall: 0,
|
|
@@ -40574,7 +40668,8 @@ var signal_strength_default = {
|
|
|
40574
40668
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40575
40669
|
verdict: "DORMANT",
|
|
40576
40670
|
defaultOff: true,
|
|
40577
|
-
_calibrationNote: "v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2021), *OWASP Top 10 \u2014 A07:2021 Identification and Authentication Failures*; OWASP Foundation (2022), *HTML5 Security Cheat Sheet \xA72.1 (Local Storage)*. (JWT/access/refresh tokens in localStorage are readable by any XSS payload \u2014 issue as httpOnly cookies instead.)"
|
|
40671
|
+
_calibrationNote: "v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2021), *OWASP Top 10 \u2014 A07:2021 Identification and Authentication Failures*; OWASP Foundation (2022), *HTML5 Security Cheat Sheet \xA72.1 (Local Storage)*. (JWT/access/refresh tokens in localStorage are readable by any XSS payload \u2014 issue as httpOnly cookies instead.)",
|
|
40672
|
+
aiSpecific: false
|
|
40578
40673
|
},
|
|
40579
40674
|
"security/target-blank-no-noopener": {
|
|
40580
40675
|
recall: 0,
|
|
@@ -40584,7 +40679,8 @@ var signal_strength_default = {
|
|
|
40584
40679
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40585
40680
|
verdict: "DORMANT",
|
|
40586
40681
|
defaultOff: true,
|
|
40587
|
-
_calibrationNote: 'v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2022), *HTML5 Security Cheat Sheet \xA72.3 (Tabnabbing)*; WHATWG (2024), *HTML Living Standard \u2014 Link types: noopener*. (target="_blank" without rel="noopener" lets the linked page control window.opener \u2014 reverse tabnabbing.)'
|
|
40682
|
+
_calibrationNote: 'v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: OWASP Foundation (2022), *HTML5 Security Cheat Sheet \xA72.3 (Tabnabbing)*; WHATWG (2024), *HTML Living Standard \u2014 Link types: noopener*. (target="_blank" without rel="noopener" lets the linked page control window.opener \u2014 reverse tabnabbing.)',
|
|
40683
|
+
aiSpecific: false
|
|
40588
40684
|
},
|
|
40589
40685
|
"wcag/missing-alt": {
|
|
40590
40686
|
recall: 0,
|
|
@@ -40594,7 +40690,8 @@ var signal_strength_default = {
|
|
|
40594
40690
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40595
40691
|
verdict: "DORMANT",
|
|
40596
40692
|
defaultOff: true,
|
|
40597
|
-
_calibrationNote: 'v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: W3C (2023), *Web Content Accessibility Guidelines (WCAG) 2.2 \u2014 1.1.1 Non-text Content*, https://www.w3.org/TR/WCAG22/. (Every <img> needs alt text. Decorative: alt="". Informative: describe the image.)'
|
|
40693
|
+
_calibrationNote: 'v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: W3C (2023), *Web Content Accessibility Guidelines (WCAG) 2.2 \u2014 1.1.1 Non-text Content*, https://www.w3.org/TR/WCAG22/. (Every <img> needs alt text. Decorative: alt="". Informative: describe the image.)',
|
|
40694
|
+
aiSpecific: false
|
|
40598
40695
|
},
|
|
40599
40696
|
"typo/placeholder-text": {
|
|
40600
40697
|
recall: 0,
|
|
@@ -40604,7 +40701,8 @@ var signal_strength_default = {
|
|
|
40604
40701
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40605
40702
|
verdict: "DORMANT",
|
|
40606
40703
|
defaultOff: true,
|
|
40607
|
-
_calibrationNote: "v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Nielsen, J. (2000), *Designing Web Usability* (placeholder copy as a top-10 trust erosion signal); Krug, S. (2000), *Don't Make Me Think*, 2nd ed. (TODO/placeholder text in shipped UI signals incomplete work.)"
|
|
40704
|
+
_calibrationNote: "v0.16.0 ship \u2014 not in v7 per-rule table. Default-off until calibration data lands. Backed by: Nielsen, J. (2000), *Designing Web Usability* (placeholder copy as a top-10 trust erosion signal); Krug, S. (2000), *Don't Make Me Think*, 2nd ed. (TODO/placeholder text in shipped UI signals incomplete work.)",
|
|
40705
|
+
aiSpecific: false
|
|
40608
40706
|
}
|
|
40609
40707
|
};
|
|
40610
40708
|
|
|
@@ -40616,6 +40714,12 @@ function loadSignalStrength() {
|
|
|
40616
40714
|
}
|
|
40617
40715
|
|
|
40618
40716
|
// src/engine/worker.ts
|
|
40717
|
+
function buildParserCacheConfig(cwd) {
|
|
40718
|
+
const envVal = process.env.SLOP_AUDIT_CACHE;
|
|
40719
|
+
const enabled = envVal === "1" || envVal === "true";
|
|
40720
|
+
const root = process.env.SLOP_AUDIT_CACHE_ROOT ?? (0, import_node_path12.join)(cwd, ".slopbrick", "cache", "ast");
|
|
40721
|
+
return { enabled, root };
|
|
40722
|
+
}
|
|
40619
40723
|
function applyRuleOverrides(issues, rules) {
|
|
40620
40724
|
const result = [];
|
|
40621
40725
|
for (const issue of issues) {
|
|
@@ -40630,6 +40734,7 @@ function applyRuleOverrides(issues, rules) {
|
|
|
40630
40734
|
return result;
|
|
40631
40735
|
}
|
|
40632
40736
|
async function scanFile(filePath, config, registry, cwd = process.cwd()) {
|
|
40737
|
+
const cache = buildParserCacheConfig(cwd);
|
|
40633
40738
|
const ext = (0, import_node_path11.extname)(filePath).toLowerCase();
|
|
40634
40739
|
const UNSUPPORTED_LANGS = /* @__PURE__ */ new Set([
|
|
40635
40740
|
".swift",
|
|
@@ -40660,7 +40765,7 @@ async function scanFile(filePath, config, registry, cwd = process.cwd()) {
|
|
|
40660
40765
|
};
|
|
40661
40766
|
}
|
|
40662
40767
|
try {
|
|
40663
|
-
const { ast, source } = await parseFile(filePath);
|
|
40768
|
+
const { ast, source } = await parseFile(filePath, { cache });
|
|
40664
40769
|
const facts = extractFacts(filePath, ast, source, config.supportsRsc ?? true, config.framework ?? "react", config);
|
|
40665
40770
|
const activeRegistry = registry ?? new RuleRegistry();
|
|
40666
40771
|
if (!registry) {
|