{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-3a3033cfc711bffc", "name": "TODO/FIXME marker in shipping code \u2014 .github/skills/impeccable/scripts/live-browser.js:6746", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 .github/skills/impeccable/scripts/live-browser.js:6746"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-610cb56e7fefb5d9", "name": "Stray `console.log` in TS/JS \u2014 .github/skills/impeccable/scripts/live-browser.js:5297", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 .github/skills/impeccable/scripts/live-browser.js:5297"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-607e0ce321eccd2c", "name": "Stray `console.log` in TS/JS \u2014 .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js:4402", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js:4402"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c909d67206eaf898", "name": "TODO/FIXME marker in shipping code \u2014 src/pages/SiegeCore.jsx:41", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/pages/SiegeCore.jsx:41"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61b1eff78992d943", "name": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live.mjs:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live.mjs:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68b755131d4d88a0", "name": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-poll.mjs:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-poll.mjs:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-471fd2f2f8c5606f", "name": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/context-signals.mjs:23", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/context-signals.mjs:23"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c26f2c160c2807e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in .github/skills/impeccable/scripts/live-browser.js:479", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .github/skills/impeccable/scripts/live-browser.js:479"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d1c97d42aae1b33d", "name": "Insecure pattern 'domparser_html_parse' in .github/skills/impeccable/scripts/live-browser.js:4843", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in .github/skills/impeccable/scripts/live-browser.js:4843"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34ba2509cfb66613", "name": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-server.mjs:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-server.mjs:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9473265603da6442", "name": "Insecure pattern 'cors_wildcard' in .github/skills/impeccable/scripts/live-server.mjs:390", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in .github/skills/impeccable/scripts/live-server.mjs:390"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29462b899b921c92", "name": "Insecure pattern 'insert_adjacent_html' in .github/skills/impeccable/scripts/modern-screenshot.umd.js:7", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in .github/skills/impeccable/scripts/modern-screenshot.umd.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03c406baadcfb5b6", "name": "Insecure pattern 'direct_outerhtml_assignment' in .github/skills/impeccable/scripts/live-manual-edit-evidence.mjs:122", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in .github/skills/impeccable/scripts/live-manual-edit-evidence.mjs:122"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c07a8eab570c6e1", "name": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-copy-edit-agent.mjs:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-copy-edit-agent.mjs:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9e953af1ad7468e", "name": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/lib/is-generated.mjs:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/lib/is-generated.mjs:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad6701f0a8405e22", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-073500734846746c", "name": "Very large file: .github/skills/impeccable/scripts/live-browser.js (10932 lines)", "shortDescription": {"text": "Very large file: .github/skills/impeccable/scripts/live-browser.js (10932 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4a1e3a24bcaa8cc", "name": "Very large file: .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js (4903 lines)", "shortDescription": {"text": "Very large file: .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js (4903 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d698d4b33700e558", "name": "Very large file: .github/skills/impeccable/scripts/detector/rules/checks.mjs (2667 lines)", "shortDescription": {"text": "Very large file: .github/skills/impeccable/scripts/detector/rules/checks.mjs (2667 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0144e69d023c5ea0", "name": "Very large file: .github/skills/impeccable/scripts/detector/browser/injected/index.mjs (1735 lines)", "shortDescription": {"text": "Very large file: .github/skills/impeccable/scripts/detector/browser/injected/index.mjs (1735 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 80 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 80 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 121 placeholder/mock markers across 15 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64892cca62eae68f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/live-poll.mjs:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/live-poll.mjs:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fdccc9548d720ff7", "name": "Legacy-named symbol `withoutOld` in .github/skills/impeccable/scripts/live-inject.mjs:158", "shortDescription": {"text": "Legacy-named symbol `withoutOld` in .github/skills/impeccable/scripts/live-inject.mjs:158"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06a248860a6acebd", "name": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/live-inject.mjs:404", "shortDescription": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/live-inject.mjs:404"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50801ea49451cb8b", "name": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/live-browser.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/live-browser.js:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd8e70e7ed90be39", "name": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/live-browser.js:5365", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/live-browser.js:5365"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60bca063cb5a0872", "name": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/live-wrap.mjs:202", "shortDescription": {"text": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/live-wrap.mjs:202"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb66363d6e90909c", "name": "Commented-code block (11 lines) in .github/skills/impeccable/scripts/live-server.mjs:537", "shortDescription": {"text": "Commented-code block (11 lines) in .github/skills/impeccable/scripts/live-server.mjs:537"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbcd13de0af0b4f0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/modern-screenshot.umd.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/modern-screenshot.umd.js:7"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d309371ce57a9b76", "name": "Legacy-named symbol `source_shadow_preview_deprecated` in .github/skills/impeccable/scripts/live-accept.mjs:131", "shortDescription": {"text": "Legacy-named symbol `source_shadow_preview_deprecated` in .github/skills/impeccable/scripts/live-accept.mjs:131"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f804c85abc70a633", "name": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/live-accept.mjs:469", "shortDescription": {"text": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/live-accept.mjs:469"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a586a0e35c5f3ac5", "name": "Commented-code block (6 lines) in .github/skills/impeccable/scripts/palette.mjs:441", "shortDescription": {"text": "Commented-code block (6 lines) in .github/skills/impeccable/scripts/palette.mjs:441"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b4e41a4b6ae59a5", "name": "Legacy-named symbol `contextLegacy` in .github/skills/impeccable/scripts/lib/impeccable-paths.mjs:21", "shortDescription": {"text": "Legacy-named symbol `contextLegacy` in .github/skills/impeccable/scripts/lib/impeccable-paths.mjs:21"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-092b65dfad829279", "name": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/lib/design-parser.mjs:39", "shortDescription": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/lib/design-parser.mjs:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4812fc22d00ca671", "name": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js:25", "shortDescription": {"text": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f6b433ac978d7d3", "name": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs:22", "shortDescription": {"text": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44d02a0d3253700b", "name": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs:195", "shortDescription": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs:195"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c014e37e58437ed4", "name": "Commented-code block (10 lines) in .github/skills/impeccable/scripts/detector/rules/checks.mjs:102", "shortDescription": {"text": "Commented-code block (10 lines) in .github/skills/impeccable/scripts/detector/rules/checks.mjs:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9c0c3081ac0de34", "name": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/detector/shared/constants.mjs:11", "shortDescription": {"text": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/detector/shared/constants.mjs:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d8fe336495c6e9b", "name": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/detector/browser/injected/index.mjs:17", "shortDescription": {"text": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/detector/browser/injected/index.mjs:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4999e4e26eda7d82", "name": "Frontend route `/projects/siegecore` has no Link/navigate to it \u2014 src/App.jsx", "shortDescription": {"text": "Frontend route `/projects/siegecore` has no Link/navigate to it \u2014 src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-47870696b4b9e144", "name": "Frontend route `/projects/vector` has no Link/navigate to it \u2014 src/App.jsx", "shortDescription": {"text": "Frontend route `/projects/vector` has no Link/navigate to it \u2014 src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21488"}, "properties": {"repository": "Tommiconlai/Portfolio", "repoUrl": "https://github.com/Tommiconlai/Portfolio", "branch": "main"}, "results": [{"ruleId": "scanner-3a3033cfc711bffc", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 .github/skills/impeccable/scripts/live-browser.js:6746"}, "properties": {"repobilityId": "2a2f79dcdd4663a1", "scanner": "scanner-primary", "fingerprint": "3a3033cfc711bffc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-610cb56e7fefb5d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 .github/skills/impeccable/scripts/live-browser.js:5297"}, "properties": {"repobilityId": "54dd1dbfb8f73170", "scanner": "scanner-primary", "fingerprint": "610cb56e7fefb5d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-607e0ce321eccd2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js:4402"}, "properties": {"repobilityId": "32739e1c98a32d54", "scanner": "scanner-primary", "fingerprint": "607e0ce321eccd2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c909d67206eaf898", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/pages/SiegeCore.jsx:41"}, "properties": {"repobilityId": "12db57d44c6a03a7", "scanner": "scanner-primary", "fingerprint": "c909d67206eaf898", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-61b1eff78992d943", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live.mjs:20"}, "properties": {"repobilityId": "985a085f1338ccb7", "scanner": "scanner-primary", "fingerprint": "61b1eff78992d943", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live.mjs"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-68b755131d4d88a0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-poll.mjs:12"}, "properties": {"repobilityId": "e2b4980eedde41a6", "scanner": "scanner-primary", "fingerprint": "68b755131d4d88a0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live-poll.mjs"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-471fd2f2f8c5606f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/context-signals.mjs:23"}, "properties": {"repobilityId": "5ae593fb78707e52", "scanner": "scanner-primary", "fingerprint": "471fd2f2f8c5606f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/context-signals.mjs"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-c26f2c160c2807e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .github/skills/impeccable/scripts/live-browser.js:479"}, "properties": {"repobilityId": "32452bb27acc0a39", "scanner": "scanner-primary", "fingerprint": "c26f2c160c2807e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live-browser.js"}, "region": {"startLine": 479}}}]}, {"ruleId": "scanner-d1c97d42aae1b33d", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in .github/skills/impeccable/scripts/live-browser.js:4843"}, "properties": {"repobilityId": "e302b03d39ff0f5f", "scanner": "scanner-primary", "fingerprint": "d1c97d42aae1b33d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live-browser.js"}, "region": {"startLine": 4843}}}]}, {"ruleId": "scanner-34ba2509cfb66613", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-server.mjs:18"}, "properties": {"repobilityId": "6acc3f4213f08506", "scanner": "scanner-primary", "fingerprint": "34ba2509cfb66613", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live-server.mjs"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-9473265603da6442", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in .github/skills/impeccable/scripts/live-server.mjs:390"}, "properties": {"repobilityId": "16c7c02589ef7aef", "scanner": "scanner-primary", "fingerprint": "9473265603da6442", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live-server.mjs"}, "region": {"startLine": 390}}}]}, {"ruleId": "scanner-29462b899b921c92", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in .github/skills/impeccable/scripts/modern-screenshot.umd.js:7"}, "properties": {"repobilityId": "815ac518406f8c31", "scanner": "scanner-primary", "fingerprint": "29462b899b921c92", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/modern-screenshot.umd.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-03c406baadcfb5b6", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in .github/skills/impeccable/scripts/live-manual-edit-evidence.mjs:122"}, "properties": {"repobilityId": "48520970dcb04972", "scanner": "scanner-primary", "fingerprint": "03c406baadcfb5b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live-manual-edit-evidence.mjs"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-8c07a8eab570c6e1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/live-copy-edit-agent.mjs:10"}, "properties": {"repobilityId": "904f33cb09c6e375", "scanner": "scanner-primary", "fingerprint": "8c07a8eab570c6e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/live-copy-edit-agent.mjs"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-e9e953af1ad7468e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/skills/impeccable/scripts/lib/is-generated.mjs:16"}, "properties": {"repobilityId": "d640e0ec623f6597", "scanner": "scanner-primary", "fingerprint": "e9e953af1ad7468e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/skills/impeccable/scripts/lib/is-generated.mjs"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2aee2e2d969c7c6b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bee6b8956e03198c", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7368aacdd03a98e3", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b70dbcc8f54d72ab", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "419d1ec7943efec2", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-ad6701f0a8405e22", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8384c23520d55657", "scanner": "scanner-primary", "fingerprint": "ad6701f0a8405e22", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-073500734846746c", "level": "note", "message": {"text": "Very large file: .github/skills/impeccable/scripts/live-browser.js (10932 lines)"}, "properties": {"repobilityId": "0dd637e627205856", "scanner": "scanner-primary", "fingerprint": "073500734846746c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a4a1e3a24bcaa8cc", "level": "note", "message": {"text": "Very large file: .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js (4903 lines)"}, "properties": {"repobilityId": "fd5b86450c63dcb7", "scanner": "scanner-primary", "fingerprint": "a4a1e3a24bcaa8cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d698d4b33700e558", "level": "note", "message": {"text": "Very large file: .github/skills/impeccable/scripts/detector/rules/checks.mjs (2667 lines)"}, "properties": {"repobilityId": "3e2a6e81813e2ce8", "scanner": "scanner-primary", "fingerprint": "d698d4b33700e558", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0144e69d023c5ea0", "level": "note", "message": {"text": "Very large file: .github/skills/impeccable/scripts/detector/browser/injected/index.mjs (1735 lines)"}, "properties": {"repobilityId": "7d9c087b12a6a04b", "scanner": "scanner-primary", "fingerprint": "0144e69d023c5ea0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "e48fd676ac188d2d", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "5f18612d41f284db", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "ae96eecb205ad39d", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "af678c37b7545249", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "c37fa8fe4b683028", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "842e37aa8539d294", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "d2ddf7d1cfce3eb2", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "efc4e6b77912c639", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "365a137ea43ef0ff", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-64892cca62eae68f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/live-poll.mjs:18"}, "properties": {"repobilityId": "6d95aaff4a60ba9f", "scanner": "scanner-primary", "fingerprint": "64892cca62eae68f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fdccc9548d720ff7", "level": "note", "message": {"text": "Legacy-named symbol `withoutOld` in .github/skills/impeccable/scripts/live-inject.mjs:158"}, "properties": {"repobilityId": "3a47013069a6da40", "scanner": "scanner-primary", "fingerprint": "fdccc9548d720ff7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-06a248860a6acebd", "level": "none", "message": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/live-inject.mjs:404"}, "properties": {"repobilityId": "802ad11fc75f5129", "scanner": "scanner-primary", "fingerprint": "06a248860a6acebd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50801ea49451cb8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/live-browser.js:33"}, "properties": {"repobilityId": "886f3cc3898d3f8c", "scanner": "scanner-primary", "fingerprint": "50801ea49451cb8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd8e70e7ed90be39", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/live-browser.js:5365"}, "properties": {"repobilityId": "1d8928dea5f54d75", "scanner": "scanner-primary", "fingerprint": "cd8e70e7ed90be39", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-60bca063cb5a0872", "level": "none", "message": {"text": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/live-wrap.mjs:202"}, "properties": {"repobilityId": "001bddfe991185c5", "scanner": "scanner-primary", "fingerprint": "60bca063cb5a0872", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb66363d6e90909c", "level": "none", "message": {"text": "Commented-code block (11 lines) in .github/skills/impeccable/scripts/live-server.mjs:537"}, "properties": {"repobilityId": "d1292c22295852c2", "scanner": "scanner-primary", "fingerprint": "eb66363d6e90909c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbcd13de0af0b4f0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .github/skills/impeccable/scripts/modern-screenshot.umd.js:7"}, "properties": {"repobilityId": "636f3fd9e7774586", "scanner": "scanner-primary", "fingerprint": "cbcd13de0af0b4f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d309371ce57a9b76", "level": "note", "message": {"text": "Legacy-named symbol `source_shadow_preview_deprecated` in .github/skills/impeccable/scripts/live-accept.mjs:131"}, "properties": {"repobilityId": "91690556d7af0477", "scanner": "scanner-primary", "fingerprint": "d309371ce57a9b76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f804c85abc70a633", "level": "none", "message": {"text": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/live-accept.mjs:469"}, "properties": {"repobilityId": "d12366783959c85e", "scanner": "scanner-primary", "fingerprint": "f804c85abc70a633", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a586a0e35c5f3ac5", "level": "none", "message": {"text": "Commented-code block (6 lines) in .github/skills/impeccable/scripts/palette.mjs:441"}, "properties": {"repobilityId": "432cb7ace4043d1c", "scanner": "scanner-primary", "fingerprint": "a586a0e35c5f3ac5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b4e41a4b6ae59a5", "level": "note", "message": {"text": "Legacy-named symbol `contextLegacy` in .github/skills/impeccable/scripts/lib/impeccable-paths.mjs:21"}, "properties": {"repobilityId": "e1793e1b97869f6f", "scanner": "scanner-primary", "fingerprint": "9b4e41a4b6ae59a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-092b65dfad829279", "level": "none", "message": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/lib/design-parser.mjs:39"}, "properties": {"repobilityId": "2da78c2169892ac3", "scanner": "scanner-primary", "fingerprint": "092b65dfad829279", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4812fc22d00ca671", "level": "none", "message": {"text": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/detector/detect-antipatterns-browser.js:25"}, "properties": {"repobilityId": "6c942c8d58d8fffa", "scanner": "scanner-primary", "fingerprint": "4812fc22d00ca671", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f6b433ac978d7d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs:22"}, "properties": {"repobilityId": "6046687b1341a255", "scanner": "scanner-primary", "fingerprint": "5f6b433ac978d7d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44d02a0d3253700b", "level": "none", "message": {"text": "Commented-code block (5 lines) in .github/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs:195"}, "properties": {"repobilityId": "4c0ae2f1944419c3", "scanner": "scanner-primary", "fingerprint": "44d02a0d3253700b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c014e37e58437ed4", "level": "none", "message": {"text": "Commented-code block (10 lines) in .github/skills/impeccable/scripts/detector/rules/checks.mjs:102"}, "properties": {"repobilityId": "4875adf8f4329cf6", "scanner": "scanner-primary", "fingerprint": "c014e37e58437ed4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9c0c3081ac0de34", "level": "none", "message": {"text": "Commented-code block (8 lines) in .github/skills/impeccable/scripts/detector/shared/constants.mjs:11"}, "properties": {"repobilityId": "30817bb56114be85", "scanner": "scanner-primary", "fingerprint": "d9c0c3081ac0de34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d8fe336495c6e9b", "level": "none", "message": {"text": "Commented-code block (7 lines) in .github/skills/impeccable/scripts/detector/browser/injected/index.mjs:17"}, "properties": {"repobilityId": "49a971223c51ff33", "scanner": "scanner-primary", "fingerprint": "7d8fe336495c6e9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4999e4e26eda7d82", "level": "warning", "message": {"text": "Frontend route `/projects/siegecore` has no Link/navigate to it \u2014 src/App.jsx"}, "properties": {"repobilityId": "00ad4ec4a26dbdc4", "scanner": "scanner-primary", "fingerprint": "4999e4e26eda7d82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-47870696b4b9e144", "level": "warning", "message": {"text": "Frontend route `/projects/vector` has no Link/navigate to it \u2014 src/App.jsx"}, "properties": {"repobilityId": "0a92bfec25b376f7", "scanner": "scanner-primary", "fingerprint": "47870696b4b9e144", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}]}]}