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.js
CHANGED
|
@@ -7,6 +7,7 @@ var __export = (target, all) => {
|
|
|
7
7
|
// src/engine/worker.ts
|
|
8
8
|
import { isMainThread, parentPort, workerData } from "worker_threads";
|
|
9
9
|
import { extname as extname6 } from "path";
|
|
10
|
+
import { join as join12 } from "path";
|
|
10
11
|
|
|
11
12
|
// ../engine/dist/index.js
|
|
12
13
|
import { readFile, writeFile, mkdir, access } from "fs/promises";
|
|
@@ -4271,10 +4272,10 @@ function parseSvelte(source) {
|
|
|
4271
4272
|
const ast = parseScriptContent(script.content, isTypeScriptScript(script.openTag));
|
|
4272
4273
|
return { ast, source };
|
|
4273
4274
|
}
|
|
4274
|
-
function
|
|
4275
|
+
function legacyCacheEnabled() {
|
|
4275
4276
|
return process.env.SLOP_AUDIT_CACHE === "1" || process.env.SLOP_AUDIT_CACHE === "true";
|
|
4276
4277
|
}
|
|
4277
|
-
function
|
|
4278
|
+
function legacyCacheRoot() {
|
|
4278
4279
|
const override = process.env.SLOP_AUDIT_CACHE_ROOT;
|
|
4279
4280
|
if (override) return override;
|
|
4280
4281
|
return join(process.cwd(), ".slopbrick", "cache", "ast");
|
|
@@ -4282,11 +4283,11 @@ function cacheRoot() {
|
|
|
4282
4283
|
function hashContent(content) {
|
|
4283
4284
|
return createHash("md5").update(content, "utf-8").digest("hex");
|
|
4284
4285
|
}
|
|
4285
|
-
function
|
|
4286
|
-
return join(
|
|
4286
|
+
function cachePathWithRoot(content, root) {
|
|
4287
|
+
return join(root, `${hashContent(content)}.json`);
|
|
4287
4288
|
}
|
|
4288
|
-
async function
|
|
4289
|
-
const path =
|
|
4289
|
+
async function readCacheWithRoot(filePath, content, root) {
|
|
4290
|
+
const path = cachePathWithRoot(content, root);
|
|
4290
4291
|
try {
|
|
4291
4292
|
await access(path);
|
|
4292
4293
|
const raw = await readFile(path, "utf8");
|
|
@@ -4299,8 +4300,8 @@ async function readCache(filePath, content) {
|
|
|
4299
4300
|
}
|
|
4300
4301
|
return void 0;
|
|
4301
4302
|
}
|
|
4302
|
-
async function
|
|
4303
|
-
const path =
|
|
4303
|
+
async function writeCacheWithRoot(content, result, root) {
|
|
4304
|
+
const path = cachePathWithRoot(content, root);
|
|
4304
4305
|
await mkdir(dirname(path), { recursive: true });
|
|
4305
4306
|
await writeFile(path, JSON.stringify(result), "utf8");
|
|
4306
4307
|
}
|
|
@@ -4331,15 +4332,17 @@ function parseSource(source, filePath) {
|
|
|
4331
4332
|
return parseWithSwc(source, filePath);
|
|
4332
4333
|
}
|
|
4333
4334
|
}
|
|
4334
|
-
async function parseFile(filePath) {
|
|
4335
|
+
async function parseFile(filePath, opts) {
|
|
4335
4336
|
const source = await readFile(filePath, "utf-8");
|
|
4336
|
-
|
|
4337
|
-
|
|
4337
|
+
const useCache = opts?.cache?.enabled ?? legacyCacheEnabled();
|
|
4338
|
+
const cacheDir = opts?.cache?.root ?? legacyCacheRoot();
|
|
4339
|
+
if (useCache) {
|
|
4340
|
+
const cached = await readCacheWithRoot(filePath, source, cacheDir);
|
|
4338
4341
|
if (cached) return cached;
|
|
4339
4342
|
}
|
|
4340
4343
|
const result = parseSource(source, filePath);
|
|
4341
|
-
if (
|
|
4342
|
-
await
|
|
4344
|
+
if (useCache) {
|
|
4345
|
+
await writeCacheWithRoot(source, result, cacheDir);
|
|
4343
4346
|
}
|
|
4344
4347
|
return result;
|
|
4345
4348
|
}
|
|
@@ -39705,7 +39708,8 @@ var signal_strength_default = {
|
|
|
39705
39708
|
precision: 0.8968,
|
|
39706
39709
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39707
39710
|
verdict: "USEFUL",
|
|
39708
|
-
_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."
|
|
39711
|
+
_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.",
|
|
39712
|
+
aiSpecific: true
|
|
39709
39713
|
},
|
|
39710
39714
|
"logic/math-any-density": {
|
|
39711
39715
|
recall: 16e-4,
|
|
@@ -39715,7 +39719,8 @@ var signal_strength_default = {
|
|
|
39715
39719
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39716
39720
|
verdict: "NOISY",
|
|
39717
39721
|
_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.",
|
|
39718
|
-
defaultOff: true
|
|
39722
|
+
defaultOff: true,
|
|
39723
|
+
aiSpecific: true
|
|
39719
39724
|
},
|
|
39720
39725
|
"logic/boundary-violation": {
|
|
39721
39726
|
recall: 0.0263,
|
|
@@ -39724,7 +39729,8 @@ var signal_strength_default = {
|
|
|
39724
39729
|
precision: 0.6601,
|
|
39725
39730
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39726
39731
|
verdict: "HYGIENE",
|
|
39727
|
-
_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."
|
|
39732
|
+
_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.",
|
|
39733
|
+
aiSpecific: false
|
|
39728
39734
|
},
|
|
39729
39735
|
"logic/reactive-hook-soup": {
|
|
39730
39736
|
recall: 38e-4,
|
|
@@ -39733,7 +39739,8 @@ var signal_strength_default = {
|
|
|
39733
39739
|
precision: 0.8476,
|
|
39734
39740
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39735
39741
|
verdict: "USEFUL",
|
|
39736
|
-
_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."
|
|
39742
|
+
_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.",
|
|
39743
|
+
aiSpecific: true
|
|
39737
39744
|
},
|
|
39738
39745
|
"logic/optimistic-no-rollback": {
|
|
39739
39746
|
recall: 12e-4,
|
|
@@ -39742,7 +39749,8 @@ var signal_strength_default = {
|
|
|
39742
39749
|
precision: 0.824,
|
|
39743
39750
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39744
39751
|
verdict: "USEFUL",
|
|
39745
|
-
_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."
|
|
39752
|
+
_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.",
|
|
39753
|
+
aiSpecific: true
|
|
39746
39754
|
},
|
|
39747
39755
|
"logic/zombie-state": {
|
|
39748
39756
|
recall: 1e-4,
|
|
@@ -39751,7 +39759,8 @@ var signal_strength_default = {
|
|
|
39751
39759
|
precision: 0.9231,
|
|
39752
39760
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39753
39761
|
verdict: "USEFUL",
|
|
39754
|
-
_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."
|
|
39762
|
+
_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.",
|
|
39763
|
+
aiSpecific: true
|
|
39755
39764
|
},
|
|
39756
39765
|
"logic/math-gini-class-usage": {
|
|
39757
39766
|
recall: 13e-4,
|
|
@@ -39760,7 +39769,8 @@ var signal_strength_default = {
|
|
|
39760
39769
|
precision: 0.8683,
|
|
39761
39770
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39762
39771
|
verdict: "USEFUL",
|
|
39763
|
-
_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."
|
|
39772
|
+
_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.",
|
|
39773
|
+
aiSpecific: true
|
|
39764
39774
|
},
|
|
39765
39775
|
"visual/math-color-cluster": {
|
|
39766
39776
|
recall: 2e-4,
|
|
@@ -39769,7 +39779,8 @@ var signal_strength_default = {
|
|
|
39769
39779
|
precision: 0.9206,
|
|
39770
39780
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39771
39781
|
verdict: "USEFUL",
|
|
39772
|
-
_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."
|
|
39782
|
+
_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.",
|
|
39783
|
+
aiSpecific: true
|
|
39773
39784
|
},
|
|
39774
39785
|
"visual/math-default-font": {
|
|
39775
39786
|
recall: 13e-4,
|
|
@@ -39778,7 +39789,8 @@ var signal_strength_default = {
|
|
|
39778
39789
|
precision: 0.8151,
|
|
39779
39790
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39780
39791
|
verdict: "USEFUL",
|
|
39781
|
-
_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."
|
|
39792
|
+
_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.",
|
|
39793
|
+
aiSpecific: true
|
|
39782
39794
|
},
|
|
39783
39795
|
"visual/math-gradient-hue-rotation": {
|
|
39784
39796
|
recall: 0,
|
|
@@ -39788,7 +39800,8 @@ var signal_strength_default = {
|
|
|
39788
39800
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39789
39801
|
verdict: "DORMANT",
|
|
39790
39802
|
defaultOff: true,
|
|
39791
|
-
_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.)"
|
|
39803
|
+
_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.)",
|
|
39804
|
+
aiSpecific: true
|
|
39792
39805
|
},
|
|
39793
39806
|
"visual/math-rounded-entropy": {
|
|
39794
39807
|
recall: 37e-4,
|
|
@@ -39797,7 +39810,8 @@ var signal_strength_default = {
|
|
|
39797
39810
|
precision: 0.9339,
|
|
39798
39811
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39799
39812
|
verdict: "USEFUL",
|
|
39800
|
-
_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."
|
|
39813
|
+
_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.",
|
|
39814
|
+
aiSpecific: true
|
|
39801
39815
|
},
|
|
39802
39816
|
"visual/math-font-entropy": {
|
|
39803
39817
|
recall: 45e-4,
|
|
@@ -39806,7 +39820,8 @@ var signal_strength_default = {
|
|
|
39806
39820
|
precision: 0.8114,
|
|
39807
39821
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39808
39822
|
verdict: "USEFUL",
|
|
39809
|
-
_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."
|
|
39823
|
+
_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.",
|
|
39824
|
+
aiSpecific: true
|
|
39810
39825
|
},
|
|
39811
39826
|
"visual/math-spacing-entropy": {
|
|
39812
39827
|
recall: 18e-4,
|
|
@@ -39815,7 +39830,8 @@ var signal_strength_default = {
|
|
|
39815
39830
|
precision: 0.7959,
|
|
39816
39831
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39817
39832
|
verdict: "USEFUL",
|
|
39818
|
-
_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."
|
|
39833
|
+
_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.",
|
|
39834
|
+
aiSpecific: true
|
|
39819
39835
|
},
|
|
39820
39836
|
"visual/clamp-soup": {
|
|
39821
39837
|
recall: 0,
|
|
@@ -39825,7 +39841,8 @@ var signal_strength_default = {
|
|
|
39825
39841
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39826
39842
|
verdict: "DORMANT",
|
|
39827
39843
|
defaultOff: true,
|
|
39828
|
-
_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.)"
|
|
39844
|
+
_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.)",
|
|
39845
|
+
aiSpecific: true
|
|
39829
39846
|
},
|
|
39830
39847
|
"component/giant-component": {
|
|
39831
39848
|
recall: 0.0176,
|
|
@@ -39834,7 +39851,8 @@ var signal_strength_default = {
|
|
|
39834
39851
|
precision: 0.7485,
|
|
39835
39852
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39836
39853
|
verdict: "USEFUL",
|
|
39837
|
-
_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."
|
|
39854
|
+
_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.",
|
|
39855
|
+
aiSpecific: true
|
|
39838
39856
|
},
|
|
39839
39857
|
"component/shadcn-prop-mismatch": {
|
|
39840
39858
|
recall: 13e-4,
|
|
@@ -39843,7 +39861,8 @@ var signal_strength_default = {
|
|
|
39843
39861
|
precision: 0.929,
|
|
39844
39862
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39845
39863
|
verdict: "USEFUL",
|
|
39846
|
-
_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."
|
|
39864
|
+
_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.",
|
|
39865
|
+
aiSpecific: true
|
|
39847
39866
|
},
|
|
39848
39867
|
"layout/math-grid-uniformity": {
|
|
39849
39868
|
recall: 3e-4,
|
|
@@ -39852,7 +39871,8 @@ var signal_strength_default = {
|
|
|
39852
39871
|
precision: 0.6907,
|
|
39853
39872
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39854
39873
|
verdict: "OK",
|
|
39855
|
-
_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."
|
|
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.",
|
|
39875
|
+
aiSpecific: true
|
|
39856
39876
|
},
|
|
39857
39877
|
"layout/math-element-uniformity": {
|
|
39858
39878
|
recall: 28e-4,
|
|
@@ -39861,7 +39881,8 @@ var signal_strength_default = {
|
|
|
39861
39881
|
precision: 0.7475,
|
|
39862
39882
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39863
39883
|
verdict: "USEFUL",
|
|
39864
|
-
_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."
|
|
39884
|
+
_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.",
|
|
39885
|
+
aiSpecific: true
|
|
39865
39886
|
},
|
|
39866
39887
|
"typo/math-button-label-uniformity": {
|
|
39867
39888
|
recall: 2e-4,
|
|
@@ -39870,7 +39891,8 @@ var signal_strength_default = {
|
|
|
39870
39891
|
precision: 0.6379,
|
|
39871
39892
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39872
39893
|
verdict: "HYGIENE",
|
|
39873
|
-
_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."
|
|
39894
|
+
_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.",
|
|
39895
|
+
aiSpecific: false
|
|
39874
39896
|
},
|
|
39875
39897
|
"perf/css-bloat": {
|
|
39876
39898
|
recall: 0.0117,
|
|
@@ -39879,7 +39901,8 @@ var signal_strength_default = {
|
|
|
39879
39901
|
precision: 0.8252,
|
|
39880
39902
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39881
39903
|
verdict: "HYGIENE",
|
|
39882
|
-
_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."
|
|
39904
|
+
_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.",
|
|
39905
|
+
aiSpecific: false
|
|
39883
39906
|
},
|
|
39884
39907
|
"wcag/focus-appearance": {
|
|
39885
39908
|
recall: 26e-4,
|
|
@@ -39888,7 +39911,8 @@ var signal_strength_default = {
|
|
|
39888
39911
|
precision: 0.9623,
|
|
39889
39912
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39890
39913
|
verdict: "HYGIENE",
|
|
39891
|
-
_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."
|
|
39914
|
+
_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.",
|
|
39915
|
+
aiSpecific: false
|
|
39892
39916
|
},
|
|
39893
39917
|
"wcag/target-size": {
|
|
39894
39918
|
recall: 0,
|
|
@@ -39898,7 +39922,8 @@ var signal_strength_default = {
|
|
|
39898
39922
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39899
39923
|
verdict: "DORMANT",
|
|
39900
39924
|
defaultOff: true,
|
|
39901
|
-
_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.)"
|
|
39925
|
+
_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.)",
|
|
39926
|
+
aiSpecific: false
|
|
39902
39927
|
},
|
|
39903
39928
|
"component/multiple-components-per-file": {
|
|
39904
39929
|
recall: 0.0681,
|
|
@@ -39907,7 +39932,8 @@ var signal_strength_default = {
|
|
|
39907
39932
|
precision: 0.6294,
|
|
39908
39933
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39909
39934
|
verdict: "HYGIENE",
|
|
39910
|
-
_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."
|
|
39935
|
+
_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.",
|
|
39936
|
+
aiSpecific: false
|
|
39911
39937
|
},
|
|
39912
39938
|
"context/import-path-mismatch": {
|
|
39913
39939
|
recall: 0.0739,
|
|
@@ -39916,7 +39942,8 @@ var signal_strength_default = {
|
|
|
39916
39942
|
precision: 0.8079,
|
|
39917
39943
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39918
39944
|
verdict: "HYGIENE",
|
|
39919
|
-
_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."
|
|
39945
|
+
_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.",
|
|
39946
|
+
aiSpecific: false
|
|
39920
39947
|
},
|
|
39921
39948
|
"logic/key-prop-missing": {
|
|
39922
39949
|
recall: 17e-4,
|
|
@@ -39925,7 +39952,8 @@ var signal_strength_default = {
|
|
|
39925
39952
|
precision: 0.6246,
|
|
39926
39953
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39927
39954
|
verdict: "HYGIENE",
|
|
39928
|
-
_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."
|
|
39955
|
+
_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.",
|
|
39956
|
+
aiSpecific: false
|
|
39929
39957
|
},
|
|
39930
39958
|
"logic/math-variable-name-entropy": {
|
|
39931
39959
|
recall: 2e-4,
|
|
@@ -39934,7 +39962,8 @@ var signal_strength_default = {
|
|
|
39934
39962
|
precision: 0.5806,
|
|
39935
39963
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39936
39964
|
verdict: "HYGIENE",
|
|
39937
|
-
_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."
|
|
39965
|
+
_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.",
|
|
39966
|
+
aiSpecific: false
|
|
39938
39967
|
},
|
|
39939
39968
|
"security/public-admin-route": {
|
|
39940
39969
|
recall: 28e-4,
|
|
@@ -39944,7 +39973,8 @@ var signal_strength_default = {
|
|
|
39944
39973
|
lastCalibratedAt: "2026-06-26T22:30:00Z",
|
|
39945
39974
|
verdict: "HYGIENE",
|
|
39946
39975
|
_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]",
|
|
39947
|
-
defaultOff: true
|
|
39976
|
+
defaultOff: true,
|
|
39977
|
+
aiSpecific: false
|
|
39948
39978
|
},
|
|
39949
39979
|
"security/unsafe-html-render": {
|
|
39950
39980
|
recall: 13e-4,
|
|
@@ -39953,7 +39983,8 @@ var signal_strength_default = {
|
|
|
39953
39983
|
precision: 0.661,
|
|
39954
39984
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39955
39985
|
verdict: "HYGIENE",
|
|
39956
|
-
_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."
|
|
39986
|
+
_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.",
|
|
39987
|
+
aiSpecific: false
|
|
39957
39988
|
},
|
|
39958
39989
|
"visual/naturalness-anomaly": {
|
|
39959
39990
|
recall: 0.1645,
|
|
@@ -39962,7 +39993,8 @@ var signal_strength_default = {
|
|
|
39962
39993
|
precision: 0.7755,
|
|
39963
39994
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39964
39995
|
verdict: "USEFUL",
|
|
39965
|
-
_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."
|
|
39996
|
+
_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.",
|
|
39997
|
+
aiSpecific: true
|
|
39966
39998
|
},
|
|
39967
39999
|
"perf/halstead-anomaly": {
|
|
39968
40000
|
recall: 0,
|
|
@@ -39971,7 +40003,8 @@ var signal_strength_default = {
|
|
|
39971
40003
|
precision: 0.75,
|
|
39972
40004
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
39973
40005
|
verdict: "USEFUL",
|
|
39974
|
-
_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."
|
|
40006
|
+
_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.",
|
|
40007
|
+
aiSpecific: true
|
|
39975
40008
|
},
|
|
39976
40009
|
"arch/astro-island-leak": {
|
|
39977
40010
|
recall: 0,
|
|
@@ -39981,7 +40014,8 @@ var signal_strength_default = {
|
|
|
39981
40014
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39982
40015
|
verdict: "DORMANT",
|
|
39983
40016
|
defaultOff: true,
|
|
39984
|
-
_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.)"
|
|
40017
|
+
_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.)",
|
|
40018
|
+
aiSpecific: true
|
|
39985
40019
|
},
|
|
39986
40020
|
"logic/qwik-hook-leak": {
|
|
39987
40021
|
recall: 0,
|
|
@@ -39991,7 +40025,8 @@ var signal_strength_default = {
|
|
|
39991
40025
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
39992
40026
|
verdict: "DORMANT",
|
|
39993
40027
|
defaultOff: true,
|
|
39994
|
-
_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.)"
|
|
40028
|
+
_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.)",
|
|
40029
|
+
aiSpecific: true
|
|
39995
40030
|
},
|
|
39996
40031
|
"test/missing-edge-case": {
|
|
39997
40032
|
recall: 0,
|
|
@@ -40001,7 +40036,8 @@ var signal_strength_default = {
|
|
|
40001
40036
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40002
40037
|
verdict: "DORMANT",
|
|
40003
40038
|
defaultOff: true,
|
|
40004
|
-
_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.)"
|
|
40039
|
+
_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.)",
|
|
40040
|
+
aiSpecific: true
|
|
40005
40041
|
},
|
|
40006
40042
|
"typo/calc-fontsize": {
|
|
40007
40043
|
recall: 0,
|
|
@@ -40011,7 +40047,8 @@ var signal_strength_default = {
|
|
|
40011
40047
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40012
40048
|
verdict: "DORMANT",
|
|
40013
40049
|
defaultOff: true,
|
|
40014
|
-
_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).)"
|
|
40050
|
+
_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).)",
|
|
40051
|
+
aiSpecific: false
|
|
40015
40052
|
},
|
|
40016
40053
|
"typo/clamp-offscale": {
|
|
40017
40054
|
recall: 0,
|
|
@@ -40021,7 +40058,8 @@ var signal_strength_default = {
|
|
|
40021
40058
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40022
40059
|
verdict: "DORMANT",
|
|
40023
40060
|
defaultOff: true,
|
|
40024
|
-
_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.)"
|
|
40061
|
+
_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.)",
|
|
40062
|
+
aiSpecific: false
|
|
40025
40063
|
},
|
|
40026
40064
|
"typo/math-cta-vocabulary": {
|
|
40027
40065
|
recall: 0,
|
|
@@ -40031,7 +40069,8 @@ var signal_strength_default = {
|
|
|
40031
40069
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40032
40070
|
verdict: "DORMANT",
|
|
40033
40071
|
defaultOff: true,
|
|
40034
|
-
_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.)"
|
|
40072
|
+
_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.)",
|
|
40073
|
+
aiSpecific: true
|
|
40035
40074
|
},
|
|
40036
40075
|
"layout/forced-layout": {
|
|
40037
40076
|
recall: 0,
|
|
@@ -40041,7 +40080,8 @@ var signal_strength_default = {
|
|
|
40041
40080
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40042
40081
|
verdict: "DORMANT",
|
|
40043
40082
|
defaultOff: true,
|
|
40044
|
-
_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.)"
|
|
40083
|
+
_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.)",
|
|
40084
|
+
aiSpecific: true
|
|
40045
40085
|
},
|
|
40046
40086
|
"visual/generic-centering": {
|
|
40047
40087
|
recall: 0,
|
|
@@ -40051,7 +40091,8 @@ var signal_strength_default = {
|
|
|
40051
40091
|
lastCalibratedAt: "2026-06-25T00:00:00Z",
|
|
40052
40092
|
verdict: "DORMANT",
|
|
40053
40093
|
defaultOff: true,
|
|
40054
|
-
_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.)"
|
|
40094
|
+
_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.)",
|
|
40095
|
+
aiSpecific: true
|
|
40055
40096
|
},
|
|
40056
40097
|
"product/terminology-drift": {
|
|
40057
40098
|
recall: 85e-4,
|
|
@@ -40060,7 +40101,8 @@ var signal_strength_default = {
|
|
|
40060
40101
|
precision: 0.7956,
|
|
40061
40102
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40062
40103
|
verdict: "HYGIENE",
|
|
40063
|
-
_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."
|
|
40104
|
+
_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.",
|
|
40105
|
+
aiSpecific: false
|
|
40064
40106
|
},
|
|
40065
40107
|
"product/ux-pattern-fragmentation": {
|
|
40066
40108
|
recall: 1e-4,
|
|
@@ -40069,7 +40111,8 @@ var signal_strength_default = {
|
|
|
40069
40111
|
precision: 0.8,
|
|
40070
40112
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40071
40113
|
verdict: "USEFUL",
|
|
40072
|
-
_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."
|
|
40114
|
+
_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.",
|
|
40115
|
+
aiSpecific: true
|
|
40073
40116
|
},
|
|
40074
40117
|
"security/sql-construction": {
|
|
40075
40118
|
recall: 3e-3,
|
|
@@ -40078,7 +40121,8 @@ var signal_strength_default = {
|
|
|
40078
40121
|
precision: 0.6788,
|
|
40079
40122
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40080
40123
|
verdict: "OK",
|
|
40081
|
-
_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."
|
|
40124
|
+
_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.",
|
|
40125
|
+
aiSpecific: true
|
|
40082
40126
|
},
|
|
40083
40127
|
"security/missing-auth-check": {
|
|
40084
40128
|
recall: 63e-4,
|
|
@@ -40087,7 +40131,8 @@ var signal_strength_default = {
|
|
|
40087
40131
|
precision: 0.9247,
|
|
40088
40132
|
lastCalibratedAt: "2026-06-26T22:30:00Z",
|
|
40089
40133
|
verdict: "USEFUL",
|
|
40090
|
-
_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."
|
|
40134
|
+
_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.",
|
|
40135
|
+
aiSpecific: false
|
|
40091
40136
|
},
|
|
40092
40137
|
"security/dangerous-cors": {
|
|
40093
40138
|
recall: 5e-4,
|
|
@@ -40097,7 +40142,8 @@ var signal_strength_default = {
|
|
|
40097
40142
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40098
40143
|
verdict: "NOISY",
|
|
40099
40144
|
_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.",
|
|
40100
|
-
defaultOff: true
|
|
40145
|
+
defaultOff: true,
|
|
40146
|
+
aiSpecific: true
|
|
40101
40147
|
},
|
|
40102
40148
|
"test/duplicate-setup": {
|
|
40103
40149
|
recall: 1e-4,
|
|
@@ -40106,7 +40152,8 @@ var signal_strength_default = {
|
|
|
40106
40152
|
precision: 0.8235,
|
|
40107
40153
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40108
40154
|
verdict: "USEFUL",
|
|
40109
|
-
_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."
|
|
40155
|
+
_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.",
|
|
40156
|
+
aiSpecific: true
|
|
40110
40157
|
},
|
|
40111
40158
|
"logic/ghost-defensive": {
|
|
40112
40159
|
recall: 1e-4,
|
|
@@ -40115,7 +40162,8 @@ var signal_strength_default = {
|
|
|
40115
40162
|
precision: 0.8824,
|
|
40116
40163
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40117
40164
|
verdict: "USEFUL",
|
|
40118
|
-
_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."
|
|
40165
|
+
_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.",
|
|
40166
|
+
aiSpecific: true
|
|
40119
40167
|
},
|
|
40120
40168
|
"typo/calc-raw-px": {
|
|
40121
40169
|
recall: 0,
|
|
@@ -40124,7 +40172,8 @@ var signal_strength_default = {
|
|
|
40124
40172
|
precision: 0.75,
|
|
40125
40173
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40126
40174
|
verdict: "HYGIENE",
|
|
40127
|
-
_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."
|
|
40175
|
+
_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.",
|
|
40176
|
+
aiSpecific: false
|
|
40128
40177
|
},
|
|
40129
40178
|
"security/fail-open-auth": {
|
|
40130
40179
|
recall: 0,
|
|
@@ -40133,7 +40182,8 @@ var signal_strength_default = {
|
|
|
40133
40182
|
precision: 1,
|
|
40134
40183
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40135
40184
|
verdict: "USEFUL",
|
|
40136
|
-
_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."
|
|
40185
|
+
_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.",
|
|
40186
|
+
aiSpecific: true
|
|
40137
40187
|
},
|
|
40138
40188
|
"wcag/focus-obscured": {
|
|
40139
40189
|
recall: 33e-4,
|
|
@@ -40142,7 +40192,8 @@ var signal_strength_default = {
|
|
|
40142
40192
|
precision: 0.82,
|
|
40143
40193
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40144
40194
|
verdict: "HYGIENE",
|
|
40145
|
-
_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."
|
|
40195
|
+
_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.",
|
|
40196
|
+
aiSpecific: false
|
|
40146
40197
|
},
|
|
40147
40198
|
"visual/arbitrary-escape": {
|
|
40148
40199
|
recall: 25e-4,
|
|
@@ -40151,7 +40202,8 @@ var signal_strength_default = {
|
|
|
40151
40202
|
precision: 0.7802,
|
|
40152
40203
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40153
40204
|
verdict: "USEFUL",
|
|
40154
|
-
_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."
|
|
40205
|
+
_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.",
|
|
40206
|
+
aiSpecific: true
|
|
40155
40207
|
},
|
|
40156
40208
|
"security/hardcoded-secret": {
|
|
40157
40209
|
recall: 13e-4,
|
|
@@ -40160,7 +40212,8 @@ var signal_strength_default = {
|
|
|
40160
40212
|
precision: 0.6899,
|
|
40161
40213
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40162
40214
|
verdict: "OK",
|
|
40163
|
-
_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."
|
|
40215
|
+
_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.",
|
|
40216
|
+
aiSpecific: true
|
|
40164
40217
|
},
|
|
40165
40218
|
"visual/radius-scale-violation": {
|
|
40166
40219
|
recall: 4e-4,
|
|
@@ -40169,7 +40222,8 @@ var signal_strength_default = {
|
|
|
40169
40222
|
precision: 0.9697,
|
|
40170
40223
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40171
40224
|
verdict: "HYGIENE",
|
|
40172
|
-
_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."
|
|
40225
|
+
_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.",
|
|
40226
|
+
aiSpecific: false
|
|
40173
40227
|
},
|
|
40174
40228
|
"test/fake-placeholder": {
|
|
40175
40229
|
recall: 53e-4,
|
|
@@ -40178,7 +40232,8 @@ var signal_strength_default = {
|
|
|
40178
40232
|
precision: 0.7854,
|
|
40179
40233
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40180
40234
|
verdict: "USEFUL",
|
|
40181
|
-
_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."
|
|
40235
|
+
_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.",
|
|
40236
|
+
aiSpecific: true
|
|
40182
40237
|
},
|
|
40183
40238
|
"security/exposed-env-var": {
|
|
40184
40239
|
recall: 6e-4,
|
|
@@ -40187,7 +40242,8 @@ var signal_strength_default = {
|
|
|
40187
40242
|
precision: 0.5387,
|
|
40188
40243
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40189
40244
|
verdict: "HYGIENE",
|
|
40190
|
-
_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."
|
|
40245
|
+
_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.",
|
|
40246
|
+
aiSpecific: false
|
|
40191
40247
|
},
|
|
40192
40248
|
"perf/cls-image": {
|
|
40193
40249
|
recall: 2e-4,
|
|
@@ -40196,7 +40252,8 @@ var signal_strength_default = {
|
|
|
40196
40252
|
precision: 0.5104,
|
|
40197
40253
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40198
40254
|
verdict: "HYGIENE",
|
|
40199
|
-
_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."
|
|
40255
|
+
_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.",
|
|
40256
|
+
aiSpecific: false
|
|
40200
40257
|
},
|
|
40201
40258
|
"layout/gap-monopoly": {
|
|
40202
40259
|
recall: 4e-4,
|
|
@@ -40205,7 +40262,8 @@ var signal_strength_default = {
|
|
|
40205
40262
|
precision: 0.7928,
|
|
40206
40263
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40207
40264
|
verdict: "HYGIENE",
|
|
40208
|
-
_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."
|
|
40265
|
+
_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.",
|
|
40266
|
+
aiSpecific: false
|
|
40209
40267
|
},
|
|
40210
40268
|
"visual/spacing-scale-violation": {
|
|
40211
40269
|
recall: 83e-4,
|
|
@@ -40214,7 +40272,8 @@ var signal_strength_default = {
|
|
|
40214
40272
|
precision: 0.7342,
|
|
40215
40273
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40216
40274
|
verdict: "HYGIENE",
|
|
40217
|
-
_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."
|
|
40275
|
+
_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.",
|
|
40276
|
+
aiSpecific: false
|
|
40218
40277
|
},
|
|
40219
40278
|
"visual/inline-style-dominance": {
|
|
40220
40279
|
recall: 96e-4,
|
|
@@ -40223,7 +40282,8 @@ var signal_strength_default = {
|
|
|
40223
40282
|
precision: 0.6535,
|
|
40224
40283
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40225
40284
|
verdict: "HYGIENE",
|
|
40226
|
-
_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."
|
|
40285
|
+
_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.",
|
|
40286
|
+
aiSpecific: false
|
|
40227
40287
|
},
|
|
40228
40288
|
"layout/spacing-grid": {
|
|
40229
40289
|
recall: 2e-4,
|
|
@@ -40232,7 +40292,8 @@ var signal_strength_default = {
|
|
|
40232
40292
|
precision: 0.7222,
|
|
40233
40293
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40234
40294
|
verdict: "HYGIENE",
|
|
40235
|
-
_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."
|
|
40295
|
+
_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.",
|
|
40296
|
+
aiSpecific: false
|
|
40236
40297
|
},
|
|
40237
40298
|
"wcag/dragging-movements": {
|
|
40238
40299
|
recall: 0,
|
|
@@ -40241,7 +40302,8 @@ var signal_strength_default = {
|
|
|
40241
40302
|
precision: 0.4,
|
|
40242
40303
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40243
40304
|
verdict: "HYGIENE",
|
|
40244
|
-
_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."
|
|
40305
|
+
_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.",
|
|
40306
|
+
aiSpecific: false
|
|
40245
40307
|
},
|
|
40246
40308
|
"test/weak-assertion": {
|
|
40247
40309
|
recall: 0.0414,
|
|
@@ -40250,7 +40312,8 @@ var signal_strength_default = {
|
|
|
40250
40312
|
precision: 0.8622,
|
|
40251
40313
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40252
40314
|
verdict: "USEFUL",
|
|
40253
|
-
_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."
|
|
40315
|
+
_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.",
|
|
40316
|
+
aiSpecific: true
|
|
40254
40317
|
},
|
|
40255
40318
|
"logic/bayesian-conditional": {
|
|
40256
40319
|
recall: 0,
|
|
@@ -40260,7 +40323,8 @@ var signal_strength_default = {
|
|
|
40260
40323
|
lastCalibratedAt: "2026-06-27T00:00:00Z",
|
|
40261
40324
|
verdict: "DORMANT",
|
|
40262
40325
|
defaultOff: true,
|
|
40263
|
-
_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."
|
|
40326
|
+
_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.",
|
|
40327
|
+
aiSpecific: true
|
|
40264
40328
|
},
|
|
40265
40329
|
"logic/heaps-deviation": {
|
|
40266
40330
|
recall: 0.0122,
|
|
@@ -40269,7 +40333,8 @@ var signal_strength_default = {
|
|
|
40269
40333
|
precision: 0.5461,
|
|
40270
40334
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40271
40335
|
verdict: "HYGIENE",
|
|
40272
|
-
_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."
|
|
40336
|
+
_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.",
|
|
40337
|
+
aiSpecific: false
|
|
40273
40338
|
},
|
|
40274
40339
|
"logic/ks-distribution-shift": {
|
|
40275
40340
|
recall: 0.6375,
|
|
@@ -40278,7 +40343,8 @@ var signal_strength_default = {
|
|
|
40278
40343
|
precision: 0.7096,
|
|
40279
40344
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40280
40345
|
verdict: "HYGIENE",
|
|
40281
|
-
_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."
|
|
40346
|
+
_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.",
|
|
40347
|
+
aiSpecific: false
|
|
40282
40348
|
},
|
|
40283
40349
|
"logic/zipf-slope-anomaly": {
|
|
40284
40350
|
recall: 0.0156,
|
|
@@ -40287,7 +40353,8 @@ var signal_strength_default = {
|
|
|
40287
40353
|
precision: 0.6983,
|
|
40288
40354
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40289
40355
|
verdict: "HYGIENE",
|
|
40290
|
-
_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."
|
|
40356
|
+
_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.",
|
|
40357
|
+
aiSpecific: false
|
|
40291
40358
|
},
|
|
40292
40359
|
"ai/markdown-leakage": {
|
|
40293
40360
|
recall: 0,
|
|
@@ -40296,7 +40363,8 @@ var signal_strength_default = {
|
|
|
40296
40363
|
precision: 0.7143,
|
|
40297
40364
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40298
40365
|
verdict: "OK",
|
|
40299
|
-
_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."
|
|
40366
|
+
_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.",
|
|
40367
|
+
aiSpecific: true
|
|
40300
40368
|
},
|
|
40301
40369
|
"ai/comment-ratio": {
|
|
40302
40370
|
recall: 0.2523,
|
|
@@ -40305,7 +40373,8 @@ var signal_strength_default = {
|
|
|
40305
40373
|
precision: 0.6687,
|
|
40306
40374
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40307
40375
|
verdict: "OK",
|
|
40308
|
-
_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."
|
|
40376
|
+
_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.",
|
|
40377
|
+
aiSpecific: true
|
|
40309
40378
|
},
|
|
40310
40379
|
"ai/whitespace-regularity": {
|
|
40311
40380
|
recall: 0.0731,
|
|
@@ -40315,7 +40384,8 @@ var signal_strength_default = {
|
|
|
40315
40384
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40316
40385
|
verdict: "NOISY",
|
|
40317
40386
|
_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.",
|
|
40318
|
-
defaultOff: true
|
|
40387
|
+
defaultOff: true,
|
|
40388
|
+
aiSpecific: true
|
|
40319
40389
|
},
|
|
40320
40390
|
"ai/text-like-ratio": {
|
|
40321
40391
|
recall: 0,
|
|
@@ -40324,7 +40394,8 @@ var signal_strength_default = {
|
|
|
40324
40394
|
precision: 0.75,
|
|
40325
40395
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40326
40396
|
verdict: "USEFUL",
|
|
40327
|
-
_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."
|
|
40397
|
+
_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.",
|
|
40398
|
+
aiSpecific: true
|
|
40328
40399
|
},
|
|
40329
40400
|
"ai/errors-near-eof": {
|
|
40330
40401
|
recall: 0.0697,
|
|
@@ -40334,7 +40405,8 @@ var signal_strength_default = {
|
|
|
40334
40405
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40335
40406
|
verdict: "NOISY",
|
|
40336
40407
|
_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.",
|
|
40337
|
-
defaultOff: true
|
|
40408
|
+
defaultOff: true,
|
|
40409
|
+
aiSpecific: true
|
|
40338
40410
|
},
|
|
40339
40411
|
"ai/any-density": {
|
|
40340
40412
|
recall: 55e-4,
|
|
@@ -40344,7 +40416,8 @@ var signal_strength_default = {
|
|
|
40344
40416
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40345
40417
|
verdict: "NOISY",
|
|
40346
40418
|
_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.",
|
|
40347
|
-
defaultOff: true
|
|
40419
|
+
defaultOff: true,
|
|
40420
|
+
aiSpecific: true
|
|
40348
40421
|
},
|
|
40349
40422
|
"ai/renyi-profile": {
|
|
40350
40423
|
recall: 0,
|
|
@@ -40354,7 +40427,8 @@ var signal_strength_default = {
|
|
|
40354
40427
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40355
40428
|
verdict: "INVERTED",
|
|
40356
40429
|
_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.",
|
|
40357
|
-
defaultOff: true
|
|
40430
|
+
defaultOff: true,
|
|
40431
|
+
aiSpecific: true
|
|
40358
40432
|
},
|
|
40359
40433
|
"ai/log-rank-histogram": {
|
|
40360
40434
|
recall: 0,
|
|
@@ -40363,7 +40437,8 @@ var signal_strength_default = {
|
|
|
40363
40437
|
precision: 0,
|
|
40364
40438
|
lastCalibratedAt: "2026-06-27T00:00:00Z",
|
|
40365
40439
|
verdict: "OK",
|
|
40366
|
-
_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)."
|
|
40440
|
+
_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).",
|
|
40441
|
+
aiSpecific: true
|
|
40367
40442
|
},
|
|
40368
40443
|
"ai/segment-surprisal-cv": {
|
|
40369
40444
|
recall: 0.182,
|
|
@@ -40372,7 +40447,8 @@ var signal_strength_default = {
|
|
|
40372
40447
|
precision: 0.7438,
|
|
40373
40448
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40374
40449
|
verdict: "USEFUL",
|
|
40375
|
-
_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."
|
|
40450
|
+
_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.",
|
|
40451
|
+
aiSpecific: true
|
|
40376
40452
|
},
|
|
40377
40453
|
"ai/compression-profile": {
|
|
40378
40454
|
recall: 0.3139,
|
|
@@ -40381,7 +40457,8 @@ var signal_strength_default = {
|
|
|
40381
40457
|
precision: 0.732,
|
|
40382
40458
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40383
40459
|
verdict: "USEFUL",
|
|
40384
|
-
_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."
|
|
40460
|
+
_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.",
|
|
40461
|
+
aiSpecific: true
|
|
40385
40462
|
},
|
|
40386
40463
|
"ai/tailwind-color-overuse": {
|
|
40387
40464
|
recall: 0.0216,
|
|
@@ -40390,7 +40467,8 @@ var signal_strength_default = {
|
|
|
40390
40467
|
precision: 0.8436,
|
|
40391
40468
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40392
40469
|
verdict: "USEFUL",
|
|
40393
|
-
_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."
|
|
40470
|
+
_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.",
|
|
40471
|
+
aiSpecific: true
|
|
40394
40472
|
},
|
|
40395
40473
|
"ai/default-react-stack": {
|
|
40396
40474
|
recall: 1e-3,
|
|
@@ -40399,7 +40477,8 @@ var signal_strength_default = {
|
|
|
40399
40477
|
precision: 0.9957,
|
|
40400
40478
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40401
40479
|
verdict: "USEFUL",
|
|
40402
|
-
_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."
|
|
40480
|
+
_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.",
|
|
40481
|
+
aiSpecific: true
|
|
40403
40482
|
},
|
|
40404
40483
|
"ai/library-reinvention": {
|
|
40405
40484
|
recall: 3e-4,
|
|
@@ -40408,7 +40487,8 @@ var signal_strength_default = {
|
|
|
40408
40487
|
precision: 0.9275,
|
|
40409
40488
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40410
40489
|
verdict: "USEFUL",
|
|
40411
|
-
_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."
|
|
40490
|
+
_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.",
|
|
40491
|
+
aiSpecific: true
|
|
40412
40492
|
},
|
|
40413
40493
|
"ai/state-default-overuse": {
|
|
40414
40494
|
recall: 29e-4,
|
|
@@ -40417,7 +40497,8 @@ var signal_strength_default = {
|
|
|
40417
40497
|
precision: 0.8161,
|
|
40418
40498
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40419
40499
|
verdict: "USEFUL",
|
|
40420
|
-
_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."
|
|
40500
|
+
_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.",
|
|
40501
|
+
aiSpecific: true
|
|
40421
40502
|
},
|
|
40422
40503
|
"ai/fetch-default-overuse": {
|
|
40423
40504
|
recall: 28e-4,
|
|
@@ -40426,7 +40507,8 @@ var signal_strength_default = {
|
|
|
40426
40507
|
precision: 0.8976,
|
|
40427
40508
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40428
40509
|
verdict: "USEFUL",
|
|
40429
|
-
_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."
|
|
40510
|
+
_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.",
|
|
40511
|
+
aiSpecific: true
|
|
40430
40512
|
},
|
|
40431
40513
|
"ai/console-debug-storm": {
|
|
40432
40514
|
recall: 8e-3,
|
|
@@ -40435,7 +40517,8 @@ var signal_strength_default = {
|
|
|
40435
40517
|
precision: 0.9161,
|
|
40436
40518
|
lastCalibratedAt: "2026-06-27T12:00:00Z",
|
|
40437
40519
|
verdict: "USEFUL",
|
|
40438
|
-
_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."
|
|
40520
|
+
_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.",
|
|
40521
|
+
aiSpecific: true
|
|
40439
40522
|
},
|
|
40440
40523
|
"db/missing-fk-index": {
|
|
40441
40524
|
recall: 0,
|
|
@@ -40445,7 +40528,8 @@ var signal_strength_default = {
|
|
|
40445
40528
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40446
40529
|
verdict: "DORMANT",
|
|
40447
40530
|
defaultOff: true,
|
|
40448
|
-
_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.)"
|
|
40531
|
+
_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.)",
|
|
40532
|
+
aiSpecific: false
|
|
40449
40533
|
},
|
|
40450
40534
|
"db/duplicate-index": {
|
|
40451
40535
|
recall: 0,
|
|
@@ -40455,7 +40539,8 @@ var signal_strength_default = {
|
|
|
40455
40539
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40456
40540
|
verdict: "DORMANT",
|
|
40457
40541
|
defaultOff: true,
|
|
40458
|
-
_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.)"
|
|
40542
|
+
_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.)",
|
|
40543
|
+
aiSpecific: false
|
|
40459
40544
|
},
|
|
40460
40545
|
"db/missing-not-null": {
|
|
40461
40546
|
recall: 0,
|
|
@@ -40465,7 +40550,8 @@ var signal_strength_default = {
|
|
|
40465
40550
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40466
40551
|
verdict: "DORMANT",
|
|
40467
40552
|
defaultOff: true,
|
|
40468
|
-
_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.)"
|
|
40553
|
+
_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.)",
|
|
40554
|
+
aiSpecific: false
|
|
40469
40555
|
},
|
|
40470
40556
|
"db/enum-sprawl": {
|
|
40471
40557
|
recall: 0,
|
|
@@ -40475,7 +40561,8 @@ var signal_strength_default = {
|
|
|
40475
40561
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40476
40562
|
verdict: "DORMANT",
|
|
40477
40563
|
defaultOff: true,
|
|
40478
|
-
_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.)"
|
|
40564
|
+
_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.)",
|
|
40565
|
+
aiSpecific: false
|
|
40479
40566
|
},
|
|
40480
40567
|
"db/naming-inconsistency": {
|
|
40481
40568
|
recall: 0,
|
|
@@ -40485,7 +40572,8 @@ var signal_strength_default = {
|
|
|
40485
40572
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40486
40573
|
verdict: "DORMANT",
|
|
40487
40574
|
defaultOff: true,
|
|
40488
|
-
_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.)"
|
|
40575
|
+
_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.)",
|
|
40576
|
+
aiSpecific: false
|
|
40489
40577
|
},
|
|
40490
40578
|
"db/sql-concat": {
|
|
40491
40579
|
recall: 0,
|
|
@@ -40495,7 +40583,8 @@ var signal_strength_default = {
|
|
|
40495
40583
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40496
40584
|
verdict: "DORMANT",
|
|
40497
40585
|
defaultOff: true,
|
|
40498
|
-
_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.)"
|
|
40586
|
+
_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.)",
|
|
40587
|
+
aiSpecific: true
|
|
40499
40588
|
},
|
|
40500
40589
|
"docs/stale-package-reference": {
|
|
40501
40590
|
recall: 0,
|
|
@@ -40505,7 +40594,8 @@ var signal_strength_default = {
|
|
|
40505
40594
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40506
40595
|
verdict: "DORMANT",
|
|
40507
40596
|
defaultOff: true,
|
|
40508
|
-
_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.)"
|
|
40597
|
+
_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.)",
|
|
40598
|
+
aiSpecific: false
|
|
40509
40599
|
},
|
|
40510
40600
|
"docs/stale-function-reference": {
|
|
40511
40601
|
recall: 0,
|
|
@@ -40515,7 +40605,8 @@ var signal_strength_default = {
|
|
|
40515
40605
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40516
40606
|
verdict: "DORMANT",
|
|
40517
40607
|
defaultOff: true,
|
|
40518
|
-
_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.)"
|
|
40608
|
+
_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.)",
|
|
40609
|
+
aiSpecific: false
|
|
40519
40610
|
},
|
|
40520
40611
|
"docs/expired-code-example": {
|
|
40521
40612
|
recall: 0,
|
|
@@ -40525,7 +40616,8 @@ var signal_strength_default = {
|
|
|
40525
40616
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40526
40617
|
verdict: "DORMANT",
|
|
40527
40618
|
defaultOff: true,
|
|
40528
|
-
_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.)"
|
|
40619
|
+
_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.)",
|
|
40620
|
+
aiSpecific: false
|
|
40529
40621
|
},
|
|
40530
40622
|
"docs/broken-link": {
|
|
40531
40623
|
recall: 0,
|
|
@@ -40535,7 +40627,8 @@ var signal_strength_default = {
|
|
|
40535
40627
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40536
40628
|
verdict: "DORMANT",
|
|
40537
40629
|
defaultOff: true,
|
|
40538
|
-
_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.)"
|
|
40630
|
+
_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.)",
|
|
40631
|
+
aiSpecific: false
|
|
40539
40632
|
},
|
|
40540
40633
|
"security/eval": {
|
|
40541
40634
|
recall: 0,
|
|
@@ -40545,7 +40638,8 @@ var signal_strength_default = {
|
|
|
40545
40638
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40546
40639
|
verdict: "DORMANT",
|
|
40547
40640
|
defaultOff: true,
|
|
40548
|
-
_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.)"
|
|
40641
|
+
_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.)",
|
|
40642
|
+
aiSpecific: false
|
|
40549
40643
|
},
|
|
40550
40644
|
"security/localstorage-token": {
|
|
40551
40645
|
recall: 0,
|
|
@@ -40555,7 +40649,8 @@ var signal_strength_default = {
|
|
|
40555
40649
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40556
40650
|
verdict: "DORMANT",
|
|
40557
40651
|
defaultOff: true,
|
|
40558
|
-
_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.)"
|
|
40652
|
+
_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.)",
|
|
40653
|
+
aiSpecific: false
|
|
40559
40654
|
},
|
|
40560
40655
|
"security/target-blank-no-noopener": {
|
|
40561
40656
|
recall: 0,
|
|
@@ -40565,7 +40660,8 @@ var signal_strength_default = {
|
|
|
40565
40660
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40566
40661
|
verdict: "DORMANT",
|
|
40567
40662
|
defaultOff: true,
|
|
40568
|
-
_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.)'
|
|
40663
|
+
_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.)',
|
|
40664
|
+
aiSpecific: false
|
|
40569
40665
|
},
|
|
40570
40666
|
"wcag/missing-alt": {
|
|
40571
40667
|
recall: 0,
|
|
@@ -40575,7 +40671,8 @@ var signal_strength_default = {
|
|
|
40575
40671
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40576
40672
|
verdict: "DORMANT",
|
|
40577
40673
|
defaultOff: true,
|
|
40578
|
-
_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.)'
|
|
40674
|
+
_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.)',
|
|
40675
|
+
aiSpecific: false
|
|
40579
40676
|
},
|
|
40580
40677
|
"typo/placeholder-text": {
|
|
40581
40678
|
recall: 0,
|
|
@@ -40585,7 +40682,8 @@ var signal_strength_default = {
|
|
|
40585
40682
|
lastCalibratedAt: "2026-06-30T00:00:00Z",
|
|
40586
40683
|
verdict: "DORMANT",
|
|
40587
40684
|
defaultOff: true,
|
|
40588
|
-
_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.)"
|
|
40685
|
+
_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.)",
|
|
40686
|
+
aiSpecific: false
|
|
40589
40687
|
}
|
|
40590
40688
|
};
|
|
40591
40689
|
|
|
@@ -40597,6 +40695,12 @@ function loadSignalStrength() {
|
|
|
40597
40695
|
}
|
|
40598
40696
|
|
|
40599
40697
|
// src/engine/worker.ts
|
|
40698
|
+
function buildParserCacheConfig(cwd) {
|
|
40699
|
+
const envVal = process.env.SLOP_AUDIT_CACHE;
|
|
40700
|
+
const enabled = envVal === "1" || envVal === "true";
|
|
40701
|
+
const root = process.env.SLOP_AUDIT_CACHE_ROOT ?? join12(cwd, ".slopbrick", "cache", "ast");
|
|
40702
|
+
return { enabled, root };
|
|
40703
|
+
}
|
|
40600
40704
|
function applyRuleOverrides(issues, rules) {
|
|
40601
40705
|
const result = [];
|
|
40602
40706
|
for (const issue of issues) {
|
|
@@ -40611,6 +40715,7 @@ function applyRuleOverrides(issues, rules) {
|
|
|
40611
40715
|
return result;
|
|
40612
40716
|
}
|
|
40613
40717
|
async function scanFile(filePath, config, registry, cwd = process.cwd()) {
|
|
40718
|
+
const cache = buildParserCacheConfig(cwd);
|
|
40614
40719
|
const ext = extname6(filePath).toLowerCase();
|
|
40615
40720
|
const UNSUPPORTED_LANGS = /* @__PURE__ */ new Set([
|
|
40616
40721
|
".swift",
|
|
@@ -40641,7 +40746,7 @@ async function scanFile(filePath, config, registry, cwd = process.cwd()) {
|
|
|
40641
40746
|
};
|
|
40642
40747
|
}
|
|
40643
40748
|
try {
|
|
40644
|
-
const { ast, source } = await parseFile(filePath);
|
|
40749
|
+
const { ast, source } = await parseFile(filePath, { cache });
|
|
40645
40750
|
const facts = extractFacts(filePath, ast, source, config.supportsRsc ?? true, config.framework ?? "react", config);
|
|
40646
40751
|
const activeRegistry = registry ?? new RuleRegistry();
|
|
40647
40752
|
if (!registry) {
|