mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-11 07:29:00 +02:00
Real captures from a human-initiated `npx impeccable install` in a scratch directory (engine 0.1.3, linux-x64), never a runtime download: - test/fixtures/impeccable-antipatterns.json: upstream crates/live/assets/antipatterns.json at 87d8f6d6 (the state engine-v0.1.3 shipped), 61 rules, source commit recorded in `_source`. - test/fixtures/impeccable-detect-sample.json: `detect --json` over gstack's planted-slop fixture (source mode), paths normalized. - test/fixtures/review-eval-design-slop.dom.html + impeccable-detect-dom-sample.json: the same page served locally, dumped through the browse engine with the shared DOM-dump script, then scanned. Pins the load-bearing assumption that the static engine reads inline <style> in a .html file: the DOM scan yields the same id set as the source scan. - lib/dom-dump-script.ts: the one dump script both browser engines evaluate (IIFE, no single quotes). Folds CSSOM rgb() back to author hex so palette rules still fire, and removes inlined <link> nodes so the engine does not warn about an unresolvable stylesheet. Both verified against the engine. - test/fixtures/impeccable-detect-help.txt + impeccable-captures.meta.json: the flags, exit codes, finding fields, and re-capture protocol. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
48 lines
2.6 KiB
JSON
48 lines
2.6 KiB
JSON
{
|
|
"capturedAt": "2026-09-08",
|
|
"engine": {
|
|
"version": "0.1.3",
|
|
"release": "engine-v0.1.3",
|
|
"platform": "linux-x64",
|
|
"installedBy": "npx impeccable install (human-initiated, scratch directory outside the repo)",
|
|
"binaryPath": "<skill>/scripts/bin/linux-x64/impeccable",
|
|
"binaryNote": "the engine is installed as a sibling of the launcher (<skill>/scripts/impeccable), not under ~/.impeccable/bin/, in a project-scoped install"
|
|
},
|
|
"registry": {
|
|
"file": "impeccable-antipatterns.json",
|
|
"upstream": "crates/live/assets/antipatterns.json",
|
|
"commit": "87d8f6d686782561fb572758d9a9bb8596a1a0e7",
|
|
"entries": 61,
|
|
"fields": ["id", "name", "category", "description"],
|
|
"note": "no severity or advisory field in the registry; advisory status (em-dash-overuse) is engine-side"
|
|
},
|
|
"captures": {
|
|
"impeccable-detect-sample.json": {
|
|
"mode": "source",
|
|
"command": "impeccable detect --json index.html styles.css",
|
|
"cwd": "a copy of test/fixtures/review-eval-design-slop.{html,css} named index.html + styles.css so the <link> resolves",
|
|
"exit": 2,
|
|
"stderrBytes": 0,
|
|
"pathsNormalized": { "index.html": "test/fixtures/review-eval-design-slop.html", "styles.css": "test/fixtures/review-eval-design-slop.css" }
|
|
},
|
|
"impeccable-detect-dom-sample.json": {
|
|
"mode": "dom",
|
|
"dump": "review-eval-design-slop.dom.html",
|
|
"dumpedWith": "browse goto http://127.0.0.1:<port>/index.html; browse eval dom-dump.js --out <tmp>/review-eval-design-slop.dom.html --raw (script: lib/dom-dump-script.ts DOM_DUMP_SCRIPT)",
|
|
"command": "impeccable detect --json review-eval-design-slop.dom.html",
|
|
"exit": 2,
|
|
"stderrBytes": 0,
|
|
"pathsNormalized": { "review-eval-design-slop.dom.html": "test/fixtures/review-eval-design-slop.dom.html", "http://127.0.0.1:<port>/": "http://127.0.0.1/" }
|
|
},
|
|
"impeccable-detect-help.txt": { "command": "impeccable detect --help" }
|
|
},
|
|
"findingFields": ["antipattern", "name", "description", "severity", "category", "file", "line", "snippet"],
|
|
"notes": [
|
|
"HTML-mode findings carry line 0; snippet is the locator",
|
|
"the static engine reads inline <style> in a .html file: the DOM dump yields the same id set as the source scan",
|
|
"without the rgb()->hex fold in the dump script the DOM scan loses ai-color-palette (CSSOM serializes hex as rgb)",
|
|
"a <link rel=stylesheet> left in the dump makes the engine warn on stderr about an unreadable stylesheet; the dump script removes inlined links",
|
|
"the planted fixture has no border-left, so side-tab never fires on it; ai-color-palette is the deterministic slop id"
|
|
]
|
|
}
|