{"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-e8067a8df712fb95", "name": "Possibly dead Python function: run_single_query", "shortDescription": {"text": "Possibly dead Python function: run_single_query"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d1d7e070d662788", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-986798d8be1e94d0", "name": "Possibly dead Python function: do_POST", "shortDescription": {"text": "Possibly dead Python function: do_POST"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa4344d6f82f9192", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-593a3c9146817b3a", "name": "Possibly dead Python function: merge_runs", "shortDescription": {"text": "Possibly dead Python function: merge_runs"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-195326e022c838cd", "name": "Possibly dead Python function: simplify_redlines", "shortDescription": {"text": "Possibly dead Python function: simplify_redlines"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-45685ddcb947ad07", "name": "Possibly dead Python function: infer_author", "shortDescription": {"text": "Possibly dead Python function: infer_author"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-26ad1307f84b251d", "name": "Possibly dead Python function: merge_runs", "shortDescription": {"text": "Possibly dead Python function: merge_runs"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17250dded5270b59", "name": "Possibly dead Python function: simplify_redlines", "shortDescription": {"text": "Possibly dead Python function: simplify_redlines"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf3daf588f69a150", "name": "Possibly dead Python function: infer_author", "shortDescription": {"text": "Possibly dead Python function: infer_author"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b80dc38baa0ca093", "name": "Possibly dead Python function: merge_runs", "shortDescription": {"text": "Possibly dead Python function: merge_runs"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81760d0b6e34ffff", "name": "Possibly dead Python function: simplify_redlines", "shortDescription": {"text": "Possibly dead Python function: simplify_redlines"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90feac9d6becc02a", "name": "Possibly dead Python function: infer_author", "shortDescription": {"text": "Possibly dead Python function: infer_author"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a76354e70a00657", "name": "Possibly dead Python function: patched_get_inherited", "shortDescription": {"text": "Possibly dead Python function: patched_get_inherited"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0cab7ac7459a8671", "name": "Possibly dead Python function: sort_key", "shortDescription": {"text": "Possibly dead Python function: sort_key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e28ff4b84cad469", "name": "Stray `console.log` in TS/JS \u2014 sidecar/packages/runtime/src/personality.ts:935", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 sidecar/packages/runtime/src/personality.ts:935"}, "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-f91610c763547eeb", "name": "Stray `console.log` in TS/JS \u2014 sidecar/src/instrumentation.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 sidecar/src/instrumentation.ts: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-6266ca0552599364", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/settings/model-picker.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/settings/model-picker.tsx:186"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8be179cf2359ab4f", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/file-tree.tsx:455", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/file-tree.tsx:455"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a08c93dfcb63def7", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/quick-open.tsx:245", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/quick-open.tsx:245"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83bde2b923304bcf", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/upload-progress-toast.tsx:70", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/upload-progress-toast.tsx:70"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b126b6a372fd3e0", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/chat/tool-call-card.tsx:115", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/chat/tool-call-card.tsx:115"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0d437e8a9f1a90e", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-viewer/editor-toolbar.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-viewer/editor-toolbar.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-914611349894da9e", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-viewer/file-viewer.tsx:203", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-viewer/file-viewer.tsx:203"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab1eb1156c8b47d3", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/terminal/terminal.tsx:370", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/terminal/terminal.tsx:370"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48bfe44e83e3f8fa", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/shell/workspace-status-bar.tsx:114", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/shell/workspace-status-bar.tsx:114"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89a6a724d6f64964", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/source-control/status-list.tsx:328", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/source-control/status-list.tsx:328"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e94eaba8bac1a04", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/source-control/branch-switcher.tsx:149", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/source-control/branch-switcher.tsx:149"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bfccd98ae6b6f967", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/graph/graph-panel.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/graph/graph-panel.tsx:101"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-338392787af6cf3b", "name": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/project/project-picker.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/project/project-picker.tsx:118"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb4916fe9107edcc", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 sidecar/src/app/layout.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 sidecar/src/app/layout.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-309349bd31fbc04f", "name": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/skill-creator/assets/eval_review.html:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/skill-creator/assets/eval_review.html:69"}, "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-f446268a771bce9c", "name": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/skill-creator/eval-viewer/viewer.html:766", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/skill-creator/eval-viewer/viewer.html:766"}, "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-82522e329355e0cc", "name": "Insecure pattern 'subprocess_shell_true' in .claude/skills/webapp-testing/scripts/with_server.py:71", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in .claude/skills/webapp-testing/scripts/with_server.py:71"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fcf52b57ab29e73", "name": "Insecure pattern 'weak_hash' in .claude/skills/security-audit/SKILL.md:91", "shortDescription": {"text": "Insecure pattern 'weak_hash' in .claude/skills/security-audit/SKILL.md:91"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2d0bdc37c1f9f34", "name": "Insecure pattern 'node_child_process' in sidecar/packages/project-context/src/infra-probes.ts:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/project-context/src/infra-probes.ts:21"}, "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-c79f545f60ede4aa", "name": "Insecure pattern 'node_child_process' in sidecar/packages/git/src/exec.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/git/src/exec.ts: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-9ac23d15147fae48", "name": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/mcp-server.ts:38", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/mcp-server.ts:38"}, "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-d338eb92559e27c4", "name": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/knowledge-watchdog.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/knowledge-watchdog.ts:17"}, "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-a885236a4d975e96", "name": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/watchdog.ts:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/watchdog.ts: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-26e28e0c1b29f77b", "name": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/auth.ts:22", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/auth.ts:22"}, "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-c32c53a9f9d0ee1f", "name": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/change-checkpoints.ts:32", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/change-checkpoints.ts:32"}, "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-d94bd055960121dd", "name": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/claude-cli.ts:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/claude-cli.ts:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d40d132ede48fdcb", "name": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/background-jobs.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/background-jobs.ts: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-451da32e776649f8", "name": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/project-skill-discoverer.ts:22", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/project-skill-discoverer.ts:22"}, "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-357c0d3b20fe196e", "name": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/skill-installer.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/skill-installer.ts: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-c4c23ae71a2c6f3d", "name": "Insecure pattern 'node_child_process' in sidecar/packages/git-watch/src/index.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/git-watch/src/index.ts:13"}, "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-2727936a512817c8", "name": "Insecure pattern 'dangerous_innerhtml' in sidecar/src/app/layout.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in sidecar/src/app/layout.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-12d80987b395cac7", "name": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/reveal/route.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/reveal/route.ts: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-983a1a3848c36543", "name": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/search/route.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/search/route.ts: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-7146f70acfe22643", "name": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/status/route.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/status/route.ts:1"}, "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-fa375807234d1b0d", "name": "Insecure pattern 'node_child_process' in sidecar/src/app/api/terminal/run/route.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/terminal/run/route.ts:1"}, "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-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7523f4f04c1af43c", "name": "Very large file: sidecar/packages/runtime/src/sdk-runner.ts (1167 lines)", "shortDescription": {"text": "Very large file: sidecar/packages/runtime/src/sdk-runner.ts (1167 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-6feee25903fbf8a7", "name": "Very large file: sidecar/packages/runtime/src/personality.ts (1250 lines)", "shortDescription": {"text": "Very large file: sidecar/packages/runtime/src/personality.ts (1250 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": "35 tests / 278 src (ratio 0.13)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1efa2736a4d6d630", "name": "Node manifest has dependencies but no lockfile: sidecar/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df2377bebbe34810", "name": "Node manifest has dependencies but no lockfile: sidecar/packages/ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/ui/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-febf852e5c384b8d", "name": "Node manifest has dependencies but no lockfile: sidecar/packages/project-context/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/project-context/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c12642c5b809b332", "name": "Node manifest has dependencies but no lockfile: sidecar/packages/git/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/git/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7fba5a9cea0c18df", "name": "Node manifest has dependencies but no lockfile: sidecar/packages/graphify-bridge/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/graphify-bridge/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6550ab7c0ab14fbf", "name": "Node manifest has dependencies but no lockfile: sidecar/packages/runtime/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/runtime/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bef72b6c1fedcf3c", "name": "Node manifest has dependencies but no lockfile: sidecar/packages/git-watch/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/git-watch/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e53bd2694a5347f7", "name": "Node manifest has dependencies but no lockfile: sidecar/packages/tools/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/tools/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 456 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 39 placeholder/mock markers across 19 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "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-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 lockfile. 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-24f2ea4bd14badc1", "name": "Agent instruction contains unpinned remote install: CLAUDE.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: CLAUDE.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "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-ed062e9f960c5293", "name": "Agent authority lacks a verifier contract: .claude/commands/graph-refresh.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/graph-refresh.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-0e039c647160cd5f", "name": "Agent authority lacks a verifier contract: .claude/skills/README.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/README.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-3ca7a213fe616a98", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a9ec9880085cb5d4", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/php/managed-agents/README.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/php/managed-agents/README.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0b8b65e4f654f9a", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/php/managed-agents/README.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/php/managed-agents/README.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-d8ea408f1ec4b753", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/ruby/managed-agents/README.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/ruby/managed-agents/README.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc304c967856d083", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/ruby/managed-agents/README.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/ruby/managed-agents/README.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-751326f420a09e01", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/models.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/models.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-2bd7a47d45064ffe", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/shared/model-migration.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/shared/model-migration.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e7a6c24908d4090", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-tools.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-tools.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-45a72f117f884eaf", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-events.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-events.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-79a494b125803f24", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-api-reference.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-api-reference.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-7956afa2bc463d67", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-environments.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-environments.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-3226215cadb94d9a", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/live-sources.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/live-sources.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-463e3b92f8382481", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-client-patterns.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-client-patterns.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-c99ec8e49b87261d", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-core.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-core.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-1445c81d4371853b", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/tool-use.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/tool-use.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-783dd71f2606e10e", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/streaming.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/streaming.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-128a57da34216c05", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/files-api.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/files-api.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-597d3349c08cac8f", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/csharp/claude-api.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/csharp/claude-api.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c12e85e7c8f6e84e", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/python/claude-api/tool-use.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/python/claude-api/tool-use.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-1281eed2a52128be", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/python/claude-api/streaming.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/python/claude-api/streaming.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b58a76827d7b5b4", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/python/claude-api/files-api.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/python/claude-api/files-api.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-9d7d3b6d73f02f56", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/java/claude-api.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/java/claude-api.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-979349f347050579", "name": "Agent instruction/config may expose a secret: .claude/skills/claude-api/go/managed-agents/README.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/go/managed-agents/README.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b87ab284b4a4f7c", "name": "Agent authority lacks a verifier contract: .claude/skills/claude-api/go/managed-agents/README.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/go/managed-agents/README.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-54bc4fe9ef702490", "name": "Agent authority lacks a verifier contract: .claude/skills/skill-creator/references/schemas.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/skill-creator/references/schemas.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-45e298e2cf0159da", "name": "Agent authority lacks a verifier contract: .claude/skills/skill-creator/agents/comparator.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/skill-creator/agents/comparator.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-24572f5f03d5e7cf", "name": "Agent authority lacks a verifier contract: .claude/skills/docx/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/docx/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-68c713f960a44e0f", "name": "Agent instruction contains unpinned remote install: .claude/skills/docx/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/skills/docx/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-429657deea2a79d6", "name": "Agent instruction contains unpinned remote install: .claude/skills/pptx/pptxgenjs.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/skills/pptx/pptxgenjs.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46aca00f092d5662", "name": "Agent instruction contains unpinned remote install: .claude/skills/pptx/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/skills/pptx/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74f356937066690c", "name": "Agent authority lacks a verifier contract: .claude/skills/pdf/reference.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/pdf/reference.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-bdcf5eb3ec5b9efb", "name": "Commented-code block (5 lines) in scripts/run-tests-via-jiti.mjs:341", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/run-tests-via-jiti.mjs:341"}, "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-76e350eb8077b5bf", "name": "Commented-code block (5 lines) in .claude/skills/skill-creator/scripts/improve_description.py:158", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/skills/skill-creator/scripts/improve_description.py:158"}, "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-fd232cae9e3f611a", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/skill-creator/scripts/run_eval.py:85", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/skill-creator/scripts/run_eval.py:85"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f443ad689f8a131", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/docx/scripts/office/soffice.py:14", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/docx/scripts/office/soffice.py:14"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab08cab1a770f386", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/docx/scripts/office/validators/redlining.py:138", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/docx/scripts/office/validators/redlining.py:138"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9648cfd5269843a7", "name": "Legacy-named symbol `xml_copy` in .claude/skills/docx/scripts/office/validators/base.py:705", "shortDescription": {"text": "Legacy-named symbol `xml_copy` in .claude/skills/docx/scripts/office/validators/base.py:705"}, "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-49b4101e5a4b87c7", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/thumbnail.py:161", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/thumbnail.py:161"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df5539f34e41a53b", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/office/soffice.py:14", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/office/soffice.py:14"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ddc6c9ada41e1cdc", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/office/validators/redlining.py:138", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/office/validators/redlining.py:138"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7912280d817507ce", "name": "Legacy-named symbol `xml_copy` in .claude/skills/pptx/scripts/office/validators/base.py:705", "shortDescription": {"text": "Legacy-named symbol `xml_copy` in .claude/skills/pptx/scripts/office/validators/base.py:705"}, "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-2cb3038ac7d65c39", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/recalc.py:92", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/recalc.py:92"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff43e00de3ee253e", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/office/soffice.py:14", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/office/soffice.py:14"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72c80cde06c9613f", "name": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/office/validators/redlining.py:138", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/office/validators/redlining.py:138"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01dc77214133c458", "name": "Legacy-named symbol `xml_copy` in .claude/skills/xlsx/scripts/office/validators/base.py:705", "shortDescription": {"text": "Legacy-named symbol `xml_copy` in .claude/skills/xlsx/scripts/office/validators/base.py:705"}, "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-bb2305fc093c7ebe", "name": "Commented-code block (5 lines) in sidecar/next.config.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/next.config.ts:19"}, "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-01c8a27d770d4a83", "name": "Commented-code block (6 lines) in sidecar/packages/ui/src/alert-dialog.tsx:69", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/packages/ui/src/alert-dialog.tsx:69"}, "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-98615c37da81e5b0", "name": "Commented-code block (13 lines) in sidecar/packages/ui/src/dialog.tsx:69", "shortDescription": {"text": "Commented-code block (13 lines) in sidecar/packages/ui/src/dialog.tsx:69"}, "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-0a712a959aa8d49c", "name": "Commented-code block (6 lines) in sidecar/packages/ui/src/dropdown-menu.tsx:45", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/packages/ui/src/dropdown-menu.tsx:45"}, "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-d3422fd7fd9cc934", "name": "Commented-code block (7 lines) in sidecar/packages/ui/src/context-menu.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in sidecar/packages/ui/src/context-menu.tsx:9"}, "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-f513c8fe528b27c6", "name": "Commented-code block (5 lines) in sidecar/packages/project-context/src/workflow-health.ts:201", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/packages/project-context/src/workflow-health.ts:201"}, "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-fc519293b1183f11", "name": "Commented-code block (5 lines) in sidecar/packages/project-context/src/index.ts:170", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/packages/project-context/src/index.ts:170"}, "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-1f7a83d0e01af9af", "name": "Commented-code block (10 lines) in sidecar/packages/runtime/tests/can-use-tool-dispatch.test.ts:26", "shortDescription": {"text": "Commented-code block (10 lines) in sidecar/packages/runtime/tests/can-use-tool-dispatch.test.ts: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-4167c66fed0029c6", "name": "Commented-code block (7 lines) in sidecar/packages/runtime/tests/models-tier.test.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in sidecar/packages/runtime/tests/models-tier.test.ts: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-aba2507bbcb25da6", "name": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/skill-enablement.test.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/skill-enablement.test.ts:14"}, "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-0298734748525a10", "name": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/ask-mode-readonly.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/ask-mode-readonly.test.ts: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-c5ccd95c9d6d303e", "name": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/wakeup-scheduler.test.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/wakeup-scheduler.test.ts: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-99a2ac7761a60a81", "name": "Commented-code block (9 lines) in sidecar/packages/runtime/tests/thinking-mode.test.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in sidecar/packages/runtime/tests/thinking-mode.test.ts: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-d2aaa095179a63bf", "name": "Legacy-named symbol `hcbik_old` in sidecar/packages/runtime/tests/honeycomb-telemetry.test.ts:209", "shortDescription": {"text": "Legacy-named symbol `hcbik_old` in sidecar/packages/runtime/tests/honeycomb-telemetry.test.ts:209"}, "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-5546e94033d896a8", "name": "Commented-code block (9 lines) in sidecar/packages/runtime/src/change-checkpoints.ts:352", "shortDescription": {"text": "Commented-code block (9 lines) in sidecar/packages/runtime/src/change-checkpoints.ts:352"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e98a4a906326ec4b", "name": "Commented-code block (6 lines) in sidecar/packages/runtime/src/claude-cli.ts:56", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/packages/runtime/src/claude-cli.ts:56"}, "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-2be6e4974c7e64c8", "name": "Commented-code block (8 lines) in sidecar/packages/runtime/src/paths.ts:29", "shortDescription": {"text": "Commented-code block (8 lines) in sidecar/packages/runtime/src/paths.ts:29"}, "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-54f5df68616284cc", "name": "Commented-code block (8 lines) in sidecar/packages/runtime/src/sdk-runner.ts:283", "shortDescription": {"text": "Commented-code block (8 lines) in sidecar/packages/runtime/src/sdk-runner.ts:283"}, "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-8aba02189a1f37d9", "name": "Commented-code block (6 lines) in sidecar/packages/runtime/src/honeycomb-telemetry.ts:183", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/packages/runtime/src/honeycomb-telemetry.ts:183"}, "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-408ad62f4ed1bf61", "name": "Commented-code block (7 lines) in sidecar/packages/runtime/src/fs-sandbox.ts:110", "shortDescription": {"text": "Commented-code block (7 lines) in sidecar/packages/runtime/src/fs-sandbox.ts:110"}, "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-62d16fa6d46ef471", "name": "Commented-code block (7 lines) in sidecar/packages/runtime/src/session.ts:90", "shortDescription": {"text": "Commented-code block (7 lines) in sidecar/packages/runtime/src/session.ts:90"}, "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-1ef57fe9fbf4440b", "name": "Commented-code block (5 lines) in sidecar/packages/runtime/src/honeycomb-config.ts:146", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/src/honeycomb-config.ts:146"}, "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-d6472262891bd976", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/packages/runtime/src/models.ts:187", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/packages/runtime/src/models.ts:187"}, "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-c73845ab97e32d88", "name": "Commented-code block (13 lines) in sidecar/packages/runtime/src/wakeup-scheduler.ts:97", "shortDescription": {"text": "Commented-code block (13 lines) in sidecar/packages/runtime/src/wakeup-scheduler.ts:97"}, "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-8b67650177b11e19", "name": "Commented-code block (8 lines) in sidecar/packages/tools/src/policy.ts:55", "shortDescription": {"text": "Commented-code block (8 lines) in sidecar/packages/tools/src/policy.ts:55"}, "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-6a94accaec71e133", "name": "Commented-code block (7 lines) in sidecar/src/components/settings/settings-panel.tsx:73", "shortDescription": {"text": "Commented-code block (7 lines) in sidecar/src/components/settings/settings-panel.tsx:73"}, "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-eb11b8fac68bc863", "name": "Commented-code block (5 lines) in sidecar/src/components/settings/model-picker.tsx:141", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/components/settings/model-picker.tsx:141"}, "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-f4bcc67d12b9401e", "name": "Commented-code block (5 lines) in sidecar/src/components/settings/honeycomb-config.tsx:516", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/components/settings/honeycomb-config.tsx:516"}, "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-d328c6a34fe4a3ba", "name": "Commented-code block (7 lines) in sidecar/src/components/input/chat-input.tsx:38", "shortDescription": {"text": "Commented-code block (7 lines) in sidecar/src/components/input/chat-input.tsx:38"}, "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-35d9eede1cdf6c19", "name": "Commented-code block (8 lines) in sidecar/src/components/file-tree/file-tree.tsx:562", "shortDescription": {"text": "Commented-code block (8 lines) in sidecar/src/components/file-tree/file-tree.tsx:562"}, "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-c9f02c97b0779d27", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/file-tree/quick-open.tsx:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/file-tree/quick-open.tsx:124"}, "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-8ff55c50cebfc339", "name": "Commented-code block (6 lines) in sidecar/src/components/chat/use-chat-stream.ts:274", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/components/chat/use-chat-stream.ts:274"}, "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-f7f905890d12058d", "name": "Commented-code block (5 lines) in sidecar/src/components/file-viewer/monaco-editor.tsx:37", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/components/file-viewer/monaco-editor.tsx: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-56e0b6e2cfcc3472", "name": "Commented-code block (5 lines) in sidecar/src/components/file-viewer/file-viewer.tsx:43", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/components/file-viewer/file-viewer.tsx:43"}, "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-20fda3a405ecd98f", "name": "Commented-code block (5 lines) in sidecar/src/components/shell/top-bar.tsx:140", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/components/shell/top-bar.tsx:140"}, "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-79569d12dc8bc7ae", "name": "Commented-code block (5 lines) in sidecar/src/components/shell/workspace-status-bar.tsx:42", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/components/shell/workspace-status-bar.tsx:42"}, "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-86e9b3e8191b0bb5", "name": "Commented-code block (6 lines) in sidecar/src/components/brain/brain-liquid.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/components/brain/brain-liquid.tsx: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-e53cfeff7e8939f8", "name": "Commented-code block (8 lines) in sidecar/src/components/source-control/branch-switcher.tsx:48", "shortDescription": {"text": "Commented-code block (8 lines) in sidecar/src/components/source-control/branch-switcher.tsx:48"}, "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-bf1fe2d0df732a9a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/branch-switcher.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/branch-switcher.tsx:63"}, "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-594b8881e4062947", "name": "Commented-code block (6 lines) in sidecar/src/components/source-control/use-git-mutations.ts:222", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/components/source-control/use-git-mutations.ts:222"}, "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-0f19ddddd50c44ef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/use-git-mutations.ts:292", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/use-git-mutations.ts:292"}, "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-303b1da6bde976c1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/source-control-panel.tsx:137", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/source-control-panel.tsx:137"}, "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-ac5c132db3282bcd", "name": "Commented-code block (6 lines) in sidecar/src/app/page.tsx:18", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/app/page.tsx: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-d2380980188c4b6f", "name": "Commented-code block (6 lines) in sidecar/src/app/layout.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/app/layout.tsx: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-6b61650bca5d3a45", "name": "Commented-code block (6 lines) in sidecar/src/app/api/health/route.ts:26", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/health/route.ts: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-c8b7fb4dc2921615", "name": "Commented-code block (6 lines) in sidecar/src/app/api/sessions/[sessionId]/route.ts:17", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/sessions/[sessionId]/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7102b35d0145b13f", "name": "Commented-code block (5 lines) in sidecar/src/app/api/chat/route.ts:106", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/app/api/chat/route.ts:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28fdfe9d2a5541ae", "name": "Commented-code block (9 lines) in sidecar/src/app/api/git/branch/switch/route.ts:62", "shortDescription": {"text": "Commented-code block (9 lines) in sidecar/src/app/api/git/branch/switch/route.ts:62"}, "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-b9d2964bcc97d83d", "name": "Commented-code block (9 lines) in sidecar/src/app/api/files/tree/route.ts:18", "shortDescription": {"text": "Commented-code block (9 lines) in sidecar/src/app/api/files/tree/route.ts: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-08b5c593c01bc16a", "name": "Commented-code block (6 lines) in sidecar/src/app/api/files/content/route.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/files/content/route.ts:9"}, "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-5556ecff676ed802", "name": "Commented-code block (6 lines) in sidecar/src/app/api/honeycomb/config/route.ts:104", "shortDescription": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/honeycomb/config/route.ts:104"}, "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-10cbecc6ebc97d25", "name": "Commented-code block (5 lines) in sidecar/src/app/api/graph/html/route.ts:99", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/app/api/graph/html/route.ts:99"}, "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-e345d0b4344ae6c0", "name": "Commented-code block (5 lines) in sidecar/src/lib/use-prefs.tsx:193", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/lib/use-prefs.tsx:193"}, "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-d1272c3a022022ad", "name": "Commented-code block (5 lines) in sidecar/src/lib/csrf.ts:131", "shortDescription": {"text": "Commented-code block (5 lines) in sidecar/src/lib/csrf.ts:131"}, "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-106cd5fa5d75b1ce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/lib/csrf.ts:154", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/lib/csrf.ts:154"}, "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-1038c90ee9e50ba6", "name": "Commented-code block (8 lines) in sidecar/src/lib/turn-orchestrator.ts:242", "shortDescription": {"text": "Commented-code block (8 lines) in sidecar/src/lib/turn-orchestrator.ts:242"}, "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-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\n.claude/skills/docx/scripts/office/validate.py:main, .claude/skills/pptx/scripts/office/validate.py:main, .claude/skills/xlsx/scripts/office/validate.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\n.claude/skills/docx/scripts/office/helpers/merge_runs.py:merge_runs, .claude/skills/docx/scripts/office/helpers/simplify_redlines.py:simplify_redlines, .claude/skills/pptx/scripts/office/helpers/merge_runs.py:merge_runs, .claude/skills/pptx/scripts/office/helpers/simplify_redlines.py:simplify_redlines\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18293"}, "properties": {"repository": "RobertIlisei/MARVIN", "repoUrl": "https://github.com/RobertIlisei/MARVIN", "branch": "main"}, "results": [{"ruleId": "scanner-e8067a8df712fb95", "level": "note", "message": {"text": "Possibly dead Python function: run_single_query"}, "properties": {"repobilityId": "1056c4dff9b57a73", "scanner": "scanner-primary", "fingerprint": "e8067a8df712fb95", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/scripts/run_eval.py:35"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2d1d7e070d662788", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "2d1d7e070d662788", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/eval-viewer/generate_review.py:332"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-986798d8be1e94d0", "level": "note", "message": {"text": "Possibly dead Python function: do_POST"}, "properties": {"repobilityId": "53357410ca9379a9", "scanner": "scanner-primary", "fingerprint": "986798d8be1e94d0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/eval-viewer/generate_review.py:361"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa4344d6f82f9192", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "aa4344d6f82f9192", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/eval-viewer/generate_review.py:382"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-593a3c9146817b3a", "level": "note", "message": {"text": "Possibly dead Python function: merge_runs"}, "properties": {"repobilityId": "435767544049256d", "scanner": "scanner-primary", "fingerprint": "593a3c9146817b3a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/docx/scripts/office/helpers/merge_runs.py:16"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-195326e022c838cd", "level": "note", "message": {"text": "Possibly dead Python function: simplify_redlines"}, "properties": {"repobilityId": "cfedaef01c821ad9", "scanner": "scanner-primary", "fingerprint": "195326e022c838cd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/docx/scripts/office/helpers/simplify_redlines.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-45685ddcb947ad07", "level": "note", "message": {"text": "Possibly dead Python function: infer_author"}, "properties": {"repobilityId": "82897dcd4c40919c", "scanner": "scanner-primary", "fingerprint": "45685ddcb947ad07", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/docx/scripts/office/helpers/simplify_redlines.py:172"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26ad1307f84b251d", "level": "note", "message": {"text": "Possibly dead Python function: merge_runs"}, "properties": {"repobilityId": "435767544049256d", "scanner": "scanner-primary", "fingerprint": "26ad1307f84b251d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pptx/scripts/office/helpers/merge_runs.py:16"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-17250dded5270b59", "level": "note", "message": {"text": "Possibly dead Python function: simplify_redlines"}, "properties": {"repobilityId": "cfedaef01c821ad9", "scanner": "scanner-primary", "fingerprint": "17250dded5270b59", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pptx/scripts/office/helpers/simplify_redlines.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf3daf588f69a150", "level": "note", "message": {"text": "Possibly dead Python function: infer_author"}, "properties": {"repobilityId": "82897dcd4c40919c", "scanner": "scanner-primary", "fingerprint": "cf3daf588f69a150", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pptx/scripts/office/helpers/simplify_redlines.py:172"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b80dc38baa0ca093", "level": "note", "message": {"text": "Possibly dead Python function: merge_runs"}, "properties": {"repobilityId": "435767544049256d", "scanner": "scanner-primary", "fingerprint": "b80dc38baa0ca093", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/xlsx/scripts/office/helpers/merge_runs.py:16"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-81760d0b6e34ffff", "level": "note", "message": {"text": "Possibly dead Python function: simplify_redlines"}, "properties": {"repobilityId": "cfedaef01c821ad9", "scanner": "scanner-primary", "fingerprint": "81760d0b6e34ffff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/xlsx/scripts/office/helpers/simplify_redlines.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-90feac9d6becc02a", "level": "note", "message": {"text": "Possibly dead Python function: infer_author"}, "properties": {"repobilityId": "82897dcd4c40919c", "scanner": "scanner-primary", "fingerprint": "90feac9d6becc02a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/xlsx/scripts/office/helpers/simplify_redlines.py:172"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5a76354e70a00657", "level": "note", "message": {"text": "Possibly dead Python function: patched_get_inherited"}, "properties": {"repobilityId": "8c99afa3f6ae758e", "scanner": "scanner-primary", "fingerprint": "5a76354e70a00657", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pdf/scripts/fill_fillable_fields.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0cab7ac7459a8671", "level": "note", "message": {"text": "Possibly dead Python function: sort_key"}, "properties": {"repobilityId": "ac2a4181eae38738", "scanner": "scanner-primary", "fingerprint": "0cab7ac7459a8671", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pdf/scripts/extract_form_field_info.py:96"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5e28ff4b84cad469", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 sidecar/packages/runtime/src/personality.ts:935"}, "properties": {"repobilityId": "7e98383d3e53e377", "scanner": "scanner-primary", "fingerprint": "5e28ff4b84cad469", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f91610c763547eeb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 sidecar/src/instrumentation.ts:23"}, "properties": {"repobilityId": "474d3e18fe84518a", "scanner": "scanner-primary", "fingerprint": "f91610c763547eeb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6266ca0552599364", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/settings/model-picker.tsx:186"}, "properties": {"repobilityId": "f65bb644ae5ed924", "scanner": "scanner-primary", "fingerprint": "6266ca0552599364", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8be179cf2359ab4f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/file-tree.tsx:455"}, "properties": {"repobilityId": "498687eb2e786dd1", "scanner": "scanner-primary", "fingerprint": "8be179cf2359ab4f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a08c93dfcb63def7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/quick-open.tsx:245"}, "properties": {"repobilityId": "080c4ac0381a77a3", "scanner": "scanner-primary", "fingerprint": "a08c93dfcb63def7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-83bde2b923304bcf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-tree/upload-progress-toast.tsx:70"}, "properties": {"repobilityId": "d2638d0f395c4aa7", "scanner": "scanner-primary", "fingerprint": "83bde2b923304bcf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b126b6a372fd3e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/chat/tool-call-card.tsx:115"}, "properties": {"repobilityId": "ed0feb303a5823d9", "scanner": "scanner-primary", "fingerprint": "9b126b6a372fd3e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e0d437e8a9f1a90e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-viewer/editor-toolbar.tsx:55"}, "properties": {"repobilityId": "e6e6ebe3486c446c", "scanner": "scanner-primary", "fingerprint": "e0d437e8a9f1a90e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-914611349894da9e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/file-viewer/file-viewer.tsx:203"}, "properties": {"repobilityId": "7942232c18cb3894", "scanner": "scanner-primary", "fingerprint": "914611349894da9e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ab1eb1156c8b47d3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/terminal/terminal.tsx:370"}, "properties": {"repobilityId": "df374b829b497f1c", "scanner": "scanner-primary", "fingerprint": "ab1eb1156c8b47d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48bfe44e83e3f8fa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/shell/workspace-status-bar.tsx:114"}, "properties": {"repobilityId": "c5524b32b2b69acc", "scanner": "scanner-primary", "fingerprint": "48bfe44e83e3f8fa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-89a6a724d6f64964", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/source-control/status-list.tsx:328"}, "properties": {"repobilityId": "8548d04f6f663c31", "scanner": "scanner-primary", "fingerprint": "89a6a724d6f64964", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4e94eaba8bac1a04", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/source-control/branch-switcher.tsx:149"}, "properties": {"repobilityId": "670ceda9e3337aa3", "scanner": "scanner-primary", "fingerprint": "4e94eaba8bac1a04", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bfccd98ae6b6f967", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/graph/graph-panel.tsx:101"}, "properties": {"repobilityId": "af9504808bc3ff7b", "scanner": "scanner-primary", "fingerprint": "bfccd98ae6b6f967", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-338392787af6cf3b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sidecar/src/components/project/project-picker.tsx:118"}, "properties": {"repobilityId": "775bb79061753d4f", "scanner": "scanner-primary", "fingerprint": "338392787af6cf3b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eb4916fe9107edcc", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 sidecar/src/app/layout.tsx:73"}, "properties": {"repobilityId": "9198a84bbf8dd8b1", "scanner": "scanner-primary", "fingerprint": "eb4916fe9107edcc", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-309349bd31fbc04f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/skill-creator/assets/eval_review.html:69"}, "properties": {"repobilityId": "a9a33a58478fc39e", "scanner": "scanner-primary", "fingerprint": "309349bd31fbc04f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/assets/eval_review.html"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-f446268a771bce9c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/skill-creator/eval-viewer/viewer.html:766"}, "properties": {"repobilityId": "1a9404de264b6421", "scanner": "scanner-primary", "fingerprint": "f446268a771bce9c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/eval-viewer/viewer.html"}, "region": {"startLine": 766}}}]}, {"ruleId": "scanner-82522e329355e0cc", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in .claude/skills/webapp-testing/scripts/with_server.py:71"}, "properties": {"repobilityId": "603ca94dede951d0", "scanner": "scanner-primary", "fingerprint": "82522e329355e0cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/webapp-testing/scripts/with_server.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-9fcf52b57ab29e73", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in .claude/skills/security-audit/SKILL.md:91"}, "properties": {"repobilityId": "9d181d6d128d7943", "scanner": "scanner-primary", "fingerprint": "9fcf52b57ab29e73", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/security-audit/SKILL.md"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-c2d0bdc37c1f9f34", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/project-context/src/infra-probes.ts:21"}, "properties": {"repobilityId": "ecbda7ece5ff7f6a", "scanner": "scanner-primary", "fingerprint": "c2d0bdc37c1f9f34", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/project-context/src/infra-probes.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c79f545f60ede4aa", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/git/src/exec.ts:20"}, "properties": {"repobilityId": "211b522c544003b6", "scanner": "scanner-primary", "fingerprint": "c79f545f60ede4aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/git/src/exec.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-9ac23d15147fae48", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/mcp-server.ts:38"}, "properties": {"repobilityId": "804faadbb9d7f142", "scanner": "scanner-primary", "fingerprint": "9ac23d15147fae48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/graphify-bridge/src/mcp-server.ts"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-d338eb92559e27c4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/knowledge-watchdog.ts:17"}, "properties": {"repobilityId": "82cd3afdd4afce59", "scanner": "scanner-primary", "fingerprint": "d338eb92559e27c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/graphify-bridge/src/knowledge-watchdog.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-a885236a4d975e96", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/graphify-bridge/src/watchdog.ts:11"}, "properties": {"repobilityId": "0f1a847933376ee9", "scanner": "scanner-primary", "fingerprint": "a885236a4d975e96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/graphify-bridge/src/watchdog.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-26e28e0c1b29f77b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/auth.ts:22"}, "properties": {"repobilityId": "6ea603b34fe4d824", "scanner": "scanner-primary", "fingerprint": "26e28e0c1b29f77b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/runtime/src/auth.ts"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-c32c53a9f9d0ee1f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/change-checkpoints.ts:32"}, "properties": {"repobilityId": "e08f6f37b9924934", "scanner": "scanner-primary", "fingerprint": "c32c53a9f9d0ee1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/runtime/src/change-checkpoints.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-d94bd055960121dd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/claude-cli.ts:10"}, "properties": {"repobilityId": "b3ba3aaa78705fad", "scanner": "scanner-primary", "fingerprint": "d94bd055960121dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/runtime/src/claude-cli.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-d40d132ede48fdcb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/background-jobs.ts:20"}, "properties": {"repobilityId": "ca85e47bb644be19", "scanner": "scanner-primary", "fingerprint": "d40d132ede48fdcb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/runtime/src/background-jobs.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-451da32e776649f8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/project-skill-discoverer.ts:22"}, "properties": {"repobilityId": "57687a187f1cf93d", "scanner": "scanner-primary", "fingerprint": "451da32e776649f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/runtime/src/project-skill-discoverer.ts"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-357c0d3b20fe196e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/runtime/src/skill-installer.ts:16"}, "properties": {"repobilityId": "9731666b7f3b9212", "scanner": "scanner-primary", "fingerprint": "357c0d3b20fe196e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/runtime/src/skill-installer.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-c4c23ae71a2c6f3d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/packages/git-watch/src/index.ts:13"}, "properties": {"repobilityId": "bc9af71e8d442cb9", "scanner": "scanner-primary", "fingerprint": "c4c23ae71a2c6f3d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/git-watch/src/index.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-2727936a512817c8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in sidecar/src/app/layout.tsx:73"}, "properties": {"repobilityId": "77df0f3083920d5d", "scanner": "scanner-primary", "fingerprint": "2727936a512817c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/src/app/layout.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-12d80987b395cac7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/reveal/route.ts:16"}, "properties": {"repobilityId": "b8fff890df80d56f", "scanner": "scanner-primary", "fingerprint": "12d80987b395cac7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/src/app/api/files/reveal/route.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-983a1a3848c36543", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/search/route.ts:16"}, "properties": {"repobilityId": "ac3a44cd421a465e", "scanner": "scanner-primary", "fingerprint": "983a1a3848c36543", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/src/app/api/files/search/route.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-7146f70acfe22643", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/files/status/route.ts:1"}, "properties": {"repobilityId": "929389cdf585dd86", "scanner": "scanner-primary", "fingerprint": "7146f70acfe22643", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/src/app/api/files/status/route.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fa375807234d1b0d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in sidecar/src/app/api/terminal/run/route.ts:1"}, "properties": {"repobilityId": "4f2a93c3fcc8bf03", "scanner": "scanner-primary", "fingerprint": "fa375807234d1b0d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/src/app/api/terminal/run/route.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f6c832d67a7838", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b28f2eb9ce3eea56", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9dfacdabb01880ef", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "03dc9a011bc73d31", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0c3d4499b6cd885", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7523f4f04c1af43c", "level": "note", "message": {"text": "Very large file: sidecar/packages/runtime/src/sdk-runner.ts (1167 lines)"}, "properties": {"repobilityId": "c3fd72d77f9ed780", "scanner": "scanner-primary", "fingerprint": "7523f4f04c1af43c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6feee25903fbf8a7", "level": "note", "message": {"text": "Very large file: sidecar/packages/runtime/src/personality.ts (1250 lines)"}, "properties": {"repobilityId": "671beceb87263826", "scanner": "scanner-primary", "fingerprint": "6feee25903fbf8a7", "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-1efa2736a4d6d630", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/package.json"}, "properties": {"repobilityId": "63d3a58f964e95db", "scanner": "scanner-primary", "fingerprint": "1efa2736a4d6d630", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df2377bebbe34810", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/ui/package.json"}, "properties": {"repobilityId": "907e437f2fc3e3b8", "scanner": "scanner-primary", "fingerprint": "df2377bebbe34810", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-febf852e5c384b8d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/project-context/package.json"}, "properties": {"repobilityId": "38f22a594dc89391", "scanner": "scanner-primary", "fingerprint": "febf852e5c384b8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/project-context/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c12642c5b809b332", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/git/package.json"}, "properties": {"repobilityId": "7e089d8dc3505e05", "scanner": "scanner-primary", "fingerprint": "c12642c5b809b332", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/git/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7fba5a9cea0c18df", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/graphify-bridge/package.json"}, "properties": {"repobilityId": "e7901750348bce2c", "scanner": "scanner-primary", "fingerprint": "7fba5a9cea0c18df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/graphify-bridge/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6550ab7c0ab14fbf", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/runtime/package.json"}, "properties": {"repobilityId": "b0b9030a64dcda5d", "scanner": "scanner-primary", "fingerprint": "6550ab7c0ab14fbf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/runtime/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bef72b6c1fedcf3c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/git-watch/package.json"}, "properties": {"repobilityId": "01b27c31e5c83bbd", "scanner": "scanner-primary", "fingerprint": "bef72b6c1fedcf3c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/git-watch/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e53bd2694a5347f7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sidecar/packages/tools/package.json"}, "properties": {"repobilityId": "41e73530f1241958", "scanner": "scanner-primary", "fingerprint": "e53bd2694a5347f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sidecar/packages/tools/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "4a401a8771da4eb4", "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": "9ddc94e0625afa21", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "32698bb149df803e", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "19949f793c5dfdd2", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "15cb103d28aabd54", "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": "6b427063633a90dc", "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": "4d283f662b33a1df", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-24f2ea4bd14badc1", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: CLAUDE.md"}, "properties": {"repobilityId": "0f6049734704e537", "scanner": "scanner-primary", "fingerprint": "24f2ea4bd14badc1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 230}}}]}, {"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-ed062e9f960c5293", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/graph-refresh.md"}, "properties": {"repobilityId": "287f1444879f95a5", "scanner": "scanner-primary", "fingerprint": "ed062e9f960c5293", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/graph-refresh.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e039c647160cd5f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/README.md"}, "properties": {"repobilityId": "ee051cc61ae4b082", "scanner": "scanner-primary", "fingerprint": "0e039c647160cd5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/README.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ca7a213fe616a98", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/SKILL.md"}, "properties": {"repobilityId": "f8ea92872e7ab1bf", "scanner": "scanner-primary", "fingerprint": "3ca7a213fe616a98", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/SKILL.md"}, "region": {"startLine": 191}}}]}, {"ruleId": "scanner-a9ec9880085cb5d4", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/php/managed-agents/README.md"}, "properties": {"repobilityId": "1605f14d026b3138", "scanner": "scanner-primary", "fingerprint": "a9ec9880085cb5d4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/php/managed-agents/README.md"}, "region": {"startLine": 433}}}]}, {"ruleId": "scanner-b0b8b65e4f654f9a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/php/managed-agents/README.md"}, "properties": {"repobilityId": "6bef553fe68349f0", "scanner": "scanner-primary", "fingerprint": "b0b8b65e4f654f9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/php/managed-agents/README.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8ea408f1ec4b753", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/ruby/managed-agents/README.md"}, "properties": {"repobilityId": "ac879c3f47192590", "scanner": "scanner-primary", "fingerprint": "d8ea408f1ec4b753", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/ruby/managed-agents/README.md"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-fc304c967856d083", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/ruby/managed-agents/README.md"}, "properties": {"repobilityId": "6e24087aa2e59208", "scanner": "scanner-primary", "fingerprint": "fc304c967856d083", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/ruby/managed-agents/README.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-751326f420a09e01", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/models.md"}, "properties": {"repobilityId": "1fb311c4ea8ad2b6", "scanner": "scanner-primary", "fingerprint": "751326f420a09e01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/models.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2bd7a47d45064ffe", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/shared/model-migration.md"}, "properties": {"repobilityId": "a0886b21942db387", "scanner": "scanner-primary", "fingerprint": "2bd7a47d45064ffe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/model-migration.md"}, "region": {"startLine": 614}}}]}, {"ruleId": "scanner-3e7a6c24908d4090", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-tools.md"}, "properties": {"repobilityId": "1edb44baf2d7dced", "scanner": "scanner-primary", "fingerprint": "3e7a6c24908d4090", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/managed-agents-tools.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-45a72f117f884eaf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-events.md"}, "properties": {"repobilityId": "60fe8934bea85194", "scanner": "scanner-primary", "fingerprint": "45a72f117f884eaf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/managed-agents-events.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79a494b125803f24", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-api-reference.md"}, "properties": {"repobilityId": "ba85f775882f2c38", "scanner": "scanner-primary", "fingerprint": "79a494b125803f24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/managed-agents-api-reference.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7956afa2bc463d67", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-environments.md"}, "properties": {"repobilityId": "c84663250fd4fca7", "scanner": "scanner-primary", "fingerprint": "7956afa2bc463d67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/managed-agents-environments.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3226215cadb94d9a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/live-sources.md"}, "properties": {"repobilityId": "86c6eb13b638da03", "scanner": "scanner-primary", "fingerprint": "3226215cadb94d9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/live-sources.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-463e3b92f8382481", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-client-patterns.md"}, "properties": {"repobilityId": "8444a8b6a017c905", "scanner": "scanner-primary", "fingerprint": "463e3b92f8382481", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/managed-agents-client-patterns.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c99ec8e49b87261d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/shared/managed-agents-core.md"}, "properties": {"repobilityId": "3eb65e6a2844c798", "scanner": "scanner-primary", "fingerprint": "c99ec8e49b87261d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/shared/managed-agents-core.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1445c81d4371853b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/tool-use.md"}, "properties": {"repobilityId": "a47c67c62c4e89d7", "scanner": "scanner-primary", "fingerprint": "1445c81d4371853b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/typescript/claude-api/tool-use.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-783dd71f2606e10e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/streaming.md"}, "properties": {"repobilityId": "870f37d52d8d2a0e", "scanner": "scanner-primary", "fingerprint": "783dd71f2606e10e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/typescript/claude-api/streaming.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-128a57da34216c05", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/typescript/claude-api/files-api.md"}, "properties": {"repobilityId": "dea69577d56f7fe2", "scanner": "scanner-primary", "fingerprint": "128a57da34216c05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/typescript/claude-api/files-api.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-597d3349c08cac8f", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/csharp/claude-api.md"}, "properties": {"repobilityId": "d912ab1ec5923b31", "scanner": "scanner-primary", "fingerprint": "597d3349c08cac8f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/csharp/claude-api.md"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c12e85e7c8f6e84e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/python/claude-api/tool-use.md"}, "properties": {"repobilityId": "876b5a3147ad4916", "scanner": "scanner-primary", "fingerprint": "c12e85e7c8f6e84e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/python/claude-api/tool-use.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1281eed2a52128be", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/python/claude-api/streaming.md"}, "properties": {"repobilityId": "98a035470a3456e3", "scanner": "scanner-primary", "fingerprint": "1281eed2a52128be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/python/claude-api/streaming.md"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-0b58a76827d7b5b4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/python/claude-api/files-api.md"}, "properties": {"repobilityId": "c57e99d9d3996c6b", "scanner": "scanner-primary", "fingerprint": "0b58a76827d7b5b4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/python/claude-api/files-api.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d7d3b6d73f02f56", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/java/claude-api.md"}, "properties": {"repobilityId": "c4b0935d6af526d1", "scanner": "scanner-primary", "fingerprint": "9d7d3b6d73f02f56", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/java/claude-api.md"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-979349f347050579", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/claude-api/go/managed-agents/README.md"}, "properties": {"repobilityId": "82870ee4515958dc", "scanner": "scanner-primary", "fingerprint": "979349f347050579", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/go/managed-agents/README.md"}, "region": {"startLine": 452}}}]}, {"ruleId": "scanner-5b87ab284b4a4f7c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/claude-api/go/managed-agents/README.md"}, "properties": {"repobilityId": "e243ee2329af6ebb", "scanner": "scanner-primary", "fingerprint": "5b87ab284b4a4f7c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/claude-api/go/managed-agents/README.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-54bc4fe9ef702490", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/skill-creator/references/schemas.md"}, "properties": {"repobilityId": "249bb5e87f34d020", "scanner": "scanner-primary", "fingerprint": "54bc4fe9ef702490", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/references/schemas.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-45e298e2cf0159da", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/skill-creator/agents/comparator.md"}, "properties": {"repobilityId": "2e7f91f95a4df33a", "scanner": "scanner-primary", "fingerprint": "45e298e2cf0159da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/skill-creator/agents/comparator.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24572f5f03d5e7cf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/docx/SKILL.md"}, "properties": {"repobilityId": "2ea4ee22b64688e4", "scanner": "scanner-primary", "fingerprint": "24572f5f03d5e7cf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/docx/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68c713f960a44e0f", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/skills/docx/SKILL.md"}, "properties": {"repobilityId": "b790b1b8a64e5cc0", "scanner": "scanner-primary", "fingerprint": "68c713f960a44e0f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/docx/SKILL.md"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-429657deea2a79d6", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/skills/pptx/pptxgenjs.md"}, "properties": {"repobilityId": "c4a779b9845e2748", "scanner": "scanner-primary", "fingerprint": "429657deea2a79d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pptx/pptxgenjs.md"}, "region": {"startLine": 238}}}]}, {"ruleId": "scanner-46aca00f092d5662", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/skills/pptx/SKILL.md"}, "properties": {"repobilityId": "31bb668d836935c6", "scanner": "scanner-primary", "fingerprint": "46aca00f092d5662", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pptx/SKILL.md"}, "region": {"startLine": 230}}}]}, {"ruleId": "scanner-74f356937066690c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/pdf/reference.md"}, "properties": {"repobilityId": "f8963b8ddc5435d4", "scanner": "scanner-primary", "fingerprint": "74f356937066690c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pdf/reference.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bdcf5eb3ec5b9efb", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/run-tests-via-jiti.mjs:341"}, "properties": {"repobilityId": "a7c149a41c91461b", "scanner": "scanner-primary", "fingerprint": "bdcf5eb3ec5b9efb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76e350eb8077b5bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/skills/skill-creator/scripts/improve_description.py:158"}, "properties": {"repobilityId": "066556eb300d7b27", "scanner": "scanner-primary", "fingerprint": "76e350eb8077b5bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd232cae9e3f611a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/skill-creator/scripts/run_eval.py:85"}, "properties": {"repobilityId": "59ac59c16c85316c", "scanner": "scanner-primary", "fingerprint": "fd232cae9e3f611a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f443ad689f8a131", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/docx/scripts/office/soffice.py:14"}, "properties": {"repobilityId": "f7ee15ffaf296c0b", "scanner": "scanner-primary", "fingerprint": "1f443ad689f8a131", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab08cab1a770f386", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/docx/scripts/office/validators/redlining.py:138"}, "properties": {"repobilityId": "3b86f0aab9a26615", "scanner": "scanner-primary", "fingerprint": "ab08cab1a770f386", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9648cfd5269843a7", "level": "note", "message": {"text": "Legacy-named symbol `xml_copy` in .claude/skills/docx/scripts/office/validators/base.py:705"}, "properties": {"repobilityId": "9c4dd788b9ead5f2", "scanner": "scanner-primary", "fingerprint": "9648cfd5269843a7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-49b4101e5a4b87c7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/thumbnail.py:161"}, "properties": {"repobilityId": "c63427a0749b8ccd", "scanner": "scanner-primary", "fingerprint": "49b4101e5a4b87c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df5539f34e41a53b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/office/soffice.py:14"}, "properties": {"repobilityId": "a263fa205b41ccf0", "scanner": "scanner-primary", "fingerprint": "df5539f34e41a53b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ddc6c9ada41e1cdc", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/pptx/scripts/office/validators/redlining.py:138"}, "properties": {"repobilityId": "b01b8bab989322ea", "scanner": "scanner-primary", "fingerprint": "ddc6c9ada41e1cdc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7912280d817507ce", "level": "note", "message": {"text": "Legacy-named symbol `xml_copy` in .claude/skills/pptx/scripts/office/validators/base.py:705"}, "properties": {"repobilityId": "df71dbd2f3d71ca2", "scanner": "scanner-primary", "fingerprint": "7912280d817507ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2cb3038ac7d65c39", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/recalc.py:92"}, "properties": {"repobilityId": "94c6ca7a80d85892", "scanner": "scanner-primary", "fingerprint": "2cb3038ac7d65c39", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ff43e00de3ee253e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/office/soffice.py:14"}, "properties": {"repobilityId": "4b671e945122947e", "scanner": "scanner-primary", "fingerprint": "ff43e00de3ee253e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-72c80cde06c9613f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .claude/skills/xlsx/scripts/office/validators/redlining.py:138"}, "properties": {"repobilityId": "7943ebde0ab91b1d", "scanner": "scanner-primary", "fingerprint": "72c80cde06c9613f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-01dc77214133c458", "level": "note", "message": {"text": "Legacy-named symbol `xml_copy` in .claude/skills/xlsx/scripts/office/validators/base.py:705"}, "properties": {"repobilityId": "6ec64728ae82b1c6", "scanner": "scanner-primary", "fingerprint": "01dc77214133c458", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bb2305fc093c7ebe", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/next.config.ts:19"}, "properties": {"repobilityId": "d629a3711cbd7280", "scanner": "scanner-primary", "fingerprint": "bb2305fc093c7ebe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01c8a27d770d4a83", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/packages/ui/src/alert-dialog.tsx:69"}, "properties": {"repobilityId": "666134318b5c921e", "scanner": "scanner-primary", "fingerprint": "01c8a27d770d4a83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98615c37da81e5b0", "level": "none", "message": {"text": "Commented-code block (13 lines) in sidecar/packages/ui/src/dialog.tsx:69"}, "properties": {"repobilityId": "8cad9da352194bf9", "scanner": "scanner-primary", "fingerprint": "98615c37da81e5b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a712a959aa8d49c", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/packages/ui/src/dropdown-menu.tsx:45"}, "properties": {"repobilityId": "008bc78765dfaf14", "scanner": "scanner-primary", "fingerprint": "0a712a959aa8d49c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3422fd7fd9cc934", "level": "none", "message": {"text": "Commented-code block (7 lines) in sidecar/packages/ui/src/context-menu.tsx:9"}, "properties": {"repobilityId": "26fe73422d087c63", "scanner": "scanner-primary", "fingerprint": "d3422fd7fd9cc934", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f513c8fe528b27c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/packages/project-context/src/workflow-health.ts:201"}, "properties": {"repobilityId": "553a860452f0f25e", "scanner": "scanner-primary", "fingerprint": "f513c8fe528b27c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc519293b1183f11", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/packages/project-context/src/index.ts:170"}, "properties": {"repobilityId": "32cfc8a3e97ffff1", "scanner": "scanner-primary", "fingerprint": "fc519293b1183f11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f7a83d0e01af9af", "level": "none", "message": {"text": "Commented-code block (10 lines) in sidecar/packages/runtime/tests/can-use-tool-dispatch.test.ts:26"}, "properties": {"repobilityId": "513131149bc4c8fd", "scanner": "scanner-primary", "fingerprint": "1f7a83d0e01af9af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4167c66fed0029c6", "level": "none", "message": {"text": "Commented-code block (7 lines) in sidecar/packages/runtime/tests/models-tier.test.ts:5"}, "properties": {"repobilityId": "0192514b5e04649c", "scanner": "scanner-primary", "fingerprint": "4167c66fed0029c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aba2507bbcb25da6", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/skill-enablement.test.ts:14"}, "properties": {"repobilityId": "00c41695671657cd", "scanner": "scanner-primary", "fingerprint": "aba2507bbcb25da6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0298734748525a10", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/ask-mode-readonly.test.ts:5"}, "properties": {"repobilityId": "25699ae4b31e90d4", "scanner": "scanner-primary", "fingerprint": "0298734748525a10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5ccd95c9d6d303e", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/tests/wakeup-scheduler.test.ts:21"}, "properties": {"repobilityId": "9e770460df65c135", "scanner": "scanner-primary", "fingerprint": "c5ccd95c9d6d303e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99a2ac7761a60a81", "level": "none", "message": {"text": "Commented-code block (9 lines) in sidecar/packages/runtime/tests/thinking-mode.test.ts:5"}, "properties": {"repobilityId": "a8fac0c1732d0866", "scanner": "scanner-primary", "fingerprint": "99a2ac7761a60a81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2aaa095179a63bf", "level": "note", "message": {"text": "Legacy-named symbol `hcbik_old` in sidecar/packages/runtime/tests/honeycomb-telemetry.test.ts:209"}, "properties": {"repobilityId": "1eacaae3a8560abf", "scanner": "scanner-primary", "fingerprint": "d2aaa095179a63bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5546e94033d896a8", "level": "none", "message": {"text": "Commented-code block (9 lines) in sidecar/packages/runtime/src/change-checkpoints.ts:352"}, "properties": {"repobilityId": "19759de4918456c8", "scanner": "scanner-primary", "fingerprint": "5546e94033d896a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e98a4a906326ec4b", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/packages/runtime/src/claude-cli.ts:56"}, "properties": {"repobilityId": "c998bca4d940abdb", "scanner": "scanner-primary", "fingerprint": "e98a4a906326ec4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2be6e4974c7e64c8", "level": "none", "message": {"text": "Commented-code block (8 lines) in sidecar/packages/runtime/src/paths.ts:29"}, "properties": {"repobilityId": "70d732cdce6c985d", "scanner": "scanner-primary", "fingerprint": "2be6e4974c7e64c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54f5df68616284cc", "level": "none", "message": {"text": "Commented-code block (8 lines) in sidecar/packages/runtime/src/sdk-runner.ts:283"}, "properties": {"repobilityId": "cae33628eef2414f", "scanner": "scanner-primary", "fingerprint": "54f5df68616284cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8aba02189a1f37d9", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/packages/runtime/src/honeycomb-telemetry.ts:183"}, "properties": {"repobilityId": "f6914a4a68b5e61a", "scanner": "scanner-primary", "fingerprint": "8aba02189a1f37d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-408ad62f4ed1bf61", "level": "none", "message": {"text": "Commented-code block (7 lines) in sidecar/packages/runtime/src/fs-sandbox.ts:110"}, "properties": {"repobilityId": "87cb3849b90d3868", "scanner": "scanner-primary", "fingerprint": "408ad62f4ed1bf61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62d16fa6d46ef471", "level": "none", "message": {"text": "Commented-code block (7 lines) in sidecar/packages/runtime/src/session.ts:90"}, "properties": {"repobilityId": "a2a92f28fbff26ef", "scanner": "scanner-primary", "fingerprint": "62d16fa6d46ef471", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ef57fe9fbf4440b", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/packages/runtime/src/honeycomb-config.ts:146"}, "properties": {"repobilityId": "41541c64b3b895c6", "scanner": "scanner-primary", "fingerprint": "1ef57fe9fbf4440b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6472262891bd976", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/packages/runtime/src/models.ts:187"}, "properties": {"repobilityId": "1a7930d2e2d39828", "scanner": "scanner-primary", "fingerprint": "d6472262891bd976", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c73845ab97e32d88", "level": "none", "message": {"text": "Commented-code block (13 lines) in sidecar/packages/runtime/src/wakeup-scheduler.ts:97"}, "properties": {"repobilityId": "cd3a926b9729d279", "scanner": "scanner-primary", "fingerprint": "c73845ab97e32d88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b67650177b11e19", "level": "none", "message": {"text": "Commented-code block (8 lines) in sidecar/packages/tools/src/policy.ts:55"}, "properties": {"repobilityId": "37040a9dd083752e", "scanner": "scanner-primary", "fingerprint": "8b67650177b11e19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a94accaec71e133", "level": "none", "message": {"text": "Commented-code block (7 lines) in sidecar/src/components/settings/settings-panel.tsx:73"}, "properties": {"repobilityId": "bd615552d297a5a7", "scanner": "scanner-primary", "fingerprint": "6a94accaec71e133", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb11b8fac68bc863", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/components/settings/model-picker.tsx:141"}, "properties": {"repobilityId": "15906b1e1b7e97c1", "scanner": "scanner-primary", "fingerprint": "eb11b8fac68bc863", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4bcc67d12b9401e", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/components/settings/honeycomb-config.tsx:516"}, "properties": {"repobilityId": "54b27d808a3c309b", "scanner": "scanner-primary", "fingerprint": "f4bcc67d12b9401e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d328c6a34fe4a3ba", "level": "none", "message": {"text": "Commented-code block (7 lines) in sidecar/src/components/input/chat-input.tsx:38"}, "properties": {"repobilityId": "e4be1ef3dd8c0918", "scanner": "scanner-primary", "fingerprint": "d328c6a34fe4a3ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35d9eede1cdf6c19", "level": "none", "message": {"text": "Commented-code block (8 lines) in sidecar/src/components/file-tree/file-tree.tsx:562"}, "properties": {"repobilityId": "957242d349a321d5", "scanner": "scanner-primary", "fingerprint": "35d9eede1cdf6c19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9f02c97b0779d27", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/file-tree/quick-open.tsx:124"}, "properties": {"repobilityId": "70a5e3cf27f28f45", "scanner": "scanner-primary", "fingerprint": "c9f02c97b0779d27", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8ff55c50cebfc339", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/components/chat/use-chat-stream.ts:274"}, "properties": {"repobilityId": "d24e92eb8bd8fea4", "scanner": "scanner-primary", "fingerprint": "8ff55c50cebfc339", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7f905890d12058d", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/components/file-viewer/monaco-editor.tsx:37"}, "properties": {"repobilityId": "5ca49b3ad2068051", "scanner": "scanner-primary", "fingerprint": "f7f905890d12058d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56e0b6e2cfcc3472", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/components/file-viewer/file-viewer.tsx:43"}, "properties": {"repobilityId": "089b2c6b8bbff691", "scanner": "scanner-primary", "fingerprint": "56e0b6e2cfcc3472", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20fda3a405ecd98f", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/components/shell/top-bar.tsx:140"}, "properties": {"repobilityId": "75ea5854e890a1fa", "scanner": "scanner-primary", "fingerprint": "20fda3a405ecd98f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79569d12dc8bc7ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/components/shell/workspace-status-bar.tsx:42"}, "properties": {"repobilityId": "647b51bba650cc3f", "scanner": "scanner-primary", "fingerprint": "79569d12dc8bc7ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86e9b3e8191b0bb5", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/components/brain/brain-liquid.tsx:1"}, "properties": {"repobilityId": "34d218135c61c6d3", "scanner": "scanner-primary", "fingerprint": "86e9b3e8191b0bb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e53cfeff7e8939f8", "level": "none", "message": {"text": "Commented-code block (8 lines) in sidecar/src/components/source-control/branch-switcher.tsx:48"}, "properties": {"repobilityId": "11b24a104f215156", "scanner": "scanner-primary", "fingerprint": "e53cfeff7e8939f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf1fe2d0df732a9a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/branch-switcher.tsx:63"}, "properties": {"repobilityId": "f16c52da3af51869", "scanner": "scanner-primary", "fingerprint": "bf1fe2d0df732a9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-594b8881e4062947", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/components/source-control/use-git-mutations.ts:222"}, "properties": {"repobilityId": "0b862d211b22b980", "scanner": "scanner-primary", "fingerprint": "594b8881e4062947", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f19ddddd50c44ef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/use-git-mutations.ts:292"}, "properties": {"repobilityId": "77c17880760af928", "scanner": "scanner-primary", "fingerprint": "0f19ddddd50c44ef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-303b1da6bde976c1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/components/source-control/source-control-panel.tsx:137"}, "properties": {"repobilityId": "f122899cc6a18158", "scanner": "scanner-primary", "fingerprint": "303b1da6bde976c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ac5c132db3282bcd", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/app/page.tsx:18"}, "properties": {"repobilityId": "8480b9455101c435", "scanner": "scanner-primary", "fingerprint": "ac5c132db3282bcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2380980188c4b6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/app/layout.tsx:7"}, "properties": {"repobilityId": "8dc0638e15947b0d", "scanner": "scanner-primary", "fingerprint": "d2380980188c4b6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b61650bca5d3a45", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/health/route.ts:26"}, "properties": {"repobilityId": "c64f88f312d850e8", "scanner": "scanner-primary", "fingerprint": "6b61650bca5d3a45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8b7fb4dc2921615", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/sessions/[sessionId]/route.ts:17"}, "properties": {"repobilityId": "87ff8980fb189d9e", "scanner": "scanner-primary", "fingerprint": "c8b7fb4dc2921615", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7102b35d0145b13f", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/app/api/chat/route.ts:106"}, "properties": {"repobilityId": "55a73aa1ec4bd381", "scanner": "scanner-primary", "fingerprint": "7102b35d0145b13f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28fdfe9d2a5541ae", "level": "none", "message": {"text": "Commented-code block (9 lines) in sidecar/src/app/api/git/branch/switch/route.ts:62"}, "properties": {"repobilityId": "dd41a9dddf84fe40", "scanner": "scanner-primary", "fingerprint": "28fdfe9d2a5541ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9d2964bcc97d83d", "level": "none", "message": {"text": "Commented-code block (9 lines) in sidecar/src/app/api/files/tree/route.ts:18"}, "properties": {"repobilityId": "0945a456b12dfed9", "scanner": "scanner-primary", "fingerprint": "b9d2964bcc97d83d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08b5c593c01bc16a", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/files/content/route.ts:9"}, "properties": {"repobilityId": "5a2d5570734a0f83", "scanner": "scanner-primary", "fingerprint": "08b5c593c01bc16a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5556ecff676ed802", "level": "none", "message": {"text": "Commented-code block (6 lines) in sidecar/src/app/api/honeycomb/config/route.ts:104"}, "properties": {"repobilityId": "74545afd9bd22a29", "scanner": "scanner-primary", "fingerprint": "5556ecff676ed802", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10cbecc6ebc97d25", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/app/api/graph/html/route.ts:99"}, "properties": {"repobilityId": "550dbfd53edfd77c", "scanner": "scanner-primary", "fingerprint": "10cbecc6ebc97d25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e345d0b4344ae6c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/lib/use-prefs.tsx:193"}, "properties": {"repobilityId": "eea93d7ed584922b", "scanner": "scanner-primary", "fingerprint": "e345d0b4344ae6c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1272c3a022022ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in sidecar/src/lib/csrf.ts:131"}, "properties": {"repobilityId": "54a1dbbd737b5d92", "scanner": "scanner-primary", "fingerprint": "d1272c3a022022ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-106cd5fa5d75b1ce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sidecar/src/lib/csrf.ts:154"}, "properties": {"repobilityId": "deb4988e4ed247c0", "scanner": "scanner-primary", "fingerprint": "106cd5fa5d75b1ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1038c90ee9e50ba6", "level": "none", "message": {"text": "Commented-code block (8 lines) in sidecar/src/lib/turn-orchestrator.ts:242"}, "properties": {"repobilityId": "3ce4252646a588ad", "scanner": "scanner-primary", "fingerprint": "1038c90ee9e50ba6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "36baeed38d3b0f1f", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "32dd844bfb242ce3", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "797a8bb703e3371f", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "8f2b2e305c0202af", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "388eea8c121125e4", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "7d76d9ca2f4983c5", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "5c8457cedda6f8e2", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "ce353ce55317e9fa", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "1161f5cdcbc1bb76", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "fd2b6a472440a34d", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "f132f465514acd39", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "352cc215cb962cf1", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "aff2ad58829bc404", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "eb6b163a83dc906d", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "0191e1eab384da37", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "815768b5de7c26f8", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "e22951b71e1539ea", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "aeec7094cf1a8bff", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "662100c9772710dd", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "5de7c1c7b08bd275", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}