{"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-8e8b89911e700c24", "name": "TODO/FIXME marker in shipping code \u2014 plugin/src/webhook/server.ts:1228", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 plugin/src/webhook/server.ts:1228"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-efa3d46ab40650a3", "name": "Privileged port 11 in use", "shortDescription": {"text": "Privileged port 11 in use"}, "fullDescription": {"text": "Port 11 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5fa5996273d23167", "name": "Privileged port 54 in use", "shortDescription": {"text": "Privileged port 54 in use"}, "fullDescription": {"text": "Port 54 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7665253d36c257e", "name": "Insecure pattern 'node_child_process' in plugin/src/server.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in plugin/src/server.ts:19"}, "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-58eed2f096fa1cf7", "name": "Insecure pattern 'exec_used' in plugin/src/commands/keys.ts:178", "shortDescription": {"text": "Insecure pattern 'exec_used' in plugin/src/commands/keys.ts:178"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edf3217dd24117be", "name": "Insecure pattern 'node_child_process' in plugin/src/commands/keys.ts:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in plugin/src/commands/keys.ts:25"}, "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-68301f6b91791a42", "name": "Insecure pattern 'node_child_process' in plugin/src/status/tmux-mirror.ts:32", "shortDescription": {"text": "Insecure pattern 'node_child_process' in plugin/src/status/tmux-mirror.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-f2215bbf8278a1cf", "name": "Insecure pattern 'node_child_process' in skills/doctor-dashi-plugin/scripts/doctor.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in skills/doctor-dashi-plugin/scripts/doctor.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-897d965cb340798d", "name": "Insecure pattern 'private_key_in_repo' in skills/doctor-dashi-plugin/scripts/doctor.test.ts:85", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in skills/doctor-dashi-plugin/scripts/doctor.test.ts:85"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22c7d7d4235c67c8", "name": "Very large file: plugin/tests/telegram/handlers.album.test.ts (1447 lines)", "shortDescription": {"text": "Very large file: plugin/tests/telegram/handlers.album.test.ts (1447 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-7e4a943ca4506087", "name": "Very large file: plugin/src/server.ts (1287 lines)", "shortDescription": {"text": "Very large file: plugin/src/server.ts (1287 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-b10c626db15c797a", "name": "Very large file: plugin/src/security/permission-policy.ts (1776 lines)", "shortDescription": {"text": "Very large file: plugin/src/security/permission-policy.ts (1776 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-366ebf7483fef7b6", "name": "Very large file: plugin/src/webhook/server.ts (1666 lines)", "shortDescription": {"text": "Very large file: plugin/src/webhook/server.ts (1666 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-473290d4b75034b3", "name": "Very large file: plugin/src/telegram/handlers.ts (1370 lines)", "shortDescription": {"text": "Very large file: plugin/src/telegram/handlers.ts (1370 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-e691e2df16c058c3", "name": "Very large file: plugin/src/status/status-manager.ts (1339 lines)", "shortDescription": {"text": "Very large file: plugin/src/status/status-manager.ts (1339 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-e8e17a49e4d4b223", "name": "Very large file: skills/doctor-dashi-plugin/scripts/doctor.ts (2250 lines)", "shortDescription": {"text": "Very large file: skills/doctor-dashi-plugin/scripts/doctor.ts (2250 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-ae4bffb79c5a8b85", "name": "Very large file: skills/doctor-dashi-plugin/scripts/doctor.test.ts (1305 lines)", "shortDescription": {"text": "Very large file: skills/doctor-dashi-plugin/scripts/doctor.test.ts (1305 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-29032f7be4e35b71", "name": "Node manifest has dependencies but no lockfile: plugin/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: plugin/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 12 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 25 placeholder/mock markers across 11 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: ci, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing ci, 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-bc15c74853dd18b9", "name": "Agent authority lacks a verifier contract: plugin/.mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: plugin/.mcp.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-00531b09e99592f6", "name": "Agent authority lacks a verifier contract: plugin/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: plugin/CLAUDE.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-4061b5fb8db0d21d", "name": "Commented-code block (8 lines) in tests/test_docs_public_safety.py:66", "shortDescription": {"text": "Commented-code block (8 lines) in tests/test_docs_public_safety.py:66"}, "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-2ed536578bf44993", "name": "Commented-code block (8 lines) in tests/test_docs_links.py:336", "shortDescription": {"text": "Commented-code block (8 lines) in tests/test_docs_links.py:336"}, "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-1607d2d16d477d14", "name": "Commented-code block (5 lines) in plugin/tests/server.boot.test.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/server.boot.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17a6ff09c3a6264d", "name": "Commented-code block (6 lines) in plugin/tests/server.pid.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/tests/server.pid.test.ts: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-3a61a1aa8e23af6d", "name": "Commented-code block (5 lines) in plugin/tests/security/permission-policy.test.ts:499", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/security/permission-policy.test.ts:499"}, "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-a44f53bbe3696eab", "name": "Commented-code block (5 lines) in plugin/tests/safety/redact.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/safety/redact.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51c7b44203a5c617", "name": "Commented-code block (7 lines) in plugin/tests/safety/safe-telegram-api.test.ts:283", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/tests/safety/safe-telegram-api.test.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-3f7e228ca19e5527", "name": "Commented-code block (5 lines) in plugin/tests/safety/html-validator.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/safety/html-validator.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4297daed19b6398", "name": "Commented-code block (8 lines) in plugin/tests/prompt/media-prompt.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/tests/prompt/media-prompt.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2380a28d3b0a301f", "name": "Commented-code block (6 lines) in plugin/tests/prompt/reply-context.test.ts:114", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/tests/prompt/reply-context.test.ts:114"}, "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-1aedb4ed94ef4915", "name": "Commented-code block (9 lines) in plugin/tests/router/fix-f.test.ts:9", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/tests/router/fix-f.test.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-9698ef9d006a9338", "name": "Commented-code block (10 lines) in plugin/tests/router/fix-e.test.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in plugin/tests/router/fix-e.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd19ce5137b6d0ed", "name": "Commented-code block (13 lines) in plugin/tests/router/multichat-router.gate.test.ts:4", "shortDescription": {"text": "Commented-code block (13 lines) in plugin/tests/router/multichat-router.gate.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfcc9d2a39998df8", "name": "Commented-code block (8 lines) in plugin/tests/router/m7-typing-reply.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/tests/router/m7-typing-reply.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6e90262dcbc0c25", "name": "Commented-code block (9 lines) in plugin/tests/router/tmux-session-pool.env.test.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/tests/router/tmux-session-pool.env.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79c5acc7e3807c5b", "name": "Commented-code block (5 lines) in plugin/tests/webhook/server.test.ts:123", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/webhook/server.test.ts:123"}, "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-0cf8ad104e5afed5", "name": "Commented-code block (5 lines) in plugin/tests/webhook/ask-user-question-routes.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/webhook/ask-user-question-routes.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb1a71b83dce7cc8", "name": "Commented-code block (5 lines) in plugin/tests/commands/oob.test.ts:266", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/commands/oob.test.ts:266"}, "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-8eb46db0574ef7c0", "name": "Commented-code block (5 lines) in plugin/tests/telegram/keys-panel.test.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/keys-panel.test.ts: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-0a732430ebe87ecc", "name": "Commented-code block (10 lines) in plugin/tests/telegram/ask-user-question.test.ts:3", "shortDescription": {"text": "Commented-code block (10 lines) in plugin/tests/telegram/ask-user-question.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a688024a445103f", "name": "Commented-code block (5 lines) in plugin/tests/telegram/poller.retry.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/poller.retry.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c9406bdfadb53f4", "name": "Commented-code block (5 lines) in plugin/tests/telegram/poller.lock.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/poller.lock.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ec13c8c079a8ba5", "name": "Commented-code block (6 lines) in plugin/tests/telegram/handlers.voice-multichat.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/tests/telegram/handlers.voice-multichat.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ce35b4402f30833", "name": "Commented-code block (9 lines) in plugin/tests/telegram/handlers.album.test.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/tests/telegram/handlers.album.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e5832fa31835887", "name": "Commented-code block (6 lines) in plugin/tests/telegram/handlers.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/tests/telegram/handlers.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d2e7d1eea9a0b0a", "name": "Commented-code block (5 lines) in plugin/tests/telegram/album-buffer.test.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/album-buffer.test.ts:13"}, "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-c44e03b8545ecd53", "name": "Commented-code block (9 lines) in plugin/tests/telegram/handlers.addressing.test.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/tests/telegram/handlers.addressing.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03895a6e744d51aa", "name": "Commented-code block (7 lines) in plugin/tests/chats/stop-to-outbox.test.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/tests/chats/stop-to-outbox.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8656c66c77f62ef8", "name": "Commented-code block (8 lines) in plugin/tests/chats/hooks-sentinel.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/tests/chats/hooks-sentinel.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-607d907108d0ce5f", "name": "Commented-code block (7 lines) in plugin/tests/chats/multichat-entrypoint-submit.test.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/tests/chats/multichat-entrypoint-submit.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4aca5ba1fbd713cd", "name": "Commented-code block (5 lines) in plugin/tests/chats/policy.primitives.test.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/chats/policy.primitives.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc4419b57ab64788", "name": "Commented-code block (8 lines) in plugin/tests/chats/multichat-entrypoint-media.test.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/tests/chats/multichat-entrypoint-media.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-42474fe8a374276c", "name": "Commented-code block (5 lines) in plugin/tests/status/activity-renderer.test.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/status/activity-renderer.test.ts:41"}, "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-6a795a6ecd4d6e59", "name": "Commented-code block (5 lines) in plugin/tests/status/tmux-pane-filter.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/status/tmux-pane-filter.test.ts: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-6a06c27a4ed876dd", "name": "Commented-code block (9 lines) in plugin/tests/status/status-manager.multichat.test.ts:13", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/tests/status/status-manager.multichat.test.ts:13"}, "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-0b4a05549fa9d722", "name": "Commented-code block (11 lines) in plugin/tests/status/status-manager.race.test.ts:4", "shortDescription": {"text": "Commented-code block (11 lines) in plugin/tests/status/status-manager.race.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58c020d43972b43e", "name": "Commented-code block (6 lines) in plugin/tests/status/tmux-mirror.errors.test.ts:357", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/tests/status/tmux-mirror.errors.test.ts:357"}, "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-a24472c3264c2708", "name": "Commented-code block (13 lines) in plugin/tests/status/task-mirror.test.ts:6", "shortDescription": {"text": "Commented-code block (13 lines) in plugin/tests/status/task-mirror.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b304d71043ac7cb", "name": "Commented-code block (9 lines) in plugin/tests/status/progress-reporter.test.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/tests/status/progress-reporter.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13a4b8072754d56d", "name": "Commented-code block (5 lines) in plugin/tests/status/tmux-mirror.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/status/tmux-mirror.test.ts: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-db21f41612524599", "name": "Commented-code block (7 lines) in plugin/tests/status/status-manager.test.ts:70", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/tests/status/status-manager.test.ts:70"}, "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-fe8f25101fc0edb5", "name": "Commented-code block (5 lines) in plugin/tests/memory/verbose-writer.test.ts:104", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/memory/verbose-writer.test.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-ddd7c5a908406fad", "name": "Commented-code block (6 lines) in plugin/tests/memory/hot-writer.test.ts:57", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/tests/memory/hot-writer.test.ts:57"}, "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-d8fd421fbcdf8671", "name": "Commented-code block (8 lines) in plugin/tests/memory/transcript-reader.test.ts:118", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/tests/memory/transcript-reader.test.ts:118"}, "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-922dd6e478585261", "name": "Commented-code block (9 lines) in plugin/tests/hooks/ask-user-question-hook.test.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/tests/hooks/ask-user-question-hook.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c845bdc52ed70ace", "name": "Commented-code block (6 lines) in plugin/tests/hooks/install-hooks.test.ts:185", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/tests/hooks/install-hooks.test.ts:185"}, "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-9c9b62ff24ae5799", "name": "Legacy-named symbol `uOld` in plugin/tests/hooks/fallback-reply-hook.test.ts:124", "shortDescription": {"text": "Legacy-named symbol `uOld` in plugin/tests/hooks/fallback-reply-hook.test.ts:124"}, "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-323e76037a389c55", "name": "Commented-code block (5 lines) in plugin/tests/hooks/fallback-reply-hook.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/hooks/fallback-reply-hook.test.ts: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-9641fd9be0217cca", "name": "Commented-code block (5 lines) in plugin/tests/channel/ask-user-question.test.ts:135", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/channel/ask-user-question.test.ts:135"}, "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-a6543e988fcfc185", "name": "Commented-code block (5 lines) in plugin/tests/channel/tools.test.ts:408", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/tests/channel/tools.test.ts:408"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c54bc247ee62ae2", "name": "Commented-code block (8 lines) in plugin/scripts/permission-gate-hook.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/scripts/permission-gate-hook.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-0854e745a3cec743", "name": "Commented-code block (6 lines) in plugin/scripts/ask-user-question-hook.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/scripts/ask-user-question-hook.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac258e1ff7a5e3ec", "name": "Commented-code block (11 lines) in plugin/scripts/read-receipt-hook.ts:4", "shortDescription": {"text": "Commented-code block (11 lines) in plugin/scripts/read-receipt-hook.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc5b5fd275c43200", "name": "Commented-code block (8 lines) in plugin/scripts/channel-reminder.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/scripts/channel-reminder.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-fbd943f3117d521b", "name": "Commented-code block (10 lines) in plugin/scripts/fallback-reply-hook.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in plugin/scripts/fallback-reply-hook.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c9d27b243ba26d0", "name": "Commented-code block (8 lines) in plugin/scripts/patch-claude-settings.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/scripts/patch-claude-settings.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-6a46c13e5631ea23", "name": "Commented-code block (9 lines) in plugin/scripts/post-hook.ts:7", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/scripts/post-hook.ts: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-48e177117344f4bf", "name": "Commented-code block (6 lines) in plugin/src/config.ts:14", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/config.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-d4b97fdd0d5aef48", "name": "Commented-code block (5 lines) in plugin/src/schemas.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/schemas.ts:20"}, "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-d3c60e034996e717", "name": "Commented-code block (12 lines) in plugin/src/server.ts:106", "shortDescription": {"text": "Commented-code block (12 lines) in plugin/src/server.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-cd573d5670d07818", "name": "Commented-code block (5 lines) in plugin/src/security/paths.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/security/paths.ts:31"}, "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-8fc9d77dd0fb14db", "name": "Commented-code block (9 lines) in plugin/src/security/permission-policy.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/src/security/permission-policy.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f1e5b71f21af61f", "name": "Commented-code block (5 lines) in plugin/src/safety/rate-limited-telegram-api.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/safety/rate-limited-telegram-api.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2f20ee4a669856a", "name": "Commented-code block (5 lines) in plugin/src/safety/telegram-edit-classifier.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/safety/telegram-edit-classifier.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a97825d143eb1e1", "name": "Commented-code block (6 lines) in plugin/src/safety/html-validator.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/safety/html-validator.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5530e77347cfc6c1", "name": "Commented-code block (6 lines) in plugin/src/safety/safe-telegram-api.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/safety/safe-telegram-api.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41c2eb271a618ff0", "name": "Commented-code block (9 lines) in plugin/src/safety/redact.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/src/safety/redact.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eec6ec7b592a1eb", "name": "Commented-code block (5 lines) in plugin/src/prompt/build.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/prompt/build.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45e5f2b5be49e998", "name": "Commented-code block (6 lines) in plugin/src/router/multichat-router.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/router/multichat-router.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-803ddea4c1dde768", "name": "Commented-code block (7 lines) in plugin/src/router/tmux-session-pool.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/router/tmux-session-pool.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79cd0a2e0541aee1", "name": "Commented-code block (5 lines) in plugin/src/router/inbox-bridge.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/router/inbox-bridge.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-530510c353a4afa8", "name": "Commented-code block (6 lines) in plugin/src/state/store.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/state/store.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3915f52dbad2af66", "name": "Commented-code block (5 lines) in plugin/src/webhook/server.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/webhook/server.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93fb7176e4e14112", "name": "Commented-code block (7 lines) in plugin/src/commands/oob.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/commands/oob.ts:8"}, "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-32fd865e1b4fd51c", "name": "Commented-code block (5 lines) in plugin/src/commands/keys.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/commands/keys.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e203bc696207fd0", "name": "Commented-code block (6 lines) in plugin/src/telegram/cc-panel-ui.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/telegram/cc-panel-ui.ts: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-e59ae83a24123f21", "name": "Commented-code block (8 lines) in plugin/src/telegram/pid-inspect.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/src/telegram/pid-inspect.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-9e211c0f82a81f62", "name": "Commented-code block (5 lines) in plugin/src/telegram/watcher.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/telegram/watcher.ts: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-96c4aea97d488296", "name": "Commented-code block (7 lines) in plugin/src/telegram/addressing.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/telegram/addressing.ts:8"}, "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-44a5dd580bab0c0e", "name": "Commented-code block (5 lines) in plugin/src/telegram/media.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/telegram/media.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3505ae1cc84c01aa", "name": "Commented-code block (8 lines) in plugin/src/telegram/album-persistence.ts:12", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/src/telegram/album-persistence.ts:12"}, "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-6585ff10bf622105", "name": "Commented-code block (6 lines) in plugin/src/telegram/gate.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/telegram/gate.ts: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-e03f9094011a8684", "name": "Commented-code block (9 lines) in plugin/src/telegram/poller.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in plugin/src/telegram/poller.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bbc7962e7138b5e", "name": "Commented-code block (5 lines) in plugin/src/telegram/keys-panel-ui.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/telegram/keys-panel-ui.ts: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-a3b0b3d329e0d394", "name": "Commented-code block (7 lines) in plugin/src/telegram/ask-user-question.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/telegram/ask-user-question.ts: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-a65e2aadace23e68", "name": "Commented-code block (5 lines) in plugin/src/telegram/album-buffer.ts:147", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/telegram/album-buffer.ts:147"}, "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-3cacd6af88adc534", "name": "Commented-code block (5 lines) in plugin/src/telegram/handlers.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/telegram/handlers.ts: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-9e56bcc96fe03701", "name": "Commented-code block (6 lines) in plugin/src/telegram/permission-gate-ui.ts:141", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/telegram/permission-gate-ui.ts: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-8fcee82a42e1dae9", "name": "Commented-code block (8 lines) in plugin/src/chats/policy-loader.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in plugin/src/chats/policy-loader.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-23dc776f3fb22e3a", "name": "Commented-code block (6 lines) in plugin/src/chats/hooks/stop-to-outbox.py:69", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/chats/hooks/stop-to-outbox.py: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-13139f2f993c5124", "name": "Commented-code block (7 lines) in plugin/src/status/tmux-pane-filter.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/status/tmux-pane-filter.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd71f3f05179498f", "name": "Commented-code block (5 lines) in plugin/src/status/tmux-mirror.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/status/tmux-mirror.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a99fc9524aa702fe", "name": "Commented-code block (11 lines) in plugin/src/status/task-mirror.ts:12", "shortDescription": {"text": "Commented-code block (11 lines) in plugin/src/status/task-mirror.ts:12"}, "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-4506adc397c172ec", "name": "Commented-code block (7 lines) in plugin/src/status/progress-reporter.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/status/progress-reporter.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-943825b15aaa690a", "name": "Commented-code block (12 lines) in plugin/src/status/status-manager.ts:6", "shortDescription": {"text": "Commented-code block (12 lines) in plugin/src/status/status-manager.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48c823878ce60001", "name": "Commented-code block (7 lines) in plugin/src/status/activity-renderer.ts:229", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/status/activity-renderer.ts:229"}, "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-88f94a6924d2f632", "name": "Commented-code block (5 lines) in plugin/src/status/telegram-api.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/status/telegram-api.ts: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-0f44e774e7af90c1", "name": "Commented-code block (6 lines) in plugin/src/memory/transcript-reader.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/memory/transcript-reader.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09ff5511a7bb27ca", "name": "Commented-code block (6 lines) in plugin/src/memory/verbose-writer.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/memory/verbose-writer.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-535b57f6b5eee188", "name": "Commented-code block (6 lines) in plugin/src/memory/prompt-buffer.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/memory/prompt-buffer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-974caf21d982c170", "name": "Commented-code block (6 lines) in plugin/src/memory/writer.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/memory/writer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba0ac436602f03b7", "name": "Commented-code block (5 lines) in plugin/src/memory/hot-writer.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/memory/hot-writer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa90f63e51478385", "name": "Commented-code block (5 lines) in plugin/src/hooks/claude-events.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/hooks/claude-events.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b98bdfaea4af560", "name": "Commented-code block (5 lines) in plugin/src/format/chunk.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/format/chunk.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3021e1fbb14aacb", "name": "Commented-code block (6 lines) in plugin/src/format/html.ts:216", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/format/html.ts:216"}, "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-2993bb1d1f066e36", "name": "Commented-code block (7 lines) in plugin/src/channel/permissions.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/channel/permissions.ts: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-6fd70aa42fadb8fd", "name": "Commented-code block (6 lines) in plugin/src/channel/tools.ts:90", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/channel/tools.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-07e1e07590276f44", "name": "`fetch()` without try/.catch or AbortSignal \u2014 plugin/src/channel/tools.ts:191", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 plugin/src/channel/tools.ts:191"}, "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-c0ae9aa2da32e26b", "name": "Commented-code block (5 lines) in plugin/src/channel/ask-user-question.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/src/channel/ask-user-question.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd1b0e80c66797f0", "name": "Commented-code block (7 lines) in plugin/src/channel/notify.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in plugin/src/channel/notify.ts: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-76afb6aeb3d943e8", "name": "Commented-code block (6 lines) in plugin/src/channel/short-id.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/src/channel/short-id.ts: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-47bc4c76cc3324ca", "name": "Commented-code block (5 lines) in skills/doctor-dashi-plugin/scripts/doctor.ts:118", "shortDescription": {"text": "Commented-code block (5 lines) in skills/doctor-dashi-plugin/scripts/doctor.ts:118"}, "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-3193f3aacf9a3d2c", "name": "Commented-code block (6 lines) in skills/doctor-dashi-plugin/scripts/doctor.test.ts:1112", "shortDescription": {"text": "Commented-code block (6 lines) in skills/doctor-dashi-plugin/scripts/doctor.test.ts:1112"}, "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-7de670297e14f2a1", "name": "41 env vars used in code but missing from .env.example", "shortDescription": {"text": "41 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CHAT_ID`, `CLAUDE_BIN`, `CLAUDE_BINARY_PATH`, `CLAUDE_WORKSPACE_DIR`, `GROQ_API_KEY`, `INVOCATION_TIMEOUT_SEC`, `LOG_LEVEL`, `MULTICHAT_STATE_DIR` + 33 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/17676"}, "properties": {"repository": "qwwiwi/dashi-plugin-claude-code", "repoUrl": "https://github.com/qwwiwi/dashi-plugin-claude-code", "branch": "main"}, "results": [{"ruleId": "scanner-8e8b89911e700c24", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 plugin/src/webhook/server.ts:1228"}, "properties": {"repobilityId": "ac37806f5cf0b00c", "scanner": "scanner-primary", "fingerprint": "8e8b89911e700c24", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-efa3d46ab40650a3", "level": "warning", "message": {"text": "Privileged port 11 in use"}, "properties": {"repobilityId": "5b3038c67fabb4c8", "scanner": "scanner-primary", "fingerprint": "efa3d46ab40650a3", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/dev/goals/gateway-parity-migration/state.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5fa5996273d23167", "level": "warning", "message": {"text": "Privileged port 54 in use"}, "properties": {"repobilityId": "cfa860c24fdc3eef", "scanner": "scanner-primary", "fingerprint": "5fa5996273d23167", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/dev/goals/gateway-parity-migration/state.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7665253d36c257e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in plugin/src/server.ts:19"}, "properties": {"repobilityId": "00df283d1d43ebc8", "scanner": "scanner-primary", "fingerprint": "a7665253d36c257e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/src/server.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-58eed2f096fa1cf7", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in plugin/src/commands/keys.ts:178"}, "properties": {"repobilityId": "c201db599aeffc3f", "scanner": "scanner-primary", "fingerprint": "58eed2f096fa1cf7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/src/commands/keys.ts"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-edf3217dd24117be", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in plugin/src/commands/keys.ts:25"}, "properties": {"repobilityId": "50803c4f1673d28c", "scanner": "scanner-primary", "fingerprint": "edf3217dd24117be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/src/commands/keys.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-68301f6b91791a42", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in plugin/src/status/tmux-mirror.ts:32"}, "properties": {"repobilityId": "7c32b96589a3e6c7", "scanner": "scanner-primary", "fingerprint": "68301f6b91791a42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/src/status/tmux-mirror.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-f2215bbf8278a1cf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in skills/doctor-dashi-plugin/scripts/doctor.ts:17"}, "properties": {"repobilityId": "2275e009f75458bb", "scanner": "scanner-primary", "fingerprint": "f2215bbf8278a1cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/doctor-dashi-plugin/scripts/doctor.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-897d965cb340798d", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in skills/doctor-dashi-plugin/scripts/doctor.test.ts:85"}, "properties": {"repobilityId": "6ce8ba91536e688f", "scanner": "scanner-primary", "fingerprint": "897d965cb340798d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/doctor-dashi-plugin/scripts/doctor.test.ts"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-22c7d7d4235c67c8", "level": "note", "message": {"text": "Very large file: plugin/tests/telegram/handlers.album.test.ts (1447 lines)"}, "properties": {"repobilityId": "103714dd42ffb4cb", "scanner": "scanner-primary", "fingerprint": "22c7d7d4235c67c8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7e4a943ca4506087", "level": "note", "message": {"text": "Very large file: plugin/src/server.ts (1287 lines)"}, "properties": {"repobilityId": "38433c1bbff04a46", "scanner": "scanner-primary", "fingerprint": "7e4a943ca4506087", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b10c626db15c797a", "level": "note", "message": {"text": "Very large file: plugin/src/security/permission-policy.ts (1776 lines)"}, "properties": {"repobilityId": "320263473ab4ced6", "scanner": "scanner-primary", "fingerprint": "b10c626db15c797a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-366ebf7483fef7b6", "level": "note", "message": {"text": "Very large file: plugin/src/webhook/server.ts (1666 lines)"}, "properties": {"repobilityId": "4d3a43e6918be1df", "scanner": "scanner-primary", "fingerprint": "366ebf7483fef7b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-473290d4b75034b3", "level": "note", "message": {"text": "Very large file: plugin/src/telegram/handlers.ts (1370 lines)"}, "properties": {"repobilityId": "62a49e7cab5a8d5e", "scanner": "scanner-primary", "fingerprint": "473290d4b75034b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e691e2df16c058c3", "level": "note", "message": {"text": "Very large file: plugin/src/status/status-manager.ts (1339 lines)"}, "properties": {"repobilityId": "a462cfde51e00425", "scanner": "scanner-primary", "fingerprint": "e691e2df16c058c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8e17a49e4d4b223", "level": "note", "message": {"text": "Very large file: skills/doctor-dashi-plugin/scripts/doctor.ts (2250 lines)"}, "properties": {"repobilityId": "479f61cb077138b2", "scanner": "scanner-primary", "fingerprint": "e8e17a49e4d4b223", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae4bffb79c5a8b85", "level": "note", "message": {"text": "Very large file: skills/doctor-dashi-plugin/scripts/doctor.test.ts (1305 lines)"}, "properties": {"repobilityId": "0a35acb3e8456bc0", "scanner": "scanner-primary", "fingerprint": "ae4bffb79c5a8b85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-29032f7be4e35b71", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: plugin/package.json"}, "properties": {"repobilityId": "4d65e2cb1c5e6861", "scanner": "scanner-primary", "fingerprint": "29032f7be4e35b71", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "17ee3c7a372d7453", "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": "cd4eb9295f15b6f8", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "eafc29d63a5cd053", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "8e199d93b043623a", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "cd90b23f2f34301a", "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": "0ca94d9166f4eb9c", "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": "226efb6c512e5d0d", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-bc15c74853dd18b9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: plugin/.mcp.json"}, "properties": {"repobilityId": "28c831bd0ad754d8", "scanner": "scanner-primary", "fingerprint": "bc15c74853dd18b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/.mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-00531b09e99592f6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: plugin/CLAUDE.md"}, "properties": {"repobilityId": "f8d80699f8d6b902", "scanner": "scanner-primary", "fingerprint": "00531b09e99592f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4061b5fb8db0d21d", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/test_docs_public_safety.py:66"}, "properties": {"repobilityId": "aa30b2a49787e7da", "scanner": "scanner-primary", "fingerprint": "4061b5fb8db0d21d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ed536578bf44993", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/test_docs_links.py:336"}, "properties": {"repobilityId": "8842b52cfce1f707", "scanner": "scanner-primary", "fingerprint": "2ed536578bf44993", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1607d2d16d477d14", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/server.boot.test.ts:6"}, "properties": {"repobilityId": "15f190291f63c34f", "scanner": "scanner-primary", "fingerprint": "1607d2d16d477d14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17a6ff09c3a6264d", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/tests/server.pid.test.ts:1"}, "properties": {"repobilityId": "8c3a8992fb216622", "scanner": "scanner-primary", "fingerprint": "17a6ff09c3a6264d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a61a1aa8e23af6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/security/permission-policy.test.ts:499"}, "properties": {"repobilityId": "d4d635974939dba5", "scanner": "scanner-primary", "fingerprint": "3a61a1aa8e23af6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a44f53bbe3696eab", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/safety/redact.test.ts:3"}, "properties": {"repobilityId": "e7e3e469423b0331", "scanner": "scanner-primary", "fingerprint": "a44f53bbe3696eab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51c7b44203a5c617", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/tests/safety/safe-telegram-api.test.ts:283"}, "properties": {"repobilityId": "004bf7cd7d39ef05", "scanner": "scanner-primary", "fingerprint": "51c7b44203a5c617", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f7e228ca19e5527", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/safety/html-validator.test.ts:3"}, "properties": {"repobilityId": "2a93e27ccbb652f5", "scanner": "scanner-primary", "fingerprint": "3f7e228ca19e5527", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4297daed19b6398", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/tests/prompt/media-prompt.test.ts:3"}, "properties": {"repobilityId": "a3c9a02d727adde5", "scanner": "scanner-primary", "fingerprint": "d4297daed19b6398", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2380a28d3b0a301f", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/tests/prompt/reply-context.test.ts:114"}, "properties": {"repobilityId": "f4366ed18046908b", "scanner": "scanner-primary", "fingerprint": "2380a28d3b0a301f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1aedb4ed94ef4915", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/tests/router/fix-f.test.ts:9"}, "properties": {"repobilityId": "04b9e5228f9cb89a", "scanner": "scanner-primary", "fingerprint": "1aedb4ed94ef4915", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9698ef9d006a9338", "level": "none", "message": {"text": "Commented-code block (10 lines) in plugin/tests/router/fix-e.test.ts:4"}, "properties": {"repobilityId": "498798b740e4e356", "scanner": "scanner-primary", "fingerprint": "9698ef9d006a9338", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd19ce5137b6d0ed", "level": "none", "message": {"text": "Commented-code block (13 lines) in plugin/tests/router/multichat-router.gate.test.ts:4"}, "properties": {"repobilityId": "9a7085cfc341de9c", "scanner": "scanner-primary", "fingerprint": "cd19ce5137b6d0ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfcc9d2a39998df8", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/tests/router/m7-typing-reply.test.ts:3"}, "properties": {"repobilityId": "4240cee6250e377d", "scanner": "scanner-primary", "fingerprint": "cfcc9d2a39998df8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6e90262dcbc0c25", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/tests/router/tmux-session-pool.env.test.ts:3"}, "properties": {"repobilityId": "3ba7faea3e861998", "scanner": "scanner-primary", "fingerprint": "e6e90262dcbc0c25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79c5acc7e3807c5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/webhook/server.test.ts:123"}, "properties": {"repobilityId": "77b876bc341157c0", "scanner": "scanner-primary", "fingerprint": "79c5acc7e3807c5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cf8ad104e5afed5", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/webhook/ask-user-question-routes.test.ts:3"}, "properties": {"repobilityId": "febfcb02e61707ea", "scanner": "scanner-primary", "fingerprint": "0cf8ad104e5afed5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb1a71b83dce7cc8", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/commands/oob.test.ts:266"}, "properties": {"repobilityId": "74513838e2d54190", "scanner": "scanner-primary", "fingerprint": "cb1a71b83dce7cc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8eb46db0574ef7c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/keys-panel.test.ts:69"}, "properties": {"repobilityId": "7c142b0d9e7f029b", "scanner": "scanner-primary", "fingerprint": "8eb46db0574ef7c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a732430ebe87ecc", "level": "none", "message": {"text": "Commented-code block (10 lines) in plugin/tests/telegram/ask-user-question.test.ts:3"}, "properties": {"repobilityId": "5acf9dd833d0b915", "scanner": "scanner-primary", "fingerprint": "0a732430ebe87ecc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a688024a445103f", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/poller.retry.test.ts:3"}, "properties": {"repobilityId": "6d7d7dde47909c04", "scanner": "scanner-primary", "fingerprint": "0a688024a445103f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c9406bdfadb53f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/poller.lock.test.ts:3"}, "properties": {"repobilityId": "d5faa33dcacf6537", "scanner": "scanner-primary", "fingerprint": "7c9406bdfadb53f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ec13c8c079a8ba5", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/tests/telegram/handlers.voice-multichat.test.ts:3"}, "properties": {"repobilityId": "822d0d2cbdf24976", "scanner": "scanner-primary", "fingerprint": "7ec13c8c079a8ba5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ce35b4402f30833", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/tests/telegram/handlers.album.test.ts:3"}, "properties": {"repobilityId": "07423b4183f8bcc4", "scanner": "scanner-primary", "fingerprint": "0ce35b4402f30833", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e5832fa31835887", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/tests/telegram/handlers.test.ts:3"}, "properties": {"repobilityId": "64f45ff5597c3e53", "scanner": "scanner-primary", "fingerprint": "7e5832fa31835887", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d2e7d1eea9a0b0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/telegram/album-buffer.test.ts:13"}, "properties": {"repobilityId": "1585a5dcaa35a154", "scanner": "scanner-primary", "fingerprint": "6d2e7d1eea9a0b0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c44e03b8545ecd53", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/tests/telegram/handlers.addressing.test.ts:3"}, "properties": {"repobilityId": "6010155ff3948d81", "scanner": "scanner-primary", "fingerprint": "c44e03b8545ecd53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03895a6e744d51aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/tests/chats/stop-to-outbox.test.ts:4"}, "properties": {"repobilityId": "d215aa7bd1b06da7", "scanner": "scanner-primary", "fingerprint": "03895a6e744d51aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8656c66c77f62ef8", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/tests/chats/hooks-sentinel.test.ts:3"}, "properties": {"repobilityId": "e08a76e1e3cd33db", "scanner": "scanner-primary", "fingerprint": "8656c66c77f62ef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-607d907108d0ce5f", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/tests/chats/multichat-entrypoint-submit.test.ts:4"}, "properties": {"repobilityId": "284ef2d0f0c9a487", "scanner": "scanner-primary", "fingerprint": "607d907108d0ce5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4aca5ba1fbd713cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/chats/policy.primitives.test.ts:6"}, "properties": {"repobilityId": "290ca8fbba0cb4e6", "scanner": "scanner-primary", "fingerprint": "4aca5ba1fbd713cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc4419b57ab64788", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/tests/chats/multichat-entrypoint-media.test.ts:5"}, "properties": {"repobilityId": "73114e930570f5c4", "scanner": "scanner-primary", "fingerprint": "dc4419b57ab64788", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42474fe8a374276c", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/status/activity-renderer.test.ts:41"}, "properties": {"repobilityId": "eb636e5e6ee19612", "scanner": "scanner-primary", "fingerprint": "42474fe8a374276c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a795a6ecd4d6e59", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/status/tmux-pane-filter.test.ts:1"}, "properties": {"repobilityId": "7649e71562a07bc1", "scanner": "scanner-primary", "fingerprint": "6a795a6ecd4d6e59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a06c27a4ed876dd", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/tests/status/status-manager.multichat.test.ts:13"}, "properties": {"repobilityId": "a5cbe954aa3c1d25", "scanner": "scanner-primary", "fingerprint": "6a06c27a4ed876dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b4a05549fa9d722", "level": "none", "message": {"text": "Commented-code block (11 lines) in plugin/tests/status/status-manager.race.test.ts:4"}, "properties": {"repobilityId": "4ad9c90af659cbdd", "scanner": "scanner-primary", "fingerprint": "0b4a05549fa9d722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58c020d43972b43e", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/tests/status/tmux-mirror.errors.test.ts:357"}, "properties": {"repobilityId": "17326ed78c4b7fc7", "scanner": "scanner-primary", "fingerprint": "58c020d43972b43e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a24472c3264c2708", "level": "none", "message": {"text": "Commented-code block (13 lines) in plugin/tests/status/task-mirror.test.ts:6"}, "properties": {"repobilityId": "6530fd4cf24e8dc7", "scanner": "scanner-primary", "fingerprint": "a24472c3264c2708", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b304d71043ac7cb", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/tests/status/progress-reporter.test.ts:6"}, "properties": {"repobilityId": "716aeb32217ec7e0", "scanner": "scanner-primary", "fingerprint": "1b304d71043ac7cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13a4b8072754d56d", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/status/tmux-mirror.test.ts:1"}, "properties": {"repobilityId": "22c067382afe0e3c", "scanner": "scanner-primary", "fingerprint": "13a4b8072754d56d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db21f41612524599", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/tests/status/status-manager.test.ts:70"}, "properties": {"repobilityId": "9ab31fe43789243a", "scanner": "scanner-primary", "fingerprint": "db21f41612524599", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe8f25101fc0edb5", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/memory/verbose-writer.test.ts:104"}, "properties": {"repobilityId": "ea4d3fb58826647e", "scanner": "scanner-primary", "fingerprint": "fe8f25101fc0edb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ddd7c5a908406fad", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/tests/memory/hot-writer.test.ts:57"}, "properties": {"repobilityId": "77bc568d476cd280", "scanner": "scanner-primary", "fingerprint": "ddd7c5a908406fad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8fd421fbcdf8671", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/tests/memory/transcript-reader.test.ts:118"}, "properties": {"repobilityId": "f0cba2f698812aa5", "scanner": "scanner-primary", "fingerprint": "d8fd421fbcdf8671", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-922dd6e478585261", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/tests/hooks/ask-user-question-hook.test.ts:3"}, "properties": {"repobilityId": "e22f0bd7f2c95650", "scanner": "scanner-primary", "fingerprint": "922dd6e478585261", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c845bdc52ed70ace", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/tests/hooks/install-hooks.test.ts:185"}, "properties": {"repobilityId": "f0e7f8a113b0f80c", "scanner": "scanner-primary", "fingerprint": "c845bdc52ed70ace", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c9b62ff24ae5799", "level": "note", "message": {"text": "Legacy-named symbol `uOld` in plugin/tests/hooks/fallback-reply-hook.test.ts:124"}, "properties": {"repobilityId": "3b817d656ab9754e", "scanner": "scanner-primary", "fingerprint": "9c9b62ff24ae5799", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-323e76037a389c55", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/hooks/fallback-reply-hook.test.ts:1"}, "properties": {"repobilityId": "f22cca6010035b0a", "scanner": "scanner-primary", "fingerprint": "323e76037a389c55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9641fd9be0217cca", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/channel/ask-user-question.test.ts:135"}, "properties": {"repobilityId": "4ed3d2d998f7b32e", "scanner": "scanner-primary", "fingerprint": "9641fd9be0217cca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6543e988fcfc185", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/tests/channel/tools.test.ts:408"}, "properties": {"repobilityId": "b4d3dbfab4d1fd64", "scanner": "scanner-primary", "fingerprint": "a6543e988fcfc185", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c54bc247ee62ae2", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/scripts/permission-gate-hook.ts:9"}, "properties": {"repobilityId": "f2c02012e7bae725", "scanner": "scanner-primary", "fingerprint": "5c54bc247ee62ae2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0854e745a3cec743", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/scripts/ask-user-question-hook.ts:11"}, "properties": {"repobilityId": "51deb33d7cd1c6a0", "scanner": "scanner-primary", "fingerprint": "0854e745a3cec743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac258e1ff7a5e3ec", "level": "none", "message": {"text": "Commented-code block (11 lines) in plugin/scripts/read-receipt-hook.ts:4"}, "properties": {"repobilityId": "fdc2b928a829c24e", "scanner": "scanner-primary", "fingerprint": "ac258e1ff7a5e3ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc5b5fd275c43200", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/scripts/channel-reminder.ts:5"}, "properties": {"repobilityId": "58224ad90a4ada25", "scanner": "scanner-primary", "fingerprint": "fc5b5fd275c43200", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbd943f3117d521b", "level": "none", "message": {"text": "Commented-code block (10 lines) in plugin/scripts/fallback-reply-hook.ts:4"}, "properties": {"repobilityId": "4ccc0b03ee33233e", "scanner": "scanner-primary", "fingerprint": "fbd943f3117d521b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c9d27b243ba26d0", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/scripts/patch-claude-settings.ts:5"}, "properties": {"repobilityId": "5c4d5effeab9f78a", "scanner": "scanner-primary", "fingerprint": "2c9d27b243ba26d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a46c13e5631ea23", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/scripts/post-hook.ts:7"}, "properties": {"repobilityId": "e460ed24e1835d75", "scanner": "scanner-primary", "fingerprint": "6a46c13e5631ea23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48e177117344f4bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/config.ts:14"}, "properties": {"repobilityId": "ea809bb835094430", "scanner": "scanner-primary", "fingerprint": "48e177117344f4bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4b97fdd0d5aef48", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/schemas.ts:20"}, "properties": {"repobilityId": "2d5b073053cc3f5d", "scanner": "scanner-primary", "fingerprint": "d4b97fdd0d5aef48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3c60e034996e717", "level": "none", "message": {"text": "Commented-code block (12 lines) in plugin/src/server.ts:106"}, "properties": {"repobilityId": "e121db17794b8af5", "scanner": "scanner-primary", "fingerprint": "d3c60e034996e717", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd573d5670d07818", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/security/paths.ts:31"}, "properties": {"repobilityId": "eb41ccccdf19eec0", "scanner": "scanner-primary", "fingerprint": "cd573d5670d07818", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fc9d77dd0fb14db", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/src/security/permission-policy.ts:3"}, "properties": {"repobilityId": "0967e50b15965a68", "scanner": "scanner-primary", "fingerprint": "8fc9d77dd0fb14db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f1e5b71f21af61f", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/safety/rate-limited-telegram-api.ts:3"}, "properties": {"repobilityId": "964cf555c9a689e8", "scanner": "scanner-primary", "fingerprint": "1f1e5b71f21af61f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2f20ee4a669856a", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/safety/telegram-edit-classifier.ts:4"}, "properties": {"repobilityId": "ec16cbc03ee5937f", "scanner": "scanner-primary", "fingerprint": "c2f20ee4a669856a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a97825d143eb1e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/safety/html-validator.ts:3"}, "properties": {"repobilityId": "36551a56c2c9382d", "scanner": "scanner-primary", "fingerprint": "3a97825d143eb1e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5530e77347cfc6c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/safety/safe-telegram-api.ts:3"}, "properties": {"repobilityId": "7f3da83cda2bcbf6", "scanner": "scanner-primary", "fingerprint": "5530e77347cfc6c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41c2eb271a618ff0", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/src/safety/redact.ts:4"}, "properties": {"repobilityId": "a0cffbf3e100916e", "scanner": "scanner-primary", "fingerprint": "41c2eb271a618ff0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eec6ec7b592a1eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/prompt/build.ts:3"}, "properties": {"repobilityId": "965f85c6cf7f2443", "scanner": "scanner-primary", "fingerprint": "3eec6ec7b592a1eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45e5f2b5be49e998", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/router/multichat-router.ts:3"}, "properties": {"repobilityId": "464ffdef62ec8759", "scanner": "scanner-primary", "fingerprint": "45e5f2b5be49e998", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-803ddea4c1dde768", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/router/tmux-session-pool.ts:3"}, "properties": {"repobilityId": "56ff91479adeab35", "scanner": "scanner-primary", "fingerprint": "803ddea4c1dde768", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79cd0a2e0541aee1", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/router/inbox-bridge.ts:4"}, "properties": {"repobilityId": "9e497bb7176a777d", "scanner": "scanner-primary", "fingerprint": "79cd0a2e0541aee1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-530510c353a4afa8", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/state/store.ts:3"}, "properties": {"repobilityId": "b7e39b5b4524a0f6", "scanner": "scanner-primary", "fingerprint": "530510c353a4afa8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3915f52dbad2af66", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/webhook/server.ts:3"}, "properties": {"repobilityId": "7c6c734eaaefca3f", "scanner": "scanner-primary", "fingerprint": "3915f52dbad2af66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93fb7176e4e14112", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/commands/oob.ts:8"}, "properties": {"repobilityId": "4a83bd0725805712", "scanner": "scanner-primary", "fingerprint": "93fb7176e4e14112", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32fd865e1b4fd51c", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/commands/keys.ts:3"}, "properties": {"repobilityId": "8a7ce4e4d82e0afa", "scanner": "scanner-primary", "fingerprint": "32fd865e1b4fd51c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e203bc696207fd0", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/telegram/cc-panel-ui.ts:1"}, "properties": {"repobilityId": "4407651726e6f023", "scanner": "scanner-primary", "fingerprint": "6e203bc696207fd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e59ae83a24123f21", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/src/telegram/pid-inspect.ts:5"}, "properties": {"repobilityId": "7e6ecf025186f338", "scanner": "scanner-primary", "fingerprint": "e59ae83a24123f21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e211c0f82a81f62", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/telegram/watcher.ts:1"}, "properties": {"repobilityId": "ce2cc1ede5a099b4", "scanner": "scanner-primary", "fingerprint": "9e211c0f82a81f62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96c4aea97d488296", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/telegram/addressing.ts:8"}, "properties": {"repobilityId": "c12890c18d7799fc", "scanner": "scanner-primary", "fingerprint": "96c4aea97d488296", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44a5dd580bab0c0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/telegram/media.ts:3"}, "properties": {"repobilityId": "2ed769056d69e7a2", "scanner": "scanner-primary", "fingerprint": "44a5dd580bab0c0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3505ae1cc84c01aa", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/src/telegram/album-persistence.ts:12"}, "properties": {"repobilityId": "8158b9a6acc0fd07", "scanner": "scanner-primary", "fingerprint": "3505ae1cc84c01aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6585ff10bf622105", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/telegram/gate.ts:7"}, "properties": {"repobilityId": "db60c44dd20cf298", "scanner": "scanner-primary", "fingerprint": "6585ff10bf622105", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e03f9094011a8684", "level": "none", "message": {"text": "Commented-code block (9 lines) in plugin/src/telegram/poller.ts:3"}, "properties": {"repobilityId": "884809f91c046541", "scanner": "scanner-primary", "fingerprint": "e03f9094011a8684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bbc7962e7138b5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/telegram/keys-panel-ui.ts:1"}, "properties": {"repobilityId": "a0a1d2c00d27f89a", "scanner": "scanner-primary", "fingerprint": "4bbc7962e7138b5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3b0b3d329e0d394", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/telegram/ask-user-question.ts:7"}, "properties": {"repobilityId": "2875f329dd6acfae", "scanner": "scanner-primary", "fingerprint": "a3b0b3d329e0d394", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a65e2aadace23e68", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/telegram/album-buffer.ts:147"}, "properties": {"repobilityId": "8ab404f96f95a67e", "scanner": "scanner-primary", "fingerprint": "a65e2aadace23e68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cacd6af88adc534", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/telegram/handlers.ts:7"}, "properties": {"repobilityId": "8e103fd1cafd1049", "scanner": "scanner-primary", "fingerprint": "3cacd6af88adc534", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e56bcc96fe03701", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/telegram/permission-gate-ui.ts:141"}, "properties": {"repobilityId": "0fd781e72f5444bb", "scanner": "scanner-primary", "fingerprint": "9e56bcc96fe03701", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fcee82a42e1dae9", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugin/src/chats/policy-loader.ts:5"}, "properties": {"repobilityId": "7ba9f7ac7d9d44e2", "scanner": "scanner-primary", "fingerprint": "8fcee82a42e1dae9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23dc776f3fb22e3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/chats/hooks/stop-to-outbox.py:69"}, "properties": {"repobilityId": "f4328e64b77a72ee", "scanner": "scanner-primary", "fingerprint": "23dc776f3fb22e3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13139f2f993c5124", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/status/tmux-pane-filter.ts:3"}, "properties": {"repobilityId": "81035b049593cf91", "scanner": "scanner-primary", "fingerprint": "13139f2f993c5124", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd71f3f05179498f", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/status/tmux-mirror.ts:3"}, "properties": {"repobilityId": "6d99373b5e7303f2", "scanner": "scanner-primary", "fingerprint": "cd71f3f05179498f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a99fc9524aa702fe", "level": "none", "message": {"text": "Commented-code block (11 lines) in plugin/src/status/task-mirror.ts:12"}, "properties": {"repobilityId": "c2d18e87d4f14d94", "scanner": "scanner-primary", "fingerprint": "a99fc9524aa702fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4506adc397c172ec", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/status/progress-reporter.ts:5"}, "properties": {"repobilityId": "318117a3427b8d6b", "scanner": "scanner-primary", "fingerprint": "4506adc397c172ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-943825b15aaa690a", "level": "none", "message": {"text": "Commented-code block (12 lines) in plugin/src/status/status-manager.ts:6"}, "properties": {"repobilityId": "fe68c404f9b2b017", "scanner": "scanner-primary", "fingerprint": "943825b15aaa690a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48c823878ce60001", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/status/activity-renderer.ts:229"}, "properties": {"repobilityId": "92058f9092f58a53", "scanner": "scanner-primary", "fingerprint": "48c823878ce60001", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88f94a6924d2f632", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/status/telegram-api.ts:1"}, "properties": {"repobilityId": "3b6084810199fb87", "scanner": "scanner-primary", "fingerprint": "88f94a6924d2f632", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f44e774e7af90c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/memory/transcript-reader.ts:4"}, "properties": {"repobilityId": "16bac6b51c438351", "scanner": "scanner-primary", "fingerprint": "0f44e774e7af90c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09ff5511a7bb27ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/memory/verbose-writer.ts:4"}, "properties": {"repobilityId": "465f6865d19efa79", "scanner": "scanner-primary", "fingerprint": "09ff5511a7bb27ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-535b57f6b5eee188", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/memory/prompt-buffer.ts:3"}, "properties": {"repobilityId": "7b19b25ecf6cd9bb", "scanner": "scanner-primary", "fingerprint": "535b57f6b5eee188", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-974caf21d982c170", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/memory/writer.ts:3"}, "properties": {"repobilityId": "51ebc4f5af12404c", "scanner": "scanner-primary", "fingerprint": "974caf21d982c170", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba0ac436602f03b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/memory/hot-writer.ts:3"}, "properties": {"repobilityId": "043143e02f4c7886", "scanner": "scanner-primary", "fingerprint": "ba0ac436602f03b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa90f63e51478385", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/hooks/claude-events.ts:25"}, "properties": {"repobilityId": "40e401a60e9f028e", "scanner": "scanner-primary", "fingerprint": "fa90f63e51478385", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b98bdfaea4af560", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/format/chunk.ts:6"}, "properties": {"repobilityId": "4889d4384ecf8e6f", "scanner": "scanner-primary", "fingerprint": "4b98bdfaea4af560", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3021e1fbb14aacb", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/format/html.ts:216"}, "properties": {"repobilityId": "4e19613797d941a6", "scanner": "scanner-primary", "fingerprint": "b3021e1fbb14aacb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2993bb1d1f066e36", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/channel/permissions.ts:1"}, "properties": {"repobilityId": "cd0283b10d58370b", "scanner": "scanner-primary", "fingerprint": "2993bb1d1f066e36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fd70aa42fadb8fd", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/channel/tools.ts:90"}, "properties": {"repobilityId": "ad2dee3d6bd542bd", "scanner": "scanner-primary", "fingerprint": "6fd70aa42fadb8fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07e1e07590276f44", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 plugin/src/channel/tools.ts:191"}, "properties": {"repobilityId": "cbe010407fd19fda", "scanner": "scanner-primary", "fingerprint": "07e1e07590276f44", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c0ae9aa2da32e26b", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/src/channel/ask-user-question.ts:3"}, "properties": {"repobilityId": "c037e8c1c572cb94", "scanner": "scanner-primary", "fingerprint": "c0ae9aa2da32e26b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd1b0e80c66797f0", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugin/src/channel/notify.ts:7"}, "properties": {"repobilityId": "c2c6bde734aa79fc", "scanner": "scanner-primary", "fingerprint": "cd1b0e80c66797f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76afb6aeb3d943e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/src/channel/short-id.ts:1"}, "properties": {"repobilityId": "bc93b3c3552939ac", "scanner": "scanner-primary", "fingerprint": "76afb6aeb3d943e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47bc4c76cc3324ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in skills/doctor-dashi-plugin/scripts/doctor.ts:118"}, "properties": {"repobilityId": "290aaf9c7b47955d", "scanner": "scanner-primary", "fingerprint": "47bc4c76cc3324ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3193f3aacf9a3d2c", "level": "none", "message": {"text": "Commented-code block (6 lines) in skills/doctor-dashi-plugin/scripts/doctor.test.ts:1112"}, "properties": {"repobilityId": "1e607f43df2af161", "scanner": "scanner-primary", "fingerprint": "3193f3aacf9a3d2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7de670297e14f2a1", "level": "note", "message": {"text": "41 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "1c11cebf17f19045", "scanner": "scanner-primary", "fingerprint": "7de670297e14f2a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}