{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8f3101894ee5542", "name": "Stray `console.log` in TS/JS \u2014 cli.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cli.js:42"}, "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-32f9a1a8715e2ac5", "name": "Stray `console.log` in TS/JS \u2014 smoke-test.js:178", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 smoke-test.js:178"}, "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-a4a9d649866d7293", "name": "Stray `console.log` in TS/JS \u2014 frontend/server/server.js:197", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/server/server.js:197"}, "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-481e66bd61acc983", "name": "Stray `console.log` in TS/JS \u2014 frontend/server/session-persistence.js:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/server/session-persistence.js:122"}, "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-d49a6d2f46cc5c4f", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-m3-regression.js:258", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-m3-regression.js:258"}, "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-10cb477ac95e204a", "name": "Stray `console.log` in TS/JS \u2014 scripts/replay-regression.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-regression.js:41"}, "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-9f4e27791084d3dd", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-intro-order.js:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-intro-order.js:63"}, "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-8577a54a528fa2a8", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-tests.js:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-tests.js:54"}, "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-8af928aa40ae71b9", "name": "Stray `console.log` in TS/JS \u2014 scripts/focus-example.js:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/focus-example.js:92"}, "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-c02b99d08b667354", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-back-nav.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-back-nav.js:16"}, "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-fc60ff94d3e29596", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-prompt-rules.js:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-prompt-rules.js:107"}, "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-5313e1f43617e1e9", "name": "Stray `console.log` in TS/JS \u2014 scripts/batch-l-verify.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-l-verify.js:39"}, "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-efc78ac82405a185", "name": "Stray `console.log` in TS/JS \u2014 scripts/manual-qa-verify.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/manual-qa-verify.js:15"}, "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-3bc71f8ee951e745", "name": "Stray `console.log` in TS/JS \u2014 scripts/batch-m3-verify.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m3-verify.js:30"}, "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-d3630427beccf01f", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-replay-regression.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-replay-regression.js:24"}, "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-c8bf7ea7b350924f", "name": "Stray `console.log` in TS/JS \u2014 scripts/batch-m4-verify.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m4-verify.js:20"}, "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-8aba4ea15926f933", "name": "Stray `console.log` in TS/JS \u2014 scripts/role-profile-demo.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/role-profile-demo.js:10"}, "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-8361b652ca66eccc", "name": "Stray `console.log` in TS/JS \u2014 scripts/sweep.js:224", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sweep.js:224"}, "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-97391877c94ba439", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-arc-overlay.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-arc-overlay.js:27"}, "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-aa374a542e8064c6", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-session-resume.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-session-resume.js:20"}, "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-f1b5c8ee04a98fac", "name": "Stray `console.log` in TS/JS \u2014 scripts/promote-candidates.js:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/promote-candidates.js:82"}, "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-2ca7bbfad45d9abf", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-bank.js:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-bank.js:95"}, "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-5785eaf12b66e861", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-delta-snap.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-delta-snap.js:22"}, "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-93b97ca4ebce50e3", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-prep-role-diff.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-prep-role-diff.js:25"}, "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-5934b9b394816f5e", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-prep-wording.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-prep-wording.js:20"}, "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-e1882098802d0028", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-question-integrity.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-question-integrity.js:33"}, "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-f6dec88f2448d1be", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-lexicon.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-lexicon.js:13"}, "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-eb8ce1ac61263f48", "name": "Stray `console.log` in TS/JS \u2014 scripts/batch-k-verify.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-k-verify.js:22"}, "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-c999cdeed5bbbfae", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-empty-signature.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-empty-signature.js:51"}, "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-3eec069286f7e8c0", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-trust-checks.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-trust-checks.js:12"}, "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-1077cc6d9de0fda9", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-reviews.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-reviews.js:28"}, "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-724dbff51f16f748", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-axis-coverage.js:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-axis-coverage.js:169"}, "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-813dd638be055a52", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-role-lexicons.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-role-lexicons.js:22"}, "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-e366e8074a5b452d", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-person-profile.js:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-person-profile.js:102"}, "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-496202939f293076", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-recurring-gap-damper.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-recurring-gap-damper.js:86"}, "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-1c2d1d79f752e837", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-stage-tags.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-stage-tags.js:14"}, "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-2174ad826e17b543", "name": "Stray `console.log` in TS/JS \u2014 scripts/purge-logs.js:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/purge-logs.js:125"}, "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-1b89e6de1fe24da7", "name": "Stray `console.log` in TS/JS \u2014 scripts/replay-scenario.js:176", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-scenario.js:176"}, "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-c0580f823daf2041", "name": "Stray `console.log` in TS/JS \u2014 scripts/batch-m5-verify.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m5-verify.js:23"}, "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-e77be69f35127df7", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-integrity.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-integrity.js:30"}, "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-e97c693882b826f0", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-drill-cap.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-drill-cap.js:86"}, "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-df47e078535a7126", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-question-validator.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-question-validator.js:14"}, "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-d33946799d139291", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-persona-bench.js:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-persona-bench.js:98"}, "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-515f0ace9a43fcb1", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-maya-qa-prompts.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-maya-qa-prompts.js:17"}, "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-16bd433bf4111c85", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-role-profile-injection.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-role-profile-injection.js:57"}, "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-fe175cdf77610ade", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-read-quality.js:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-read-quality.js:43"}, "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-3c47f699b1083c42", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-maya-live-manual.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-maya-live-manual.js:31"}, "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-3804e98ec1ae5a21", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-engagement-read.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-engagement-read.js:86"}, "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-ed5a5f1d6cafa937", "name": "Stray `console.log` in TS/JS \u2014 scripts/replay-capture.js:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-capture.js:75"}, "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-9c976e5b5efb8869", "name": "Stray `console.log` in TS/JS \u2014 scripts/drive-manual-run.js:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/drive-manual-run.js:106"}, "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-d8f470f6c0be8f32", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval.js:36"}, "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-eef788cba1aea416", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-role-profile.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-role-profile.js:23"}, "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-73df395c798d36a6", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-lexicon-promote.js:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-lexicon-promote.js:52"}, "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-b1b4c91220e63748", "name": "Stray `console.log` in TS/JS \u2014 scripts/batch-m2-verify.js:196", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m2-verify.js:196"}, "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-b3de7cfaf84382f7", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-judge.js:232", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-judge.js:232"}, "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-2c19a9175bdddd94", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-fallback.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-fallback.js:14"}, "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-7528163356a5935c", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-grounding-gate.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-grounding-gate.js:14"}, "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-eb1e66bc9cceb0c3", "name": "Stray `console.log` in TS/JS \u2014 scripts/serve-static.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/serve-static.js:19"}, "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-1934c840830fae44", "name": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-profiles.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-profiles.js:18"}, "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-fd39455b74109733", "name": "Stray `console.log` in TS/JS \u2014 scripts/gate.js:185", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gate.js:185"}, "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-c8ad7f6e68a0ee2a", "name": "Stray `console.log` in TS/JS \u2014 scripts/batch-m1-verify.js:395", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m1-verify.js:395"}, "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-244b1c618e6f9886", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-opener-routing.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-opener-routing.js:56"}, "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-9e835ab5b9e96e4e", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-answer-suggest-shape.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-answer-suggest-shape.js:20"}, "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-39a16222d77f9d2c", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-confidence-honesty.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-confidence-honesty.js:16"}, "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-b6e8de0a54a221be", "name": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-question-index.js:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-question-index.js:48"}, "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-5418a84cb8f4b7a9", "name": "Stray `console.log` in TS/JS \u2014 .claude/skills/impeccable/scripts/live-browser.js:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 .claude/skills/impeccable/scripts/live-browser.js:156"}, "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-b01f3a63de7acaad", "name": "Stray `console.log` in TS/JS \u2014 src/ui.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/ui.js:77"}, "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-3c4982551b4c06d9", "name": "Stray `console.log` in TS/JS \u2014 src/briefing.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/briefing.js:18"}, "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-7f2012d762c12476", "name": "Stray `console.log` in TS/JS \u2014 src/cli/run-rating.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/run-rating.js:17"}, "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-9baf052771c79e5d", "name": "Stray `console.log` in TS/JS \u2014 src/cli/stages/evaluation.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/evaluation.js:9"}, "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-3fe8215f60bb72a7", "name": "Stray `console.log` in TS/JS \u2014 src/cli/stages/question-bank.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/question-bank.js:12"}, "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-3027221cacebaaf9", "name": "Stray `console.log` in TS/JS \u2014 src/cli/stages/preparation.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/preparation.js:5"}, "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-d5b63ab88a4c7acd", "name": "Stray `console.log` in TS/JS \u2014 src/cli/stages/focus-points.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/focus-points.js:5"}, "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-88862530a459550a", "name": "Stray `console.log` in TS/JS \u2014 src/cli/stages/questioning.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/questioning.js:60"}, "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-51770f12d407c6cc", "name": "Stray `console.log` in TS/JS \u2014 src/lexicon/cli-interactive.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lexicon/cli-interactive.js:26"}, "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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1267d33d85453d8", "name": "Insecure pattern 'node_child_process' in smoke-test.js:26", "shortDescription": {"text": "Insecure pattern 'node_child_process' in smoke-test.js:26"}, "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-d1fe3c5bbdcccf51", "name": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/main.js:128", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/main.js:128"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d1c8cad3ef6211d5", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/confirm.js:26", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/confirm.js:26"}, "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-de85173bcd40e68b", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-list.js:25", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-list.js:25"}, "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-c53edcd95d5507c6", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/dev-badge.js:49", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/dev-badge.js:49"}, "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-fab3105910a9cf0a", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-panel.js:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-panel.js:22"}, "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-1afb6e69a6d71b3a", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/session-topbar.js:71", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/session-topbar.js:71"}, "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-1fdb1e5176ec881e", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-panel-utils.js:77", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-panel-utils.js:77"}, "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-8fc9bcd2e2895bc3", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/stage-review.js:30", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/stage-review.js:30"}, "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-5cb53b2e19831fa3", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/orb.js:7", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/orb.js:7"}, "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-bdda672cd91de12c", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/app-nav.js:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/app-nav.js:54"}, "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-8ed3c1d6a392272c", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/run-debrief.js:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/run-debrief.js:35"}, "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-730f472f9c2d0574", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/axes.js:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/axes.js:76"}, "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-d9e5e62b8d1b76a6", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/compare.js:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/compare.js:20"}, "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-3884fba34642b8ef", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/review-run.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/review-run.js:115"}, "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-c763870600fc10e7", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/library.js:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/library.js:124"}, "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-b0c2e3413879b97d", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/regression.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/regression.js:13"}, "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-9dae99a7ce2089cf", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/bank.js:11", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/bank.js:11"}, "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-e39d373993df10be", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/job-lexicons.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/job-lexicons.js:10"}, "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-c6fc95324d7f4f1e", "name": "Insecure pattern 'direct_outerhtml_assignment' in frontend/client/src/stages/job-lexicons.js:53", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in frontend/client/src/stages/job-lexicons.js:53"}, "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-9d14489d22ebb9f2", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/guide.js:159", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/guide.js:159"}, "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-d7a7dc6d02da0852", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/preparation.js:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/preparation.js:12"}, "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-7551956ccd31573a", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/briefing.js:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/briefing.js:15"}, "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-3d053dee161e1c42", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/onepage.js:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/onepage.js:60"}, "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-0781822ea606421c", "name": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/onepage.js:285", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/onepage.js:285"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b25c040a3c255151", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/error.js:7", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/error.js:7"}, "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-c537d0b726e44bec", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/focus-points.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/focus-points.js:13"}, "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-48ef7fed3d205c07", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/questioning.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/questioning.js:14"}, "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-99db1d1a27f5719f", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/personas.js:9", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/personas.js:9"}, "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-bfa4c69f52d75642", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/intake.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/intake.js:36"}, "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-40ed98038e81daef", "name": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/intake.js:309", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/intake.js:309"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f65c0dc6be82693b", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/eval.js:8", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/eval.js:8"}, "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-d5322e5143eec74f", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/run-debrief.js:6", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/run-debrief.js:6"}, "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-a3ea328fbf35539d", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/lexicon-review.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/lexicon-review.js:14"}, "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-9c179ea725910626", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/meeting-arcs.js:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/meeting-arcs.js:92"}, "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-b976990570144559", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/start.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/start.js:10"}, "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-faa40c0dae9b3a16", "name": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/start.js:381", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/start.js:381"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9db8ea9869f22d7", "name": "Insecure pattern 'node_child_process' in scripts/batch-m3-verify.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m3-verify.js:8"}, "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-ed7c8640792dd000", "name": "Insecure pattern 'node_child_process' in scripts/batch-m4-verify.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m4-verify.js:8"}, "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-0a9ae4ec63a1c2d0", "name": "Insecure pattern 'node_child_process' in scripts/batch-m5-verify.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m5-verify.js:8"}, "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-1c7b1186ad89f9e0", "name": "Insecure pattern 'eval_used' in scripts/verify-maya-live-manual.js:117", "shortDescription": {"text": "Insecure pattern 'eval_used' in scripts/verify-maya-live-manual.js:117"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98d765b19f811efb", "name": "Insecure pattern 'node_child_process' in scripts/eval.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/eval.js:8"}, "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-d0556e4e122c5851", "name": "Insecure pattern 'node_child_process' in scripts/batch-m2-verify.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m2-verify.js:8"}, "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-ee63485a7bcefb4e", "name": "Insecure pattern 'node_child_process' in scripts/batch-m1-verify.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m1-verify.js:9"}, "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-d4c1e94d72271d8b", "name": "Insecure pattern 'node_child_process' in scripts/lib/run-scenario.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/lib/run-scenario.js:6"}, "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-ee3e044ba18f04bb", "name": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/live.mjs:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/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-686aeab6c221f631", "name": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/live-poll.mjs:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/live-poll.mjs:11"}, "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-c1e6b11d0f05e0e4", "name": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/impeccable/scripts/live-browser.js:420", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/impeccable/scripts/live-browser.js:420"}, "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-6a1dd202fa8b6033", "name": "Insecure pattern 'domparser_html_parse' in .claude/skills/impeccable/scripts/live-browser.js:1846", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in .claude/skills/impeccable/scripts/live-browser.js:1846"}, "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-dc2aae743c1e5334", "name": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/is-generated.mjs:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/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-5ce82a740f9f3098", "name": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/live-server.mjs:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/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-718d70230c6f1d90", "name": "Insecure pattern 'cors_wildcard' in .claude/skills/impeccable/scripts/live-server.mjs:267", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in .claude/skills/impeccable/scripts/live-server.mjs:267"}, "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-e3fced14e0b53e87", "name": "Insecure pattern 'insert_adjacent_html' in .claude/skills/impeccable/scripts/modern-screenshot.umd.js:7", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in .claude/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-96f6cb90b4c68495", "name": "Insecure pattern 'node_child_process' in src/pipeline-lock.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/pipeline-lock.js:4"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7268c3279cc1166c", "name": "Very large file: .claude/skills/impeccable/scripts/live-browser.js (4860 lines)", "shortDescription": {"text": "Very large file: .claude/skills/impeccable/scripts/live-browser.js (4860 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "33 tests / 207 src (ratio 0.16)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "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 691 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 48 placeholder/mock markers across 22 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, 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": "medium", "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, ci, 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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6308c6fa82ca5cd", "name": "Agent authority lacks a verifier contract: .claude/skills/impeccable/reference/shape.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/impeccable/reference/shape.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1eb55cdbc931e3be", "name": "Agent authority lacks a verifier contract: .claude/skills/impeccable/reference/teach.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/impeccable/reference/teach.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6515e6e86d58d5b3", "name": "Agent authority lacks a verifier contract: .claude/skills/impeccable/scripts/command-metadata.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/impeccable/scripts/command-metadata.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4910620de822d74", "name": "Agent authority lacks a verifier contract: .claude/skills/reviewrun/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/reviewrun/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a3a282efd85ea79e", "name": "Commented-code block (7 lines) in smoke-test.js:11", "shortDescription": {"text": "Commented-code block (7 lines) in smoke-test.js: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-360555cb51bbab9f", "name": "Commented-code block (12 lines) in frontend/client/src/sse.js:3", "shortDescription": {"text": "Commented-code block (12 lines) in frontend/client/src/sse.js:3"}, "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-cecadee6dd36c0f4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/client/src/api.js:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/client/src/api.js:12"}, "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-54bf5f996b433977", "name": "Commented-code block (5 lines) in frontend/client/src/ui/notes-panel.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/client/src/ui/notes-panel.js:1"}, "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-b1aa3de09ee1fecd", "name": "Commented-code block (6 lines) in frontend/client/src/ui/session-topbar.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/client/src/ui/session-topbar.js:1"}, "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-cfc8fdf072562e2f", "name": "Commented-code block (5 lines) in frontend/client/src/ui/stage-review.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/client/src/ui/stage-review.js:1"}, "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-c6d2055627916248", "name": "Commented-code block (5 lines) in frontend/client/src/ui/review-serialize.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/client/src/ui/review-serialize.js:1"}, "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-09c4684e66cae7cc", "name": "Commented-code block (6 lines) in frontend/client/src/ui/vocab-groups.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/client/src/ui/vocab-groups.js:1"}, "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-7bdeeea578e99969", "name": "Commented-code block (5 lines) in frontend/client/src/stages/library.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/client/src/stages/library.js:1"}, "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-07e637edfe50bf76", "name": "Commented-code block (5 lines) in frontend/client/src/stages/guide.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/client/src/stages/guide.js:1"}, "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-dcf61821a7d6f789", "name": "Commented-code block (7 lines) in frontend/client/src/stages/onepage.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/client/src/stages/onepage.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-c3ce1fd623950fc6", "name": "Commented-code block (7 lines) in frontend/client/src/stages/questioning.js:408", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/client/src/stages/questioning.js:408"}, "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-d890c9a756276b3c", "name": "Commented-code block (5 lines) in frontend/client/src/stages/meeting-arcs.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/client/src/stages/meeting-arcs.js:1"}, "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-1c7744acdb5749d9", "name": "Commented-code block (5 lines) in frontend/server/persona-script.js:25", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/server/persona-script.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-64aa38476740a3fb", "name": "Commented-code block (5 lines) in frontend/server/handlers/review.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/server/handlers/review.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-d99c396ded0c63b3", "name": "Commented-code block (6 lines) in frontend/server/handlers/arcs.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/server/handlers/arcs.js:1"}, "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-866c4b675d5c9e2f", "name": "Commented-code block (6 lines) in scripts/test-briefing-prompt-rules.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-briefing-prompt-rules.js:2"}, "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-94c680eac13828ea", "name": "Commented-code block (6 lines) in scripts/benchmark.js:51", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/benchmark.js:51"}, "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-bc433e67df78f185", "name": "Commented-code block (6 lines) in scripts/test-prep-wording.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-prep-wording.js:4"}, "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-cde16893a8f16e29", "name": "Commented-code block (9 lines) in scripts/test-question-integrity.js:4", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/test-question-integrity.js:4"}, "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-e211e03bdd16b471", "name": "Commented-code block (6 lines) in scripts/test-axis-coverage.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-axis-coverage.js:2"}, "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-78208e6c96769607", "name": "Commented-code block (6 lines) in scripts/purge-logs.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/purge-logs.js:4"}, "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-bf17f363411abc10", "name": "Commented-code block (8 lines) in scripts/replay-scenario.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/replay-scenario.js:2"}, "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-7af93ac5fb2413eb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/drive-manual-run.js:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/drive-manual-run.js:48"}, "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-f6aac70fa70dc4e8", "name": "Commented-code block (6 lines) in scripts/gate.js:83", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/gate.js:83"}, "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-f74071826323140d", "name": "Commented-code block (7 lines) in scripts/test-confidence-honesty.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/test-confidence-honesty.js:2"}, "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-9d387988ddcec602", "name": "Legacy-named symbol `contextLegacy` in .claude/skills/impeccable/scripts/impeccable-paths.mjs:21", "shortDescription": {"text": "Legacy-named symbol `contextLegacy` in .claude/skills/impeccable/scripts/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-8ffb5e865aedb496", "name": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/live-poll.mjs:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/live-poll.mjs:17"}, "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-fbf1401dbaa37f42", "name": "Legacy-named symbol `withoutOld` in .claude/skills/impeccable/scripts/live-inject.mjs:118", "shortDescription": {"text": "Legacy-named symbol `withoutOld` in .claude/skills/impeccable/scripts/live-inject.mjs:118"}, "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-ceb13bb5222cd00d", "name": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-inject.mjs:326", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-inject.mjs:326"}, "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-4dbc03d2958384d6", "name": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/design-parser.mjs:39", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/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-6833bb3c9d82ab95", "name": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-browser.js:136", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-browser.js:136"}, "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-e05ae8b41bbfea08", "name": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/live-browser.js:1841", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/live-browser.js:1841"}, "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-ff842648d7803dfc", "name": "Commented-code block (7 lines) in .claude/skills/impeccable/scripts/live-wrap.mjs:192", "shortDescription": {"text": "Commented-code block (7 lines) in .claude/skills/impeccable/scripts/live-wrap.mjs:192"}, "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-9fbea42e09a237fe", "name": "Commented-code block (11 lines) in .claude/skills/impeccable/scripts/live-server.mjs:418", "shortDescription": {"text": "Commented-code block (11 lines) in .claude/skills/impeccable/scripts/live-server.mjs:418"}, "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-1a30b7179eb597df", "name": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/modern-screenshot.umd.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/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-2bc3fc4512a545b4", "name": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-accept.mjs:182", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-accept.mjs:182"}, "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-d3ea05a061a96c16", "name": "Commented-code block (6 lines) in evals/trust-checks.js:7", "shortDescription": {"text": "Commented-code block (6 lines) in evals/trust-checks.js:7"}, "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-70034890de1309b3", "name": "Commented-code block (6 lines) in src/queue-manager.js:286", "shortDescription": {"text": "Commented-code block (6 lines) in src/queue-manager.js:286"}, "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-7d2cceea48f738b3", "name": "Commented-code block (5 lines) in src/models.js:21", "shortDescription": {"text": "Commented-code block (5 lines) in src/models.js:21"}, "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-bd4c6f0e84a80eb0", "name": "Commented-code block (5 lines) in src/selected-focus.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in src/selected-focus.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-053fe25db6762700", "name": "Commented-code block (5 lines) in src/preparation.js:174", "shortDescription": {"text": "Commented-code block (5 lines) in src/preparation.js:174"}, "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-0c68d805e0cbeb3c", "name": "Commented-code block (12 lines) in src/question-eligibility.js:1", "shortDescription": {"text": "Commented-code block (12 lines) in src/question-eligibility.js:1"}, "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-3ece879414618671", "name": "Commented-code block (5 lines) in src/arc-overlay.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/arc-overlay.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-2405b4d61f808abf", "name": "Commented-code block (5 lines) in src/golden-checks.js:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/golden-checks.js:18"}, "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-80abd88ab2cc0c7b", "name": "Commented-code block (5 lines) in src/ask.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/ask.js:3"}, "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-ba551217f2a0968b", "name": "Commented-code block (6 lines) in src/relational-arcs.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/relational-arcs.js:3"}, "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-815f917839382ebe", "name": "Commented-code block (5 lines) in src/run-history.js:26", "shortDescription": {"text": "Commented-code block (5 lines) in src/run-history.js:26"}, "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-bb7e5735db1130e8", "name": "Commented-code block (6 lines) in src/cost.js:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/cost.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-5cee14186f487b6a", "name": "Commented-code block (7 lines) in src/reviewer.js:151", "shortDescription": {"text": "Commented-code block (7 lines) in src/reviewer.js:151"}, "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-b63bf0b5c6fea7df", "name": "Commented-code block (5 lines) in src/one-on-one-types/index.js:37", "shortDescription": {"text": "Commented-code block (5 lines) in src/one-on-one-types/index.js:37"}, "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-d0b17c8c07a7421d", "name": "8 env vars used in code but missing from .env.example", "shortDescription": {"text": "8 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `API_PORT`, `DEV`, `IMPECCABLE_CONTEXT_DIR`, `IMPECCABLE_CRITIQUE_META`, `NODE_ENV`, `NO_COLOR`, `OPENAI_MODEL`, `PORT`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19312"}, "properties": {"repository": "seroteams/darren", "repoUrl": "https://github.com/seroteams/darren", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-c8f3101894ee5542", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cli.js:42"}, "properties": {"repobilityId": "261c0d8ad92e124e", "scanner": "scanner-primary", "fingerprint": "c8f3101894ee5542", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32f9a1a8715e2ac5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 smoke-test.js:178"}, "properties": {"repobilityId": "c978e1316ad27b91", "scanner": "scanner-primary", "fingerprint": "32f9a1a8715e2ac5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a4a9d649866d7293", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/server/server.js:197"}, "properties": {"repobilityId": "10fd3ba597284359", "scanner": "scanner-primary", "fingerprint": "a4a9d649866d7293", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-481e66bd61acc983", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/server/session-persistence.js:122"}, "properties": {"repobilityId": "01c730e7045a0e75", "scanner": "scanner-primary", "fingerprint": "481e66bd61acc983", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d49a6d2f46cc5c4f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-m3-regression.js:258"}, "properties": {"repobilityId": "2e3224b76d7420fc", "scanner": "scanner-primary", "fingerprint": "d49a6d2f46cc5c4f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-10cb477ac95e204a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-regression.js:41"}, "properties": {"repobilityId": "596175ae00b52e21", "scanner": "scanner-primary", "fingerprint": "10cb477ac95e204a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f4e27791084d3dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-intro-order.js:63"}, "properties": {"repobilityId": "f92129297fac8f22", "scanner": "scanner-primary", "fingerprint": "9f4e27791084d3dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8577a54a528fa2a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-tests.js:54"}, "properties": {"repobilityId": "2df748fc84783da4", "scanner": "scanner-primary", "fingerprint": "8577a54a528fa2a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8af928aa40ae71b9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/focus-example.js:92"}, "properties": {"repobilityId": "cc4ca62b6d43c87f", "scanner": "scanner-primary", "fingerprint": "8af928aa40ae71b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c02b99d08b667354", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-back-nav.js:16"}, "properties": {"repobilityId": "27c1108a55c4ddca", "scanner": "scanner-primary", "fingerprint": "c02b99d08b667354", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc60ff94d3e29596", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-prompt-rules.js:107"}, "properties": {"repobilityId": "980d052dc0e186a8", "scanner": "scanner-primary", "fingerprint": "fc60ff94d3e29596", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5313e1f43617e1e9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-l-verify.js:39"}, "properties": {"repobilityId": "ff81c5cb5f001193", "scanner": "scanner-primary", "fingerprint": "5313e1f43617e1e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-efc78ac82405a185", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/manual-qa-verify.js:15"}, "properties": {"repobilityId": "3fa7980d3f11c49e", "scanner": "scanner-primary", "fingerprint": "efc78ac82405a185", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3bc71f8ee951e745", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m3-verify.js:30"}, "properties": {"repobilityId": "ba6b687fed4ed120", "scanner": "scanner-primary", "fingerprint": "3bc71f8ee951e745", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d3630427beccf01f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-replay-regression.js:24"}, "properties": {"repobilityId": "d01b9231d68a265f", "scanner": "scanner-primary", "fingerprint": "d3630427beccf01f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c8bf7ea7b350924f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m4-verify.js:20"}, "properties": {"repobilityId": "8955ab491fef79ce", "scanner": "scanner-primary", "fingerprint": "c8bf7ea7b350924f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8aba4ea15926f933", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/role-profile-demo.js:10"}, "properties": {"repobilityId": "ec5594719b2be96c", "scanner": "scanner-primary", "fingerprint": "8aba4ea15926f933", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8361b652ca66eccc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sweep.js:224"}, "properties": {"repobilityId": "948075c10fe29ea3", "scanner": "scanner-primary", "fingerprint": "8361b652ca66eccc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97391877c94ba439", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-arc-overlay.js:27"}, "properties": {"repobilityId": "b05d2b56b4e3bf79", "scanner": "scanner-primary", "fingerprint": "97391877c94ba439", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa374a542e8064c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-session-resume.js:20"}, "properties": {"repobilityId": "90eb9057fa9abc6c", "scanner": "scanner-primary", "fingerprint": "aa374a542e8064c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1b5c8ee04a98fac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/promote-candidates.js:82"}, "properties": {"repobilityId": "13153173e65c83f5", "scanner": "scanner-primary", "fingerprint": "f1b5c8ee04a98fac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ca7bbfad45d9abf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-bank.js:95"}, "properties": {"repobilityId": "269161d0181c0955", "scanner": "scanner-primary", "fingerprint": "2ca7bbfad45d9abf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5785eaf12b66e861", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-delta-snap.js:22"}, "properties": {"repobilityId": "4fd41955b2e1ef6d", "scanner": "scanner-primary", "fingerprint": "5785eaf12b66e861", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-93b97ca4ebce50e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-prep-role-diff.js:25"}, "properties": {"repobilityId": "b9691ee19d200b47", "scanner": "scanner-primary", "fingerprint": "93b97ca4ebce50e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5934b9b394816f5e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-prep-wording.js:20"}, "properties": {"repobilityId": "76a48358f73bac9d", "scanner": "scanner-primary", "fingerprint": "5934b9b394816f5e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e1882098802d0028", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-question-integrity.js:33"}, "properties": {"repobilityId": "fcbc7108fe35f313", "scanner": "scanner-primary", "fingerprint": "e1882098802d0028", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f6dec88f2448d1be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-lexicon.js:13"}, "properties": {"repobilityId": "edea74af1eba5b9b", "scanner": "scanner-primary", "fingerprint": "f6dec88f2448d1be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eb8ce1ac61263f48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-k-verify.js:22"}, "properties": {"repobilityId": "6cc616c6d3534f34", "scanner": "scanner-primary", "fingerprint": "eb8ce1ac61263f48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c999cdeed5bbbfae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-empty-signature.js:51"}, "properties": {"repobilityId": "c6c3fce97e467669", "scanner": "scanner-primary", "fingerprint": "c999cdeed5bbbfae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3eec069286f7e8c0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-trust-checks.js:12"}, "properties": {"repobilityId": "8f0850c87d22b434", "scanner": "scanner-primary", "fingerprint": "3eec069286f7e8c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1077cc6d9de0fda9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-reviews.js:28"}, "properties": {"repobilityId": "2f0f8c3061d82b95", "scanner": "scanner-primary", "fingerprint": "1077cc6d9de0fda9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-724dbff51f16f748", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-axis-coverage.js:169"}, "properties": {"repobilityId": "8bcd8b65a9a658d2", "scanner": "scanner-primary", "fingerprint": "724dbff51f16f748", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-813dd638be055a52", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-role-lexicons.js:22"}, "properties": {"repobilityId": "87255939833935c4", "scanner": "scanner-primary", "fingerprint": "813dd638be055a52", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e366e8074a5b452d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-person-profile.js:102"}, "properties": {"repobilityId": "dac465ce124bedbd", "scanner": "scanner-primary", "fingerprint": "e366e8074a5b452d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-496202939f293076", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-recurring-gap-damper.js:86"}, "properties": {"repobilityId": "ddf1cae5dc6a59ce", "scanner": "scanner-primary", "fingerprint": "496202939f293076", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c2d1d79f752e837", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-stage-tags.js:14"}, "properties": {"repobilityId": "26ce11aa9fb5160f", "scanner": "scanner-primary", "fingerprint": "1c2d1d79f752e837", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2174ad826e17b543", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/purge-logs.js:125"}, "properties": {"repobilityId": "322651b53ff422d1", "scanner": "scanner-primary", "fingerprint": "2174ad826e17b543", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1b89e6de1fe24da7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-scenario.js:176"}, "properties": {"repobilityId": "f8a5b74b6486ae03", "scanner": "scanner-primary", "fingerprint": "1b89e6de1fe24da7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c0580f823daf2041", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m5-verify.js:23"}, "properties": {"repobilityId": "2ad7249850727ade", "scanner": "scanner-primary", "fingerprint": "c0580f823daf2041", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e77be69f35127df7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-integrity.js:30"}, "properties": {"repobilityId": "6bd2ac6b23b7e4a7", "scanner": "scanner-primary", "fingerprint": "e77be69f35127df7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e97c693882b826f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-drill-cap.js:86"}, "properties": {"repobilityId": "3c8e2502dafd40b5", "scanner": "scanner-primary", "fingerprint": "e97c693882b826f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df47e078535a7126", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-question-validator.js:14"}, "properties": {"repobilityId": "d7c180fffd40f94b", "scanner": "scanner-primary", "fingerprint": "df47e078535a7126", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d33946799d139291", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-persona-bench.js:98"}, "properties": {"repobilityId": "83bd2d166707fccb", "scanner": "scanner-primary", "fingerprint": "d33946799d139291", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-515f0ace9a43fcb1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-maya-qa-prompts.js:17"}, "properties": {"repobilityId": "588443d8083698f7", "scanner": "scanner-primary", "fingerprint": "515f0ace9a43fcb1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16bd433bf4111c85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-role-profile-injection.js:57"}, "properties": {"repobilityId": "740652af67687eba", "scanner": "scanner-primary", "fingerprint": "16bd433bf4111c85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe175cdf77610ade", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-read-quality.js:43"}, "properties": {"repobilityId": "db711afcda3d5e30", "scanner": "scanner-primary", "fingerprint": "fe175cdf77610ade", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3c47f699b1083c42", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-maya-live-manual.js:31"}, "properties": {"repobilityId": "46c4c76412db0cd7", "scanner": "scanner-primary", "fingerprint": "3c47f699b1083c42", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3804e98ec1ae5a21", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-engagement-read.js:86"}, "properties": {"repobilityId": "890f723c86359733", "scanner": "scanner-primary", "fingerprint": "3804e98ec1ae5a21", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ed5a5f1d6cafa937", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replay-capture.js:75"}, "properties": {"repobilityId": "20c3b9f0bf303a1b", "scanner": "scanner-primary", "fingerprint": "ed5a5f1d6cafa937", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c976e5b5efb8869", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/drive-manual-run.js:106"}, "properties": {"repobilityId": "a482f65aed232a5f", "scanner": "scanner-primary", "fingerprint": "9c976e5b5efb8869", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8f470f6c0be8f32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval.js:36"}, "properties": {"repobilityId": "8f56baaad2a189b0", "scanner": "scanner-primary", "fingerprint": "d8f470f6c0be8f32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eef788cba1aea416", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-role-profile.js:23"}, "properties": {"repobilityId": "959313e3be80cd72", "scanner": "scanner-primary", "fingerprint": "eef788cba1aea416", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73df395c798d36a6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-lexicon-promote.js:52"}, "properties": {"repobilityId": "f24246a0addef430", "scanner": "scanner-primary", "fingerprint": "73df395c798d36a6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1b4c91220e63748", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m2-verify.js:196"}, "properties": {"repobilityId": "df05f696cbba21d7", "scanner": "scanner-primary", "fingerprint": "b1b4c91220e63748", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b3de7cfaf84382f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-judge.js:232"}, "properties": {"repobilityId": "696f09f887767413", "scanner": "scanner-primary", "fingerprint": "b3de7cfaf84382f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2c19a9175bdddd94", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-briefing-fallback.js:14"}, "properties": {"repobilityId": "5a6c37a154a81dbb", "scanner": "scanner-primary", "fingerprint": "2c19a9175bdddd94", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7528163356a5935c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-grounding-gate.js:14"}, "properties": {"repobilityId": "6928b3109f9b1f81", "scanner": "scanner-primary", "fingerprint": "7528163356a5935c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eb1e66bc9cceb0c3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/serve-static.js:19"}, "properties": {"repobilityId": "655f14677a8310d2", "scanner": "scanner-primary", "fingerprint": "eb1e66bc9cceb0c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1934c840830fae44", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-profiles.js:18"}, "properties": {"repobilityId": "4c8402e8d23a8234", "scanner": "scanner-primary", "fingerprint": "1934c840830fae44", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd39455b74109733", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gate.js:185"}, "properties": {"repobilityId": "71d421de0c17a438", "scanner": "scanner-primary", "fingerprint": "fd39455b74109733", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c8ad7f6e68a0ee2a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/batch-m1-verify.js:395"}, "properties": {"repobilityId": "c19738fc683116e7", "scanner": "scanner-primary", "fingerprint": "c8ad7f6e68a0ee2a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-244b1c618e6f9886", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-opener-routing.js:56"}, "properties": {"repobilityId": "205aa626caf26f27", "scanner": "scanner-primary", "fingerprint": "244b1c618e6f9886", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e835ab5b9e96e4e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-answer-suggest-shape.js:20"}, "properties": {"repobilityId": "b273301a20a1593e", "scanner": "scanner-primary", "fingerprint": "9e835ab5b9e96e4e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39a16222d77f9d2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-confidence-honesty.js:16"}, "properties": {"repobilityId": "87bd46cb50af8d57", "scanner": "scanner-primary", "fingerprint": "39a16222d77f9d2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b6e8de0a54a221be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-question-index.js:48"}, "properties": {"repobilityId": "1b764062aac889bf", "scanner": "scanner-primary", "fingerprint": "b6e8de0a54a221be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5418a84cb8f4b7a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 .claude/skills/impeccable/scripts/live-browser.js:156"}, "properties": {"repobilityId": "01ffae13be8e53b4", "scanner": "scanner-primary", "fingerprint": "5418a84cb8f4b7a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b01f3a63de7acaad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/ui.js:77"}, "properties": {"repobilityId": "6fa21d94b29d1dd5", "scanner": "scanner-primary", "fingerprint": "b01f3a63de7acaad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3c4982551b4c06d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/briefing.js:18"}, "properties": {"repobilityId": "6ebab42f7344407a", "scanner": "scanner-primary", "fingerprint": "3c4982551b4c06d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f2012d762c12476", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/run-rating.js:17"}, "properties": {"repobilityId": "ddfdd51352a32791", "scanner": "scanner-primary", "fingerprint": "7f2012d762c12476", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9baf052771c79e5d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/evaluation.js:9"}, "properties": {"repobilityId": "d19acd9aeba2e81f", "scanner": "scanner-primary", "fingerprint": "9baf052771c79e5d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3fe8215f60bb72a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/question-bank.js:12"}, "properties": {"repobilityId": "b907607cc312d67a", "scanner": "scanner-primary", "fingerprint": "3fe8215f60bb72a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3027221cacebaaf9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/preparation.js:5"}, "properties": {"repobilityId": "367be5c9ef642e1e", "scanner": "scanner-primary", "fingerprint": "3027221cacebaaf9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5b63ab88a4c7acd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/focus-points.js:5"}, "properties": {"repobilityId": "a25a90a570c206e8", "scanner": "scanner-primary", "fingerprint": "d5b63ab88a4c7acd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-88862530a459550a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/stages/questioning.js:60"}, "properties": {"repobilityId": "dc32d14062653fba", "scanner": "scanner-primary", "fingerprint": "88862530a459550a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51770f12d407c6cc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lexicon/cli-interactive.js:26"}, "properties": {"repobilityId": "1e6fe01a42f930e8", "scanner": "scanner-primary", "fingerprint": "51770f12d407c6cc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-f1267d33d85453d8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in smoke-test.js:26"}, "properties": {"repobilityId": "9f50931ca188ec3b", "scanner": "scanner-primary", "fingerprint": "f1267d33d85453d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "smoke-test.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-d1fe3c5bbdcccf51", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/main.js:128"}, "properties": {"repobilityId": "6ca04a83ad86a97d", "scanner": "scanner-primary", "fingerprint": "d1fe3c5bbdcccf51", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/main.js"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-d1c8cad3ef6211d5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/confirm.js:26"}, "properties": {"repobilityId": "984565e4907c6876", "scanner": "scanner-primary", "fingerprint": "d1c8cad3ef6211d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/confirm.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-de85173bcd40e68b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-list.js:25"}, "properties": {"repobilityId": "2dc706fac21e3390", "scanner": "scanner-primary", "fingerprint": "de85173bcd40e68b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/notes-list.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-c53edcd95d5507c6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/dev-badge.js:49"}, "properties": {"repobilityId": "e28ee9bf7c059d16", "scanner": "scanner-primary", "fingerprint": "c53edcd95d5507c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/dev-badge.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-fab3105910a9cf0a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-panel.js:22"}, "properties": {"repobilityId": "6eb863076b575ca8", "scanner": "scanner-primary", "fingerprint": "fab3105910a9cf0a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/notes-panel.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-1afb6e69a6d71b3a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/session-topbar.js:71"}, "properties": {"repobilityId": "253c449458f6b709", "scanner": "scanner-primary", "fingerprint": "1afb6e69a6d71b3a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/session-topbar.js"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-1fdb1e5176ec881e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/notes-panel-utils.js:77"}, "properties": {"repobilityId": "04e04fdef74a95e9", "scanner": "scanner-primary", "fingerprint": "1fdb1e5176ec881e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/notes-panel-utils.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-8fc9bcd2e2895bc3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/stage-review.js:30"}, "properties": {"repobilityId": "9608ee74086fa0bf", "scanner": "scanner-primary", "fingerprint": "8fc9bcd2e2895bc3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/stage-review.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-5cb53b2e19831fa3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/orb.js:7"}, "properties": {"repobilityId": "ace526eb8b591577", "scanner": "scanner-primary", "fingerprint": "5cb53b2e19831fa3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/orb.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-bdda672cd91de12c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/app-nav.js:54"}, "properties": {"repobilityId": "9a2a0ebd4e736787", "scanner": "scanner-primary", "fingerprint": "bdda672cd91de12c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/app-nav.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-8ed3c1d6a392272c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/run-debrief.js:35"}, "properties": {"repobilityId": "35c8116f2779f028", "scanner": "scanner-primary", "fingerprint": "8ed3c1d6a392272c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/run-debrief.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-730f472f9c2d0574", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/ui/axes.js:76"}, "properties": {"repobilityId": "8a46ddda08a9d678", "scanner": "scanner-primary", "fingerprint": "730f472f9c2d0574", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/ui/axes.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-d9e5e62b8d1b76a6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/compare.js:20"}, "properties": {"repobilityId": "ec87e167c468a6cc", "scanner": "scanner-primary", "fingerprint": "d9e5e62b8d1b76a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/compare.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-3884fba34642b8ef", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/review-run.js:115"}, "properties": {"repobilityId": "71879580a9646d4f", "scanner": "scanner-primary", "fingerprint": "3884fba34642b8ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/review-run.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-c763870600fc10e7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/library.js:124"}, "properties": {"repobilityId": "6cfada5863fe1258", "scanner": "scanner-primary", "fingerprint": "c763870600fc10e7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/library.js"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-b0c2e3413879b97d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/regression.js:13"}, "properties": {"repobilityId": "23d209be2c113866", "scanner": "scanner-primary", "fingerprint": "b0c2e3413879b97d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/regression.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-9dae99a7ce2089cf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/bank.js:11"}, "properties": {"repobilityId": "cc58f82073037cb1", "scanner": "scanner-primary", "fingerprint": "9dae99a7ce2089cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/bank.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-e39d373993df10be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/job-lexicons.js:10"}, "properties": {"repobilityId": "29d5134a5b50cae9", "scanner": "scanner-primary", "fingerprint": "e39d373993df10be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/job-lexicons.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-c6fc95324d7f4f1e", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in frontend/client/src/stages/job-lexicons.js:53"}, "properties": {"repobilityId": "686921cdfead1a98", "scanner": "scanner-primary", "fingerprint": "c6fc95324d7f4f1e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/job-lexicons.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-9d14489d22ebb9f2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/guide.js:159"}, "properties": {"repobilityId": "3b13a6941aac4dd6", "scanner": "scanner-primary", "fingerprint": "9d14489d22ebb9f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/guide.js"}, "region": {"startLine": 159}}}]}, {"ruleId": "scanner-d7a7dc6d02da0852", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/preparation.js:12"}, "properties": {"repobilityId": "6bc2eca51b1548a3", "scanner": "scanner-primary", "fingerprint": "d7a7dc6d02da0852", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/preparation.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-7551956ccd31573a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/briefing.js:15"}, "properties": {"repobilityId": "c2d21101d6a5368a", "scanner": "scanner-primary", "fingerprint": "7551956ccd31573a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/briefing.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-3d053dee161e1c42", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/onepage.js:60"}, "properties": {"repobilityId": "c003069526f67314", "scanner": "scanner-primary", "fingerprint": "3d053dee161e1c42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/onepage.js"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-0781822ea606421c", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/onepage.js:285"}, "properties": {"repobilityId": "b36bba972b8abf57", "scanner": "scanner-primary", "fingerprint": "0781822ea606421c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/onepage.js"}, "region": {"startLine": 285}}}]}, {"ruleId": "scanner-b25c040a3c255151", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/error.js:7"}, "properties": {"repobilityId": "3c3bcce3dfa35ac8", "scanner": "scanner-primary", "fingerprint": "b25c040a3c255151", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/error.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-c537d0b726e44bec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/focus-points.js:13"}, "properties": {"repobilityId": "26585940fa68ddd0", "scanner": "scanner-primary", "fingerprint": "c537d0b726e44bec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/focus-points.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-48ef7fed3d205c07", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/questioning.js:14"}, "properties": {"repobilityId": "44fb73d7013127f6", "scanner": "scanner-primary", "fingerprint": "48ef7fed3d205c07", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/questioning.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-99db1d1a27f5719f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/personas.js:9"}, "properties": {"repobilityId": "7fc96a8c132cf7a9", "scanner": "scanner-primary", "fingerprint": "99db1d1a27f5719f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/personas.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-bfa4c69f52d75642", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/intake.js:36"}, "properties": {"repobilityId": "f1b2ca5e19f6f74a", "scanner": "scanner-primary", "fingerprint": "bfa4c69f52d75642", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/intake.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-40ed98038e81daef", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/intake.js:309"}, "properties": {"repobilityId": "fbb66fc6f0a175d4", "scanner": "scanner-primary", "fingerprint": "40ed98038e81daef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/intake.js"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-f65c0dc6be82693b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/eval.js:8"}, "properties": {"repobilityId": "92f5ae56c0d72039", "scanner": "scanner-primary", "fingerprint": "f65c0dc6be82693b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/eval.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-d5322e5143eec74f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/run-debrief.js:6"}, "properties": {"repobilityId": "b0775854a2b0a005", "scanner": "scanner-primary", "fingerprint": "d5322e5143eec74f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/run-debrief.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-a3ea328fbf35539d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/lexicon-review.js:14"}, "properties": {"repobilityId": "b76b6316d5c98529", "scanner": "scanner-primary", "fingerprint": "a3ea328fbf35539d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/lexicon-review.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-9c179ea725910626", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/meeting-arcs.js:92"}, "properties": {"repobilityId": "ce7afba54dff897e", "scanner": "scanner-primary", "fingerprint": "9c179ea725910626", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/meeting-arcs.js"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-b976990570144559", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/client/src/stages/start.js:10"}, "properties": {"repobilityId": "dfdd8f82536a0562", "scanner": "scanner-primary", "fingerprint": "b976990570144559", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/start.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-faa40c0dae9b3a16", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/client/src/stages/start.js:381"}, "properties": {"repobilityId": "c194517185a36857", "scanner": "scanner-primary", "fingerprint": "faa40c0dae9b3a16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/client/src/stages/start.js"}, "region": {"startLine": 381}}}]}, {"ruleId": "scanner-b9db8ea9869f22d7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m3-verify.js:8"}, "properties": {"repobilityId": "1a6001a4ee6bd4f1", "scanner": "scanner-primary", "fingerprint": "b9db8ea9869f22d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/batch-m3-verify.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-ed7c8640792dd000", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m4-verify.js:8"}, "properties": {"repobilityId": "d383752a0e12190b", "scanner": "scanner-primary", "fingerprint": "ed7c8640792dd000", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/batch-m4-verify.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-0a9ae4ec63a1c2d0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m5-verify.js:8"}, "properties": {"repobilityId": "d7f1679c9ff788b2", "scanner": "scanner-primary", "fingerprint": "0a9ae4ec63a1c2d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/batch-m5-verify.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-1c7b1186ad89f9e0", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in scripts/verify-maya-live-manual.js:117"}, "properties": {"repobilityId": "74a581e40ccd0732", "scanner": "scanner-primary", "fingerprint": "1c7b1186ad89f9e0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify-maya-live-manual.js"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-98d765b19f811efb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/eval.js:8"}, "properties": {"repobilityId": "ada7853365739230", "scanner": "scanner-primary", "fingerprint": "98d765b19f811efb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/eval.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-d0556e4e122c5851", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m2-verify.js:8"}, "properties": {"repobilityId": "d3cd6469958845d3", "scanner": "scanner-primary", "fingerprint": "d0556e4e122c5851", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/batch-m2-verify.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-ee63485a7bcefb4e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/batch-m1-verify.js:9"}, "properties": {"repobilityId": "64dcc0b30f206679", "scanner": "scanner-primary", "fingerprint": "ee63485a7bcefb4e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/batch-m1-verify.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-d4c1e94d72271d8b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/lib/run-scenario.js:6"}, "properties": {"repobilityId": "3d4972d27cbcc26e", "scanner": "scanner-primary", "fingerprint": "d4c1e94d72271d8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lib/run-scenario.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-ee3e044ba18f04bb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/live.mjs:20"}, "properties": {"repobilityId": "e327fdc2ee6e1304", "scanner": "scanner-primary", "fingerprint": "ee3e044ba18f04bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/live.mjs"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-686aeab6c221f631", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/live-poll.mjs:11"}, "properties": {"repobilityId": "227f9ce57836ef88", "scanner": "scanner-primary", "fingerprint": "686aeab6c221f631", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/live-poll.mjs"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-c1e6b11d0f05e0e4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/impeccable/scripts/live-browser.js:420"}, "properties": {"repobilityId": "a385fe1ff803370e", "scanner": "scanner-primary", "fingerprint": "c1e6b11d0f05e0e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/live-browser.js"}, "region": {"startLine": 420}}}]}, {"ruleId": "scanner-6a1dd202fa8b6033", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in .claude/skills/impeccable/scripts/live-browser.js:1846"}, "properties": {"repobilityId": "22a9b987421218b0", "scanner": "scanner-primary", "fingerprint": "6a1dd202fa8b6033", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/live-browser.js"}, "region": {"startLine": 1846}}}]}, {"ruleId": "scanner-dc2aae743c1e5334", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/is-generated.mjs:16"}, "properties": {"repobilityId": "f44cda03c2905123", "scanner": "scanner-primary", "fingerprint": "dc2aae743c1e5334", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/is-generated.mjs"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-5ce82a740f9f3098", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/skills/impeccable/scripts/live-server.mjs:18"}, "properties": {"repobilityId": "ebfd6f8477058b09", "scanner": "scanner-primary", "fingerprint": "5ce82a740f9f3098", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/live-server.mjs"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-718d70230c6f1d90", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in .claude/skills/impeccable/scripts/live-server.mjs:267"}, "properties": {"repobilityId": "49d2b7660062be31", "scanner": "scanner-primary", "fingerprint": "718d70230c6f1d90", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/live-server.mjs"}, "region": {"startLine": 267}}}]}, {"ruleId": "scanner-e3fced14e0b53e87", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in .claude/skills/impeccable/scripts/modern-screenshot.umd.js:7"}, "properties": {"repobilityId": "12f57c8200874ad2", "scanner": "scanner-primary", "fingerprint": "e3fced14e0b53e87", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/modern-screenshot.umd.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-96f6cb90b4c68495", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/pipeline-lock.js:4"}, "properties": {"repobilityId": "79a92f955e8197a9", "scanner": "scanner-primary", "fingerprint": "96f6cb90b4c68495", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pipeline-lock.js"}, "region": {"startLine": 4}}}]}, {"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-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-7268c3279cc1166c", "level": "note", "message": {"text": "Very large file: .claude/skills/impeccable/scripts/live-browser.js (4860 lines)"}, "properties": {"repobilityId": "b994180f29d9c51e", "scanner": "scanner-primary", "fingerprint": "7268c3279cc1166c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "2d1875f78cd9bbb1", "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": "87b2ed5600153b4d", "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": "0d1a33f1346f8c68", "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": "cbe564928da9b2f0", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "4b6c448f1af39696", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "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": "227b8e6266434f81", "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": "5bd763b1d431c813", "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": "5bc0e70d9d170513", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f6308c6fa82ca5cd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/impeccable/reference/shape.md"}, "properties": {"repobilityId": "bf78a42bc1ced70b", "scanner": "scanner-primary", "fingerprint": "f6308c6fa82ca5cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/reference/shape.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1eb55cdbc931e3be", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/impeccable/reference/teach.md"}, "properties": {"repobilityId": "bd7a2791452f693f", "scanner": "scanner-primary", "fingerprint": "1eb55cdbc931e3be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/reference/teach.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6515e6e86d58d5b3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/impeccable/scripts/command-metadata.json"}, "properties": {"repobilityId": "b0a32ab76c325cf7", "scanner": "scanner-primary", "fingerprint": "6515e6e86d58d5b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/impeccable/scripts/command-metadata.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e4910620de822d74", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/reviewrun/SKILL.md"}, "properties": {"repobilityId": "c75ee12d81665683", "scanner": "scanner-primary", "fingerprint": "e4910620de822d74", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/reviewrun/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a3a282efd85ea79e", "level": "none", "message": {"text": "Commented-code block (7 lines) in smoke-test.js:11"}, "properties": {"repobilityId": "a34082004cb6a4a6", "scanner": "scanner-primary", "fingerprint": "a3a282efd85ea79e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-360555cb51bbab9f", "level": "none", "message": {"text": "Commented-code block (12 lines) in frontend/client/src/sse.js:3"}, "properties": {"repobilityId": "1bfce058732bccb6", "scanner": "scanner-primary", "fingerprint": "360555cb51bbab9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cecadee6dd36c0f4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/client/src/api.js:12"}, "properties": {"repobilityId": "19d29a0152ff730b", "scanner": "scanner-primary", "fingerprint": "cecadee6dd36c0f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-54bf5f996b433977", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/client/src/ui/notes-panel.js:1"}, "properties": {"repobilityId": "562cb57ecdc4ff93", "scanner": "scanner-primary", "fingerprint": "54bf5f996b433977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1aa3de09ee1fecd", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/client/src/ui/session-topbar.js:1"}, "properties": {"repobilityId": "c1ade89b11b3d073", "scanner": "scanner-primary", "fingerprint": "b1aa3de09ee1fecd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfc8fdf072562e2f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/client/src/ui/stage-review.js:1"}, "properties": {"repobilityId": "56bd0276d67ea62e", "scanner": "scanner-primary", "fingerprint": "cfc8fdf072562e2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6d2055627916248", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/client/src/ui/review-serialize.js:1"}, "properties": {"repobilityId": "691af389f5e0647b", "scanner": "scanner-primary", "fingerprint": "c6d2055627916248", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09c4684e66cae7cc", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/client/src/ui/vocab-groups.js:1"}, "properties": {"repobilityId": "5b9812398bc9718a", "scanner": "scanner-primary", "fingerprint": "09c4684e66cae7cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bdeeea578e99969", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/client/src/stages/library.js:1"}, "properties": {"repobilityId": "9ef30a21104df496", "scanner": "scanner-primary", "fingerprint": "7bdeeea578e99969", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07e637edfe50bf76", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/client/src/stages/guide.js:1"}, "properties": {"repobilityId": "3d74e095cbd6c448", "scanner": "scanner-primary", "fingerprint": "07e637edfe50bf76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dcf61821a7d6f789", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/client/src/stages/onepage.js:5"}, "properties": {"repobilityId": "9e90f9ba4fdc08e8", "scanner": "scanner-primary", "fingerprint": "dcf61821a7d6f789", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3ce1fd623950fc6", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/client/src/stages/questioning.js:408"}, "properties": {"repobilityId": "c6c439ee4b4c69f6", "scanner": "scanner-primary", "fingerprint": "c3ce1fd623950fc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d890c9a756276b3c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/client/src/stages/meeting-arcs.js:1"}, "properties": {"repobilityId": "b5124efc970d1aab", "scanner": "scanner-primary", "fingerprint": "d890c9a756276b3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c7744acdb5749d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/server/persona-script.js:25"}, "properties": {"repobilityId": "c401db801109e71d", "scanner": "scanner-primary", "fingerprint": "1c7744acdb5749d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64aa38476740a3fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/server/handlers/review.js:5"}, "properties": {"repobilityId": "94df210ca40f1464", "scanner": "scanner-primary", "fingerprint": "64aa38476740a3fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d99c396ded0c63b3", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/server/handlers/arcs.js:1"}, "properties": {"repobilityId": "c7997b9a3918982e", "scanner": "scanner-primary", "fingerprint": "d99c396ded0c63b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-866c4b675d5c9e2f", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-briefing-prompt-rules.js:2"}, "properties": {"repobilityId": "f09f82b465b85d9e", "scanner": "scanner-primary", "fingerprint": "866c4b675d5c9e2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94c680eac13828ea", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/benchmark.js:51"}, "properties": {"repobilityId": "dafb36756c6404e8", "scanner": "scanner-primary", "fingerprint": "94c680eac13828ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc433e67df78f185", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-prep-wording.js:4"}, "properties": {"repobilityId": "29015bf397ac045e", "scanner": "scanner-primary", "fingerprint": "bc433e67df78f185", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cde16893a8f16e29", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/test-question-integrity.js:4"}, "properties": {"repobilityId": "7495f61936c12f95", "scanner": "scanner-primary", "fingerprint": "cde16893a8f16e29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e211e03bdd16b471", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-axis-coverage.js:2"}, "properties": {"repobilityId": "198c24103f5ecf50", "scanner": "scanner-primary", "fingerprint": "e211e03bdd16b471", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78208e6c96769607", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/purge-logs.js:4"}, "properties": {"repobilityId": "7a820f2d37e43782", "scanner": "scanner-primary", "fingerprint": "78208e6c96769607", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf17f363411abc10", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/replay-scenario.js:2"}, "properties": {"repobilityId": "78be7919176cebf9", "scanner": "scanner-primary", "fingerprint": "bf17f363411abc10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7af93ac5fb2413eb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/drive-manual-run.js:48"}, "properties": {"repobilityId": "07199a6a9bc88e8f", "scanner": "scanner-primary", "fingerprint": "7af93ac5fb2413eb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f6aac70fa70dc4e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/gate.js:83"}, "properties": {"repobilityId": "435fffc286e2e87f", "scanner": "scanner-primary", "fingerprint": "f6aac70fa70dc4e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f74071826323140d", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/test-confidence-honesty.js:2"}, "properties": {"repobilityId": "2c596f12f58695c8", "scanner": "scanner-primary", "fingerprint": "f74071826323140d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d387988ddcec602", "level": "note", "message": {"text": "Legacy-named symbol `contextLegacy` in .claude/skills/impeccable/scripts/impeccable-paths.mjs:21"}, "properties": {"repobilityId": "30ce9095d61b0599", "scanner": "scanner-primary", "fingerprint": "9d387988ddcec602", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8ffb5e865aedb496", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/live-poll.mjs:17"}, "properties": {"repobilityId": "58c7bf14e421e767", "scanner": "scanner-primary", "fingerprint": "8ffb5e865aedb496", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbf1401dbaa37f42", "level": "note", "message": {"text": "Legacy-named symbol `withoutOld` in .claude/skills/impeccable/scripts/live-inject.mjs:118"}, "properties": {"repobilityId": "844c86831ff5e764", "scanner": "scanner-primary", "fingerprint": "fbf1401dbaa37f42", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ceb13bb5222cd00d", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-inject.mjs:326"}, "properties": {"repobilityId": "d37f130ade2bf3d6", "scanner": "scanner-primary", "fingerprint": "ceb13bb5222cd00d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dbc03d2958384d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/design-parser.mjs:39"}, "properties": {"repobilityId": "c66731857fe1ceee", "scanner": "scanner-primary", "fingerprint": "4dbc03d2958384d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6833bb3c9d82ab95", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-browser.js:136"}, "properties": {"repobilityId": "4a3d20f4f0c78d27", "scanner": "scanner-primary", "fingerprint": "6833bb3c9d82ab95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e05ae8b41bbfea08", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/live-browser.js:1841"}, "properties": {"repobilityId": "62102333329811c9", "scanner": "scanner-primary", "fingerprint": "e05ae8b41bbfea08", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ff842648d7803dfc", "level": "none", "message": {"text": "Commented-code block (7 lines) in .claude/skills/impeccable/scripts/live-wrap.mjs:192"}, "properties": {"repobilityId": "fa160ba71d815f7c", "scanner": "scanner-primary", "fingerprint": "ff842648d7803dfc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fbea42e09a237fe", "level": "none", "message": {"text": "Commented-code block (11 lines) in .claude/skills/impeccable/scripts/live-server.mjs:418"}, "properties": {"repobilityId": "247d3a45f5602966", "scanner": "scanner-primary", "fingerprint": "9fbea42e09a237fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a30b7179eb597df", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 .claude/skills/impeccable/scripts/modern-screenshot.umd.js:7"}, "properties": {"repobilityId": "58f475f1450f458c", "scanner": "scanner-primary", "fingerprint": "1a30b7179eb597df", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2bc3fc4512a545b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/skills/impeccable/scripts/live-accept.mjs:182"}, "properties": {"repobilityId": "f24a85fbafa9ef6f", "scanner": "scanner-primary", "fingerprint": "2bc3fc4512a545b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3ea05a061a96c16", "level": "none", "message": {"text": "Commented-code block (6 lines) in evals/trust-checks.js:7"}, "properties": {"repobilityId": "052662ae92f38cc5", "scanner": "scanner-primary", "fingerprint": "d3ea05a061a96c16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70034890de1309b3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/queue-manager.js:286"}, "properties": {"repobilityId": "05948d6c15497d43", "scanner": "scanner-primary", "fingerprint": "70034890de1309b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d2cceea48f738b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/models.js:21"}, "properties": {"repobilityId": "08cb9856044ff5db", "scanner": "scanner-primary", "fingerprint": "7d2cceea48f738b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd4c6f0e84a80eb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/selected-focus.js:33"}, "properties": {"repobilityId": "f41a0941b1470e24", "scanner": "scanner-primary", "fingerprint": "bd4c6f0e84a80eb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-053fe25db6762700", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/preparation.js:174"}, "properties": {"repobilityId": "9f9de52b1a19794d", "scanner": "scanner-primary", "fingerprint": "053fe25db6762700", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c68d805e0cbeb3c", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/question-eligibility.js:1"}, "properties": {"repobilityId": "c925569b077207d8", "scanner": "scanner-primary", "fingerprint": "0c68d805e0cbeb3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ece879414618671", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/arc-overlay.js:6"}, "properties": {"repobilityId": "21f5aae2a573b97a", "scanner": "scanner-primary", "fingerprint": "3ece879414618671", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2405b4d61f808abf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/golden-checks.js:18"}, "properties": {"repobilityId": "e95acc705a05de75", "scanner": "scanner-primary", "fingerprint": "2405b4d61f808abf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80abd88ab2cc0c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/ask.js:3"}, "properties": {"repobilityId": "ed60dc91fe86bef9", "scanner": "scanner-primary", "fingerprint": "80abd88ab2cc0c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba551217f2a0968b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/relational-arcs.js:3"}, "properties": {"repobilityId": "1172ad2e3ed91386", "scanner": "scanner-primary", "fingerprint": "ba551217f2a0968b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-815f917839382ebe", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/run-history.js:26"}, "properties": {"repobilityId": "6aea8d4b28b1c37e", "scanner": "scanner-primary", "fingerprint": "815f917839382ebe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb7e5735db1130e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/cost.js:25"}, "properties": {"repobilityId": "c1eee8269dbef10d", "scanner": "scanner-primary", "fingerprint": "bb7e5735db1130e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cee14186f487b6a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/reviewer.js:151"}, "properties": {"repobilityId": "386562d536d3d7b8", "scanner": "scanner-primary", "fingerprint": "5cee14186f487b6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b63bf0b5c6fea7df", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/one-on-one-types/index.js:37"}, "properties": {"repobilityId": "6fd5b46724e8707d", "scanner": "scanner-primary", "fingerprint": "b63bf0b5c6fea7df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0b17c8c07a7421d", "level": "note", "message": {"text": "8 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "17fe720e8247f9df", "scanner": "scanner-primary", "fingerprint": "d0b17c8c07a7421d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}