{"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-c926b0fbc968e708", "name": "Stray `console.log` in TS/JS \u2014 scripts/ud-distribute-r5.js:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ud-distribute-r5.js:138"}, "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-0213ceacad53d0be", "name": "Stray `console.log` in TS/JS \u2014 scripts/ud-distribute-r6.js:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ud-distribute-r6.js:94"}, "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-8ed0d3b9a3fb74fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/tex-armory.html:622", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/tex-armory.html:622"}, "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-e1a58ec4b79616bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/decor-index.html:1349", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/decor-index.html:1349"}, "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-289c5c6eed95cbe7", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/bases.html:556", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/bases.html:556"}, "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-f3d01283e46e0985", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-battle-plan.html:589", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-battle-plan.html:589"}, "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-1b7c4d0a390f8c5a", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/ssc-map.html:2312", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/ssc-map.html:2312"}, "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-d5eef4cda2344b4f", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/index.html:6517", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/index.html:6517"}, "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-beb9061ec358a55a", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-battle-plan.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-battle-plan.html:317"}, "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-bc03a39925a204f0", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/heroes-awakening.html:2859", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/heroes-awakening.html:2859"}, "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-42a882bf50057f5c", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-duel-selection.html:1133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-duel-selection.html:1133"}, "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-330990ba767ba397", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/battle-replay.html:1017", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/battle-replay.html:1017"}, "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-cdb41c907e30a426", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-signup.html:276", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-signup.html:276"}, "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-70b5dc08a5addf5a", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-admin.html:991", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-admin.html:991"}, "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-3d8548d6896c77dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/easter-wishing.html:256", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/easter-wishing.html:256"}, "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-b156e7adb50b2381", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-briefing.html:440", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-briefing.html:440"}, "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-ee935ff2c05254ff", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/treasury.html:584", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/treasury.html:584"}, "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-a210a1bd9202a487", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/heroes.html:489", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/heroes.html:489"}, "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-8543905fb937f648", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/battle-report.html:4447", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/battle-report.html:4447"}, "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-df217221b807dde9", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-roster.html:860", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-roster.html:860"}, "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-6b8e50182df73db8", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/ht-chips.html:454", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/ht-chips.html:454"}, "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-9908ea24d94859d9", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/matchup-participation.html:326", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/matchup-participation.html:326"}, "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-1c7d42cdeedadc5a", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/roadmap.html:263", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/roadmap.html:263"}, "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-b86181b270c5849c", "name": "Insecure pattern 'direct_innerhtml_assignment' in pages/ssc-merit-report.html:702", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/ssc-merit-report.html:702"}, "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-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-90293368fae6ce41", "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-6b9c8d20bfbb633d", "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-56950f420a96ce76", "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-e4f658c0c00de0d4", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/deploy-pages@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-448d8837178ae57a", "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-edcb24ae67b91634", "name": "Very large file: all-bookmarklet.js (1840 lines)", "shortDescription": {"text": "Very large file: all-bookmarklet.js (1840 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 16 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 97 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-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-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-010d53dd84b7fcd7", "name": "Commented-code block (10 lines) in merge-bookmarklet.js:5", "shortDescription": {"text": "Commented-code block (10 lines) in merge-bookmarklet.js:5"}, "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-cbb9f771e69d77fb", "name": "Commented-code block (6 lines) in all-bookmarklet.js:47", "shortDescription": {"text": "Commented-code block (6 lines) in all-bookmarklet.js:47"}, "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-68ec2393517a0b4b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 seal-stone-train.js:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 seal-stone-train.js:80"}, "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-a4fd23176de45b09", "name": "Commented-code block (14 lines) in dismantle-bookmarklet.js:6", "shortDescription": {"text": "Commented-code block (14 lines) in dismantle-bookmarklet.js:6"}, "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-ca12c59b6b262fec", "name": "Commented-code block (5 lines) in feedback-widget.js:221", "shortDescription": {"text": "Commented-code block (5 lines) in feedback-widget.js:221"}, "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-5a85e368b8391108", "name": "`fetch()` without try/.catch or AbortSignal \u2014 feedback-widget.js:265", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 feedback-widget.js:265"}, "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-5aa3a45ec8b02c4e", "name": "Commented-code block (5 lines) in defense-skip-bookmarklet.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in defense-skip-bookmarklet.js:10"}, "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-d7a53079e5847308", "name": "Legacy-named symbol `threats_legacy` in scripts/ssc-r14-planning.py:284", "shortDescription": {"text": "Legacy-named symbol `threats_legacy` in scripts/ssc-r14-planning.py:284"}, "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-1a85094017162737", "name": "Commented-code block (5 lines) in scripts/ssc-r14-planning.py:106", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/ssc-r14-planning.py:106"}, "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-ff84dd6b300f1894", "name": "Legacy-named symbol `threats_legacy` in scripts/ssc-r125-planning.py:156", "shortDescription": {"text": "Legacy-named symbol `threats_legacy` in scripts/ssc-r125-planning.py:156"}, "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-034c0a24a4c89ded", "name": "Commented-code block (8 lines) in scripts/ssc-r125-planning.py:80", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/ssc-r125-planning.py:80"}, "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-d1384f9912409f30", "name": "Commented-code block (10 lines) in scripts/ssc-r12-planning.py:352", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/ssc-r12-planning.py:352"}, "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}}]}}, "automationDetails": {"id": "repobility/21022"}, "properties": {"repository": "texnottexas/landing-page", "repoUrl": "https://github.com/texnottexas/landing-page", "branch": "main"}, "results": [{"ruleId": "scanner-c926b0fbc968e708", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ud-distribute-r5.js:138"}, "properties": {"repobilityId": "9f62ae179bd9bdf4", "scanner": "scanner-primary", "fingerprint": "c926b0fbc968e708", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0213ceacad53d0be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ud-distribute-r6.js:94"}, "properties": {"repobilityId": "83f45cb7e74445ed", "scanner": "scanner-primary", "fingerprint": "0213ceacad53d0be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ed0d3b9a3fb74fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/tex-armory.html:622"}, "properties": {"repobilityId": "7493cf9854d21428", "scanner": "scanner-primary", "fingerprint": "8ed0d3b9a3fb74fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/tex-armory.html"}, "region": {"startLine": 622}}}]}, {"ruleId": "scanner-e1a58ec4b79616bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/decor-index.html:1349"}, "properties": {"repobilityId": "d70cdebacecc24ca", "scanner": "scanner-primary", "fingerprint": "e1a58ec4b79616bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/decor-index.html"}, "region": {"startLine": 1349}}}]}, {"ruleId": "scanner-289c5c6eed95cbe7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/bases.html:556"}, "properties": {"repobilityId": "10bdb8a25caaf9d2", "scanner": "scanner-primary", "fingerprint": "289c5c6eed95cbe7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/bases.html"}, "region": {"startLine": 556}}}]}, {"ruleId": "scanner-f3d01283e46e0985", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-battle-plan.html:589"}, "properties": {"repobilityId": "966aa3fd9b06cf50", "scanner": "scanner-primary", "fingerprint": "f3d01283e46e0985", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/storm-battle-plan.html"}, "region": {"startLine": 589}}}]}, {"ruleId": "scanner-1b7c4d0a390f8c5a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/ssc-map.html:2312"}, "properties": {"repobilityId": "6e1e07263d9af77f", "scanner": "scanner-primary", "fingerprint": "1b7c4d0a390f8c5a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/ssc-map.html"}, "region": {"startLine": 2312}}}]}, {"ruleId": "scanner-d5eef4cda2344b4f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/index.html:6517"}, "properties": {"repobilityId": "65aa6625f3f8e0d9", "scanner": "scanner-primary", "fingerprint": "d5eef4cda2344b4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/index.html"}, "region": {"startLine": 6517}}}]}, {"ruleId": "scanner-beb9061ec358a55a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-battle-plan.html:317"}, "properties": {"repobilityId": "93e4ace7cd202d04", "scanner": "scanner-primary", "fingerprint": "beb9061ec358a55a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/titan-battle-plan.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-bc03a39925a204f0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/heroes-awakening.html:2859"}, "properties": {"repobilityId": "1663d2185a6e0de0", "scanner": "scanner-primary", "fingerprint": "bc03a39925a204f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/heroes-awakening.html"}, "region": {"startLine": 2859}}}]}, {"ruleId": "scanner-42a882bf50057f5c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-duel-selection.html:1133"}, "properties": {"repobilityId": "8cf113fba3da33f2", "scanner": "scanner-primary", "fingerprint": "42a882bf50057f5c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/storm-duel-selection.html"}, "region": {"startLine": 1133}}}]}, {"ruleId": "scanner-330990ba767ba397", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/battle-replay.html:1017"}, "properties": {"repobilityId": "5d899dabe764e5d8", "scanner": "scanner-primary", "fingerprint": "330990ba767ba397", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/battle-replay.html"}, "region": {"startLine": 1017}}}]}, {"ruleId": "scanner-cdb41c907e30a426", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-signup.html:276"}, "properties": {"repobilityId": "6df1f73376e9b220", "scanner": "scanner-primary", "fingerprint": "cdb41c907e30a426", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/titan-signup.html"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-70b5dc08a5addf5a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-admin.html:991"}, "properties": {"repobilityId": "3cf1a54243fb9103", "scanner": "scanner-primary", "fingerprint": "70b5dc08a5addf5a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/titan-admin.html"}, "region": {"startLine": 991}}}]}, {"ruleId": "scanner-3d8548d6896c77dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/easter-wishing.html:256"}, "properties": {"repobilityId": "10405c4032271380", "scanner": "scanner-primary", "fingerprint": "3d8548d6896c77dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/easter-wishing.html"}, "region": {"startLine": 256}}}]}, {"ruleId": "scanner-b156e7adb50b2381", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/storm-briefing.html:440"}, "properties": {"repobilityId": "f14dcc7d87340e0a", "scanner": "scanner-primary", "fingerprint": "b156e7adb50b2381", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/storm-briefing.html"}, "region": {"startLine": 440}}}]}, {"ruleId": "scanner-ee935ff2c05254ff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/treasury.html:584"}, "properties": {"repobilityId": "bb70a51a5c98d057", "scanner": "scanner-primary", "fingerprint": "ee935ff2c05254ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/treasury.html"}, "region": {"startLine": 584}}}]}, {"ruleId": "scanner-a210a1bd9202a487", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/heroes.html:489"}, "properties": {"repobilityId": "fddf7f39f44fdc9d", "scanner": "scanner-primary", "fingerprint": "a210a1bd9202a487", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/heroes.html"}, "region": {"startLine": 489}}}]}, {"ruleId": "scanner-8543905fb937f648", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/battle-report.html:4447"}, "properties": {"repobilityId": "61a3fb7abb36cd7d", "scanner": "scanner-primary", "fingerprint": "8543905fb937f648", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/battle-report.html"}, "region": {"startLine": 4447}}}]}, {"ruleId": "scanner-df217221b807dde9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/titan-roster.html:860"}, "properties": {"repobilityId": "f3f36cf7533123db", "scanner": "scanner-primary", "fingerprint": "df217221b807dde9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/titan-roster.html"}, "region": {"startLine": 860}}}]}, {"ruleId": "scanner-6b8e50182df73db8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/ht-chips.html:454"}, "properties": {"repobilityId": "21abb5d5baac66dc", "scanner": "scanner-primary", "fingerprint": "6b8e50182df73db8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/ht-chips.html"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-9908ea24d94859d9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/matchup-participation.html:326"}, "properties": {"repobilityId": "8a01ad1622e4195e", "scanner": "scanner-primary", "fingerprint": "9908ea24d94859d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/matchup-participation.html"}, "region": {"startLine": 326}}}]}, {"ruleId": "scanner-1c7d42cdeedadc5a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/roadmap.html:263"}, "properties": {"repobilityId": "828738d4e6325c6d", "scanner": "scanner-primary", "fingerprint": "1c7d42cdeedadc5a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/roadmap.html"}, "region": {"startLine": 263}}}]}, {"ruleId": "scanner-b86181b270c5849c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pages/ssc-merit-report.html:702"}, "properties": {"repobilityId": "ee542468274eafc9", "scanner": "scanner-primary", "fingerprint": "b86181b270c5849c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pages/ssc-merit-report.html"}, "region": {"startLine": 702}}}]}, {"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-90293368fae6ce41", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "1ba13902d935ac8d", "scanner": "scanner-primary", "fingerprint": "90293368fae6ce41", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/titan-snapshot.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6b9c8d20bfbb633d", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "06e8520f794849ab", "scanner": "scanner-primary", "fingerprint": "6b9c8d20bfbb633d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/train-backup.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56950f420a96ce76", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "581c48d94751df17", "scanner": "scanner-primary", "fingerprint": "56950f420a96ce76", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/calendar-snapshot.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e4f658c0c00de0d4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "25e1fa3783e7cb32", "scanner": "scanner-primary", "fingerprint": "e4f658c0c00de0d4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pages.yml"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-448d8837178ae57a", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "13af6451e15656fc", "scanner": "scanner-primary", "fingerprint": "448d8837178ae57a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pages.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-edcb24ae67b91634", "level": "note", "message": {"text": "Very large file: all-bookmarklet.js (1840 lines)"}, "properties": {"repobilityId": "aa61eefcd45cae49", "scanner": "scanner-primary", "fingerprint": "edcb24ae67b91634", "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-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "f5401aa96e2c4696", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "fc80854f068d8fa5", "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": "61125ac8ee8972f0", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "fe393ca8aafef7c3", "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": "9bea04d850e4de60", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-010d53dd84b7fcd7", "level": "none", "message": {"text": "Commented-code block (10 lines) in merge-bookmarklet.js:5"}, "properties": {"repobilityId": "aade434b53f48b5c", "scanner": "scanner-primary", "fingerprint": "010d53dd84b7fcd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbb9f771e69d77fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in all-bookmarklet.js:47"}, "properties": {"repobilityId": "7428ba87e1c45e65", "scanner": "scanner-primary", "fingerprint": "cbb9f771e69d77fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68ec2393517a0b4b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 seal-stone-train.js:80"}, "properties": {"repobilityId": "9ae631b9926e883e", "scanner": "scanner-primary", "fingerprint": "68ec2393517a0b4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a4fd23176de45b09", "level": "none", "message": {"text": "Commented-code block (14 lines) in dismantle-bookmarklet.js:6"}, "properties": {"repobilityId": "6f046910e02847cb", "scanner": "scanner-primary", "fingerprint": "a4fd23176de45b09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca12c59b6b262fec", "level": "none", "message": {"text": "Commented-code block (5 lines) in feedback-widget.js:221"}, "properties": {"repobilityId": "95b2c21acdcb659d", "scanner": "scanner-primary", "fingerprint": "ca12c59b6b262fec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a85e368b8391108", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 feedback-widget.js:265"}, "properties": {"repobilityId": "2c496c16e7752932", "scanner": "scanner-primary", "fingerprint": "5a85e368b8391108", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5aa3a45ec8b02c4e", "level": "none", "message": {"text": "Commented-code block (5 lines) in defense-skip-bookmarklet.js:10"}, "properties": {"repobilityId": "e9f785fbef58731a", "scanner": "scanner-primary", "fingerprint": "5aa3a45ec8b02c4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7a53079e5847308", "level": "note", "message": {"text": "Legacy-named symbol `threats_legacy` in scripts/ssc-r14-planning.py:284"}, "properties": {"repobilityId": "113f87c4381ec352", "scanner": "scanner-primary", "fingerprint": "d7a53079e5847308", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1a85094017162737", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/ssc-r14-planning.py:106"}, "properties": {"repobilityId": "fe20b93447fa39f0", "scanner": "scanner-primary", "fingerprint": "1a85094017162737", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff84dd6b300f1894", "level": "note", "message": {"text": "Legacy-named symbol `threats_legacy` in scripts/ssc-r125-planning.py:156"}, "properties": {"repobilityId": "c39128f35fc96220", "scanner": "scanner-primary", "fingerprint": "ff84dd6b300f1894", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-034c0a24a4c89ded", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/ssc-r125-planning.py:80"}, "properties": {"repobilityId": "ecf3cce218218a5a", "scanner": "scanner-primary", "fingerprint": "034c0a24a4c89ded", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1384f9912409f30", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/ssc-r12-planning.py:352"}, "properties": {"repobilityId": "f730d8731457b8cf", "scanner": "scanner-primary", "fingerprint": "d1384f9912409f30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}