{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-379581eb524cbd75", "name": "Stray `console.log` in TS/JS \u2014 agent-plugins/src/loader.ts:166", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-plugins/src/loader.ts:166"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d9de52a1fed4d6b", "name": "Stray `console.log` in TS/JS \u2014 demo/src/llm-with-tools.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/llm-with-tools.ts:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f39aba27640d661", "name": "Stray `console.log` in TS/JS \u2014 demo/src/real-llm.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/real-llm.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-97852514f463b6bb", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-security-depth.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-security-depth.ts:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b44dec65acdf4974", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-all-tools.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-all-tools.ts:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d238d3e25790087", "name": "Stray `console.log` in TS/JS \u2014 demo/src/test-tools.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/test-tools.ts:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4bbfbc7cce319bd8", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-memory.ts:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-memory.ts:99"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56c022c3a06ce2bd", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-plugin-sandbox.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-plugin-sandbox.ts:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-204d28226d2d4943", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-permission-matrix.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-permission-matrix.ts:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ff2e318c1963078", "name": "Stray `console.log` in TS/JS \u2014 demo/src/main.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/main.ts:54"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12405b971f0d79ab", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-grant-request.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-grant-request.ts:53"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-902c4dc3e65098a2", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-memory-e2e.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-memory-e2e.ts:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-304e4a2402d9ab23", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-tools.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-tools.ts:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c77718b52a9836ed", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-policy-integration.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-policy-integration.ts:59"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b13e381e27612d2", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-time-memory.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-time-memory.ts:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d811eab124c2c9d9", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-predictive-wakeup.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-predictive-wakeup.ts:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73cc42f7533033a2", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-drive-engines.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-drive-engines.ts:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c34768e7a16bf746", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-deep-explore.ts:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-deep-explore.ts:90"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b111faf5286569fa", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-active-research.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-active-research.ts:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f014190708c0847e", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-drive-engines-full.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-drive-engines-full.ts:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61909def178b4984", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-compactor.ts:114", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-compactor.ts:114"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eaa687459f4bf394", "name": "Stray `console.log` in TS/JS \u2014 demo/src/demo-credential-injection.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-credential-injection.ts:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2db0989f6bea5a8d", "name": "Stray `console.log` in TS/JS \u2014 agent-tools/tests/z3-verify.test.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/tests/z3-verify.test.ts:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2fbe263f16479428", "name": "Stray `console.log` in TS/JS \u2014 agent-tools/tests/gp.test.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/tests/gp.test.ts:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-07eb11c922d5b49d", "name": "Stray `console.log` in TS/JS \u2014 agent-tools/src/network/webSearch.ts:316", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/src/network/webSearch.ts:316"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-686164c41cb60a20", "name": "Stray `console.log` in TS/JS \u2014 agent-tools/src/skills/loader.ts:415", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/src/skills/loader.ts:415"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6302e32228a54aff", "name": "Stray `console.log` in TS/JS \u2014 agent-mcp/src/bridge.ts:150", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-mcp/src/bridge.ts:150"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9caf45b51273b175", "name": "Stray `console.log` in TS/JS \u2014 launcher/src/wechat-login.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/wechat-login.ts:61"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f862a1377b6df57a", "name": "Stray `console.log` in TS/JS \u2014 launcher/src/index.ts:167", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/index.ts:167"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c14e7c0df4a08b4", "name": "Stray `console.log` in TS/JS \u2014 launcher/src/open-browser.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/open-browser.ts:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c3a0eb27bd510d0", "name": "Stray `console.log` in TS/JS \u2014 launcher/src/desktop-shortcut.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/desktop-shortcut.ts:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d159a7609cd0c78f", "name": "TODO/FIXME marker in shipping code \u2014 server/tests/failure_recovery_inject.test.ts:89", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 server/tests/failure_recovery_inject.test.ts:89"}, "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-5f49db8ea0680951", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/config-rule-rollback.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/config-rule-rollback.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-664a683402c73924", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/seed-memory.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/seed-memory.ts:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dea46f088f13505a", "name": "Stray `console.log` in TS/JS \u2014 server/src/fetched_resources_hook.ts:159", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/fetched_resources_hook.ts:159"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6262986c04bca33f", "name": "Stray `console.log` in TS/JS \u2014 server/src/llm-adapter.ts:311", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/llm-adapter.ts:311"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de17cab741fc57bb", "name": "Stray `console.log` in TS/JS \u2014 server/src/index.ts:167", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/index.ts:167"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-522ce88c2de51597", "name": "Stray `console.log` in TS/JS \u2014 server/src/load-env.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/load-env.ts:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73274fa4dff334f4", "name": "Stray `console.log` in TS/JS \u2014 server/src/reflection_runner.ts:233", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/reflection_runner.ts:233"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eec872376f7f2f5e", "name": "Stray `console.log` in TS/JS \u2014 server/src/deep_explore_autoadvance.ts:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/deep_explore_autoadvance.ts:120"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-43864c8f34f68e27", "name": "Stray `console.log` in TS/JS \u2014 server/src/proxy-bootstrap.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/proxy-bootstrap.ts:54"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4613c55d86261e72", "name": "Stray `console.log` in TS/JS \u2014 server/src/chat-handler.ts:234", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/chat-handler.ts:234"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cdce4aeecba7033f", "name": "Stray `console.log` in TS/JS \u2014 server/src/push/service_driver.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/push/service_driver.ts:65"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6df8d5e17bc3f8af", "name": "Stray `console.log` in TS/JS \u2014 server/src/push/dispatcher.ts:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/push/dispatcher.ts:100"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-87062adda7d89187", "name": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/index.ts:239", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/index.ts:239"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e2ccda7b9ae9cc2", "name": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/client.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/client.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6375c18ab3efeede", "name": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/gateway.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/gateway.ts:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-341e1c6f44688505", "name": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/login.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/login.ts:55"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-807dcbd07479f0f9", "name": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/index.ts:386", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/index.ts:386"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d270ca732387b30", "name": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/cli.ts:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/cli.ts:77"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3cf80d4b931d6285", "name": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/gateway.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/gateway.ts:97"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-169e5d1ce40fcea5", "name": "Stray `console.log` in TS/JS \u2014 agent-policy/src/policy.ts:249", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-policy/src/policy.ts:249"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-43226eecedafcd2c", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/tests/honesty_gate.test.ts:656", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/tests/honesty_gate.test.ts:656"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb51fd4baaef599d", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/src/plan_tools.ts:995", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/plan_tools.ts:995"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c3a077463570f363", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/src/paths.ts:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/paths.ts:86"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-376e57a638b3096d", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/src/reflector.ts:345", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/reflector.ts:345"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d51f2a93863ba509", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/src/idle_consolidator.ts:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/idle_consolidator.ts:84"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee7401da9b816df4", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/loop.ts:153", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/loop.ts:153"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ede12d75fbdd4680", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/executor.ts:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/executor.ts:113"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e76084b71d84700", "name": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/pursuit_progress_writer.ts:170", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/pursuit_progress_writer.ts:170"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e07e5801ac709917", "name": "Docker base image is tag-pinned but not digest-pinned: node:22-bookworm", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-bookworm"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2bc9f8a1836ee618", "name": "Possible secret in demo/src/demo-plugin-sandbox.ts", "shortDescription": {"text": "Possible secret in demo/src/demo-plugin-sandbox.ts"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6ff39769b2891105", "name": "Insecure pattern 'node_child_process' in agent-tools/src/git/git.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/git/git.ts:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2feaf3cc813e1ad7", "name": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/gp.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/gp.ts:24"}, "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-b4b77178f8740014", "name": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/shell.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/shell.ts:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5270d2fdce4c7783", "name": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/z3.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/z3.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-ab6e5482682049d7", "name": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/process.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/process.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c933d32f230a513c", "name": "Insecure pattern 'node_child_process' in agent-mcp/src/transport/stdio.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in agent-mcp/src/transport/stdio.ts:7"}, "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-dec16916c543cb78", "name": "Insecure pattern 'node_child_process' in launcher/scripts/assemble.mjs:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in launcher/scripts/assemble.mjs:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3eb9af70119aed15", "name": "Insecure pattern 'node_child_process' in launcher/src/capabilities.ts:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in launcher/src/capabilities.ts:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9136a8f4123645bd", "name": "Insecure pattern 'node_child_process' in launcher/src/wechat-login.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in launcher/src/wechat-login.ts:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97f6b2f85d56f0b6", "name": "Insecure pattern 'cors_wildcard' in launcher/src/index.ts:44", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in launcher/src/index.ts:44"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ed5d9f25c675ecf", "name": "Insecure pattern 'node_child_process' in launcher/src/open-browser.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in launcher/src/open-browser.ts:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00b56f8a0a34e29e", "name": "Insecure pattern 'node_child_process' in launcher/src/supervisor.ts:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in launcher/src/supervisor.ts:14"}, "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-3d354e888e4e7c64", "name": "Insecure pattern 'exec_used' in server/src/plan_gate.ts:107", "shortDescription": {"text": "Insecure pattern 'exec_used' in server/src/plan_gate.ts:107"}, "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-7e046d89995de6d2", "name": "Insecure pattern 'cors_wildcard' in server/src/index.ts:89", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in server/src/index.ts:89"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9343b7816ed03bca", "name": "Very large file: server/src/chat-handler.ts (7194 lines)", "shortDescription": {"text": "Very large file: server/src/chat-handler.ts (7194 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-e8775efd6c595a9b", "name": "Very large file: server/src/deep_explore.ts (2567 lines)", "shortDescription": {"text": "Very large file: server/src/deep_explore.ts (2567 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-71c515f9c5a4e6c2", "name": "Very large file: agent-memory/tests/plan_tools.test.ts (1563 lines)", "shortDescription": {"text": "Very large file: agent-memory/tests/plan_tools.test.ts (1563 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-52c9e3565365a600", "name": "Very large file: agent-memory/src/plan_tools.ts (1750 lines)", "shortDescription": {"text": "Very large file: agent-memory/src/plan_tools.ts (1750 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-721073d6c682788d", "name": "Very large file: agent-memory/src/schema.ts (1351 lines)", "shortDescription": {"text": "Very large file: agent-memory/src/schema.ts (1351 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-85c2c0968f4af137", "name": "Very large file: agent-memory/src/reflection.ts (1179 lines)", "shortDescription": {"text": "Very large file: agent-memory/src/reflection.ts (1179 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 645 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 282 placeholder/mock markers across 44 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-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-c0647af3a18e7223", "name": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/skill-creator/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/skill-creator/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee57ffb55a38dc7e", "name": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/github-skills/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/github-skills/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c73078e604a5eeab", "name": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/clawhub/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/clawhub/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90d50258fc4c3131", "name": "Agent instruction/config may expose a secret: agent-tools/bundled-skills/service-onboarding/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: agent-tools/bundled-skills/service-onboarding/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ac9f680dc1d5ec5", "name": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/code-search-strategy/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/code-search-strategy/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2159a7fb7af78259", "name": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/git-workflow/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/git-workflow/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0732f25f8203914", "name": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/autonomous.ts:137", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/autonomous.ts:137"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-49d46495edd64e68", "name": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/memory.ts:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/memory.ts:134"}, "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-bdd85beb143d105f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/settings.ts:476", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/settings.ts:476"}, "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-3fae31600b20ef45", "name": "Commented-code block (11 lines) in agent-tools/src/network/securedHttp.ts:103", "shortDescription": {"text": "Commented-code block (11 lines) in agent-tools/src/network/securedHttp.ts:103"}, "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-9ec9a9cdeb1c484b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 agent-tools/src/network/webFetch.ts:150", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 agent-tools/src/network/webFetch.ts:150"}, "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-d6d7b44f9686b8b3", "name": "Commented-code block (5 lines) in agent-tools/src/runtime/shell.ts:200", "shortDescription": {"text": "Commented-code block (5 lines) in agent-tools/src/runtime/shell.ts:200"}, "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-e57bad667c93c7ed", "name": "Commented-code block (7 lines) in agent-tools/src/runtime/magnitude.ts:169", "shortDescription": {"text": "Commented-code block (7 lines) in agent-tools/src/runtime/magnitude.ts:169"}, "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-884e0ae26e2b554f", "name": "Commented-code block (6 lines) in agent-mcp/src/wrapper.ts:70", "shortDescription": {"text": "Commented-code block (6 lines) in agent-mcp/src/wrapper.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-a1ecb5402c147a88", "name": "Commented-code block (5 lines) in agent-mcp/src/transport/stdio.ts:73", "shortDescription": {"text": "Commented-code block (5 lines) in agent-mcp/src/transport/stdio.ts:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2ba847da5e14601", "name": "Commented-code block (6 lines) in launcher/src/capabilities.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in launcher/src/capabilities.ts:30"}, "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-4c4410e4d6ee9479", "name": "Commented-code block (5 lines) in launcher/src/paths.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in launcher/src/paths.ts:49"}, "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-4bf7b4375cffb9c3", "name": "Commented-code block (5 lines) in launcher/src/index.ts:196", "shortDescription": {"text": "Commented-code block (5 lines) in launcher/src/index.ts:196"}, "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-1357aeda6a6e017b", "name": "Commented-code block (5 lines) in launcher/src/supervisor.ts:112", "shortDescription": {"text": "Commented-code block (5 lines) in launcher/src/supervisor.ts:112"}, "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-e6f79d57459669d6", "name": "Commented-code block (6 lines) in server/tests/in_turn_reflection.test.ts:172", "shortDescription": {"text": "Commented-code block (6 lines) in server/tests/in_turn_reflection.test.ts:172"}, "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-46468a1e6108e196", "name": "Commented-code block (5 lines) in server/tests/wechat_crypto.test.ts:94", "shortDescription": {"text": "Commented-code block (5 lines) in server/tests/wechat_crypto.test.ts:94"}, "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-c541b7c25e9e5a27", "name": "Commented-code block (5 lines) in server/scripts/mycox-cleanup.cjs:153", "shortDescription": {"text": "Commented-code block (5 lines) in server/scripts/mycox-cleanup.cjs:153"}, "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-807d848d35a1bc76", "name": "Commented-code block (7 lines) in server/src/message-budget.ts:309", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/message-budget.ts:309"}, "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-a2286e3c289bba90", "name": "Legacy-named symbol `chatcompletion_v2` in server/src/llm-adapter.ts:480", "shortDescription": {"text": "Legacy-named symbol `chatcompletion_v2` in server/src/llm-adapter.ts:480"}, "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-27279529262bc545", "name": "Commented-code block (11 lines) in server/src/llm-adapter.ts:66", "shortDescription": {"text": "Commented-code block (11 lines) in server/src/llm-adapter.ts: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-179c76aeefd1af01", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/llm-adapter.ts:687", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/llm-adapter.ts:687"}, "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-6187ef418b0c6f70", "name": "Commented-code block (9 lines) in server/src/autonomous_progress_inject.ts:170", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/autonomous_progress_inject.ts:170"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96d8684258fc8fa0", "name": "Commented-code block (8 lines) in server/src/output_section_filter.ts:67", "shortDescription": {"text": "Commented-code block (8 lines) in server/src/output_section_filter.ts:67"}, "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-b7ced0a2414a1a32", "name": "Commented-code block (10 lines) in server/src/plan_gate.ts:36", "shortDescription": {"text": "Commented-code block (10 lines) in server/src/plan_gate.ts:36"}, "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-c79106bc5ff13ccc", "name": "Commented-code block (6 lines) in server/src/index.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/index.ts:30"}, "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-4adda052a85a6941", "name": "Commented-code block (5 lines) in server/src/reflection_runner.ts:263", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/reflection_runner.ts:263"}, "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-e00c7fe08eda090f", "name": "Commented-code block (5 lines) in server/src/failure_recovery_inject.ts:82", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/failure_recovery_inject.ts:82"}, "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-4ecf282be9801e64", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/proxy-bootstrap.ts:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/proxy-bootstrap.ts:7"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0795831e0500728e", "name": "Commented-code block (5 lines) in server/src/in_turn_reflection.ts:89", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/in_turn_reflection.ts:89"}, "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-41ae4beddeb3599c", "name": "Commented-code block (5 lines) in server/src/chat-handler.ts:228", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/chat-handler.ts:228"}, "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-df7ed277b5b42bbb", "name": "Commented-code block (6 lines) in server/src/headless.ts:153", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/headless.ts:153"}, "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-cee53061e0724ef8", "name": "Commented-code block (6 lines) in server/src/deep_explore.ts:1167", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/deep_explore.ts:1167"}, "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-01f71d24deff0ea2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/deep_explore.ts:2162", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/deep_explore.ts:2162"}, "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-89343f2d44ffec24", "name": "Commented-code block (6 lines) in server/src/channels/wechat/index.ts:115", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/channels/wechat/index.ts:115"}, "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-1c3444a444e5fa16", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/channels/wechat/client.ts:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/channels/wechat/client.ts:92"}, "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-f4aed6fc52af99b2", "name": "Commented-code block (7 lines) in agent-policy/src/policy.ts:96", "shortDescription": {"text": "Commented-code block (7 lines) in agent-policy/src/policy.ts:96"}, "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-1510e44366405ab4", "name": "Commented-code block (5 lines) in agent-policy/src/secrets/injector.ts:233", "shortDescription": {"text": "Commented-code block (5 lines) in agent-policy/src/secrets/injector.ts:233"}, "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-451595dee85b6946", "name": "`fetch()` without try/.catch or AbortSignal \u2014 agent-policy/src/secrets/injector.ts:270", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 agent-policy/src/secrets/injector.ts:270"}, "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-40814364fa116116", "name": "Commented-code block (6 lines) in agent-policy/src/validators/pathAcl.ts:71", "shortDescription": {"text": "Commented-code block (6 lines) in agent-policy/src/validators/pathAcl.ts:71"}, "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-4485c0aebf3d3ced", "name": "Commented-code block (6 lines) in agent-memory/tests/fetched_resources.test.ts:224", "shortDescription": {"text": "Commented-code block (6 lines) in agent-memory/tests/fetched_resources.test.ts:224"}, "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-0055b24ef51362fa", "name": "Legacy-named symbol `validatedOld` in agent-memory/tests/routing_decay.test.ts:214", "shortDescription": {"text": "Legacy-named symbol `validatedOld` in agent-memory/tests/routing_decay.test.ts:214"}, "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-08145adc71ca94cb", "name": "Legacy-named symbol `recentLegacy` in agent-memory/tests/autonomous_initiatives.test.ts:122", "shortDescription": {"text": "Legacy-named symbol `recentLegacy` in agent-memory/tests/autonomous_initiatives.test.ts:122"}, "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-5e5e4b91ad8e86e0", "name": "Commented-code block (6 lines) in agent-memory/src/plan_tools.ts:751", "shortDescription": {"text": "Commented-code block (6 lines) in agent-memory/src/plan_tools.ts:751"}, "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-90e9c85a4e46add0", "name": "Commented-code block (5 lines) in agent-memory/src/schema.ts:606", "shortDescription": {"text": "Commented-code block (5 lines) in agent-memory/src/schema.ts:606"}, "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-b853b70f8c1b1b9d", "name": "Commented-code block (5 lines) in agent-memory/src/timeline.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in agent-memory/src/timeline.ts:71"}, "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-a406a2062401460d", "name": "Commented-code block (9 lines) in agent-memory/src/honesty_gate.ts:166", "shortDescription": {"text": "Commented-code block (9 lines) in agent-memory/src/honesty_gate.ts:166"}, "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-f86ec131eefbe3f8", "name": "Commented-code block (5 lines) in agent-memory/src/plan_files.ts:471", "shortDescription": {"text": "Commented-code block (5 lines) in agent-memory/src/plan_files.ts:471"}, "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-91096385306ba8dc", "name": "Commented-code block (7 lines) in agent-memory/src/types.ts:415", "shortDescription": {"text": "Commented-code block (7 lines) in agent-memory/src/types.ts:415"}, "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-ba2a3a8fdc3712c5", "name": "Commented-code block (5 lines) in agent-memory/src/reflection.ts:281", "shortDescription": {"text": "Commented-code block (5 lines) in agent-memory/src/reflection.ts:281"}, "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-6d0050133afd760f", "name": "Commented-code block (7 lines) in agent-memory/src/failure_signatures.ts:136", "shortDescription": {"text": "Commented-code block (7 lines) in agent-memory/src/failure_signatures.ts:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a040dded8673f7de", "name": "Commented-code block (5 lines) in agent-memory/src/signals/commitment_pressure.ts:89", "shortDescription": {"text": "Commented-code block (5 lines) in agent-memory/src/signals/commitment_pressure.ts:89"}, "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-b447cfaa1c197fb1", "name": "Commented-code block (6 lines) in agent-memory/src/autonomous/executor.ts:190", "shortDescription": {"text": "Commented-code block (6 lines) in agent-memory/src/autonomous/executor.ts:190"}, "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-1eb233e797992874", "name": "Commented-code block (6 lines) in agent-memory/src/autonomous/pursuit_progress_writer.ts:115", "shortDescription": {"text": "Commented-code block (6 lines) in agent-memory/src/autonomous/pursuit_progress_writer.ts:115"}, "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-817ad132a29f60c5", "name": "Commented-code block (6 lines) in agent-memory/src/autonomous/k7_bridge.ts:171", "shortDescription": {"text": "Commented-code block (6 lines) in agent-memory/src/autonomous/k7_bridge.ts:171"}, "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-8c32765aaada2f8c", "name": "Commented-code block (11 lines) in agent-memory/src/autonomous/budget.ts:33", "shortDescription": {"text": "Commented-code block (11 lines) in agent-memory/src/autonomous/budget.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bb214690e90c32b", "name": "Commented-code block (8 lines) in agent-memory/src/autonomous/drivers/curiosity_driver.ts:28", "shortDescription": {"text": "Commented-code block (8 lines) in agent-memory/src/autonomous/drivers/curiosity_driver.ts:28"}, "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-e676fda0bb3dfde2", "name": "Commented-code block (5 lines) in agent-memory/src/autonomous/drivers/pursuit_driver.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in agent-memory/src/autonomous/drivers/pursuit_driver.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-9bcb111e6bd50447", "name": "128 env vars used in code but missing from .env.example", "shortDescription": {"text": "128 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AGENT_TIMEZONE`, `ALL_PROXY`, `ANTHROPIC_BASE_URL`, `ANTHROPIC_MODEL`, `AUX_LLM_API_KEY`, `AUX_LLM_BASE_URL`, `AUX_LLM_MODEL`, `AUX_LLM_PROTOCOL` + 120 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/18581"}, "properties": {"repository": "ruozhuoruoyu/Philont-Agent", "repoUrl": "https://github.com/ruozhuoruoyu/Philont-Agent", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-379581eb524cbd75", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-plugins/src/loader.ts:166"}, "properties": {"repobilityId": "96e19572834874e1", "scanner": "scanner-primary", "fingerprint": "379581eb524cbd75", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d9de52a1fed4d6b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/llm-with-tools.ts:25"}, "properties": {"repobilityId": "f9946a5fd8734684", "scanner": "scanner-primary", "fingerprint": "6d9de52a1fed4d6b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f39aba27640d661", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/real-llm.ts:33"}, "properties": {"repobilityId": "4a9f9b9f605fcfea", "scanner": "scanner-primary", "fingerprint": "8f39aba27640d661", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97852514f463b6bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-security-depth.ts:28"}, "properties": {"repobilityId": "8b491456089e3a52", "scanner": "scanner-primary", "fingerprint": "97852514f463b6bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b44dec65acdf4974", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-all-tools.ts:19"}, "properties": {"repobilityId": "9156065b1519ca47", "scanner": "scanner-primary", "fingerprint": "b44dec65acdf4974", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d238d3e25790087", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/test-tools.ts:20"}, "properties": {"repobilityId": "8c002fdf65043825", "scanner": "scanner-primary", "fingerprint": "6d238d3e25790087", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4bbfbc7cce319bd8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-memory.ts:99"}, "properties": {"repobilityId": "6e486b9c3e4ff19c", "scanner": "scanner-primary", "fingerprint": "4bbfbc7cce319bd8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-56c022c3a06ce2bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-plugin-sandbox.ts:16"}, "properties": {"repobilityId": "c8a3c1fe3fc2d0d0", "scanner": "scanner-primary", "fingerprint": "56c022c3a06ce2bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-204d28226d2d4943", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-permission-matrix.ts:37"}, "properties": {"repobilityId": "4c804d9fe47ce31e", "scanner": "scanner-primary", "fingerprint": "204d28226d2d4943", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ff2e318c1963078", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/main.ts:54"}, "properties": {"repobilityId": "87da1de0f5d5bac9", "scanner": "scanner-primary", "fingerprint": "6ff2e318c1963078", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-12405b971f0d79ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-grant-request.ts:53"}, "properties": {"repobilityId": "40049b141dde32be", "scanner": "scanner-primary", "fingerprint": "12405b971f0d79ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-902c4dc3e65098a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-memory-e2e.ts:38"}, "properties": {"repobilityId": "88356d33c239f640", "scanner": "scanner-primary", "fingerprint": "902c4dc3e65098a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-304e4a2402d9ab23", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-tools.ts:19"}, "properties": {"repobilityId": "6c83dd568d1de300", "scanner": "scanner-primary", "fingerprint": "304e4a2402d9ab23", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c77718b52a9836ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-policy-integration.ts:59"}, "properties": {"repobilityId": "d7e2bbef5f18d3c8", "scanner": "scanner-primary", "fingerprint": "c77718b52a9836ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b13e381e27612d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-time-memory.ts:24"}, "properties": {"repobilityId": "4a789e2b26e11a83", "scanner": "scanner-primary", "fingerprint": "6b13e381e27612d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d811eab124c2c9d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-predictive-wakeup.ts:28"}, "properties": {"repobilityId": "83f6030bde974fa0", "scanner": "scanner-primary", "fingerprint": "d811eab124c2c9d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73cc42f7533033a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-drive-engines.ts:22"}, "properties": {"repobilityId": "3b9aaf3357f12c67", "scanner": "scanner-primary", "fingerprint": "73cc42f7533033a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c34768e7a16bf746", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-deep-explore.ts:90"}, "properties": {"repobilityId": "0953da0e6434b54a", "scanner": "scanner-primary", "fingerprint": "c34768e7a16bf746", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b111faf5286569fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-active-research.ts:38"}, "properties": {"repobilityId": "794f6af90cbbe747", "scanner": "scanner-primary", "fingerprint": "b111faf5286569fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f014190708c0847e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-drive-engines-full.ts:29"}, "properties": {"repobilityId": "f5d566f8f1acff37", "scanner": "scanner-primary", "fingerprint": "f014190708c0847e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-61909def178b4984", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-compactor.ts:114"}, "properties": {"repobilityId": "40ed3384400f6981", "scanner": "scanner-primary", "fingerprint": "61909def178b4984", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eaa687459f4bf394", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 demo/src/demo-credential-injection.ts:30"}, "properties": {"repobilityId": "72763ddb6a4503a5", "scanner": "scanner-primary", "fingerprint": "eaa687459f4bf394", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2db0989f6bea5a8d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/tests/z3-verify.test.ts:20"}, "properties": {"repobilityId": "a719c72f9ee104f9", "scanner": "scanner-primary", "fingerprint": "2db0989f6bea5a8d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2fbe263f16479428", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/tests/gp.test.ts:21"}, "properties": {"repobilityId": "822eaa39bb5d1fd3", "scanner": "scanner-primary", "fingerprint": "2fbe263f16479428", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07eb11c922d5b49d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/src/network/webSearch.ts:316"}, "properties": {"repobilityId": "fffad63df906822a", "scanner": "scanner-primary", "fingerprint": "07eb11c922d5b49d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-686164c41cb60a20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-tools/src/skills/loader.ts:415"}, "properties": {"repobilityId": "710b149d1f0b8f43", "scanner": "scanner-primary", "fingerprint": "686164c41cb60a20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6302e32228a54aff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-mcp/src/bridge.ts:150"}, "properties": {"repobilityId": "fcf4cfd4b28260b9", "scanner": "scanner-primary", "fingerprint": "6302e32228a54aff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9caf45b51273b175", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/wechat-login.ts:61"}, "properties": {"repobilityId": "5c6fccca02473e14", "scanner": "scanner-primary", "fingerprint": "9caf45b51273b175", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f862a1377b6df57a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/index.ts:167"}, "properties": {"repobilityId": "9cf2387bc3c75be6", "scanner": "scanner-primary", "fingerprint": "f862a1377b6df57a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6c14e7c0df4a08b4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/open-browser.ts:12"}, "properties": {"repobilityId": "5b802c997bbc28c8", "scanner": "scanner-primary", "fingerprint": "6c14e7c0df4a08b4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c3a0eb27bd510d0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 launcher/src/desktop-shortcut.ts:25"}, "properties": {"repobilityId": "3ad64f52e728650a", "scanner": "scanner-primary", "fingerprint": "1c3a0eb27bd510d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d159a7609cd0c78f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 server/tests/failure_recovery_inject.test.ts:89"}, "properties": {"repobilityId": "c23ac89e9c2f8bc9", "scanner": "scanner-primary", "fingerprint": "d159a7609cd0c78f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5f49db8ea0680951", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/config-rule-rollback.ts:43"}, "properties": {"repobilityId": "90387f79ac6e9b4b", "scanner": "scanner-primary", "fingerprint": "5f49db8ea0680951", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-664a683402c73924", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/seed-memory.ts:12"}, "properties": {"repobilityId": "3b2dc0a501eff413", "scanner": "scanner-primary", "fingerprint": "664a683402c73924", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dea46f088f13505a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/fetched_resources_hook.ts:159"}, "properties": {"repobilityId": "be99ea2da2e7deca", "scanner": "scanner-primary", "fingerprint": "dea46f088f13505a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6262986c04bca33f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/llm-adapter.ts:311"}, "properties": {"repobilityId": "1ee942044ff9230b", "scanner": "scanner-primary", "fingerprint": "6262986c04bca33f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-de17cab741fc57bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/index.ts:167"}, "properties": {"repobilityId": "966123b8e19cb728", "scanner": "scanner-primary", "fingerprint": "de17cab741fc57bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-522ce88c2de51597", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/load-env.ts:37"}, "properties": {"repobilityId": "6e6bf20fc7df4167", "scanner": "scanner-primary", "fingerprint": "522ce88c2de51597", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73274fa4dff334f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/reflection_runner.ts:233"}, "properties": {"repobilityId": "71ba35bfd7c52509", "scanner": "scanner-primary", "fingerprint": "73274fa4dff334f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eec872376f7f2f5e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/deep_explore_autoadvance.ts:120"}, "properties": {"repobilityId": "13e91fe9e58df2b1", "scanner": "scanner-primary", "fingerprint": "eec872376f7f2f5e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43864c8f34f68e27", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/proxy-bootstrap.ts:54"}, "properties": {"repobilityId": "8578346ccabb4081", "scanner": "scanner-primary", "fingerprint": "43864c8f34f68e27", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4613c55d86261e72", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/chat-handler.ts:234"}, "properties": {"repobilityId": "5a81202d07ac83a1", "scanner": "scanner-primary", "fingerprint": "4613c55d86261e72", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cdce4aeecba7033f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/push/service_driver.ts:65"}, "properties": {"repobilityId": "f2db49f4782fac0e", "scanner": "scanner-primary", "fingerprint": "cdce4aeecba7033f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6df8d5e17bc3f8af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/push/dispatcher.ts:100"}, "properties": {"repobilityId": "808c980f4524cd59", "scanner": "scanner-primary", "fingerprint": "6df8d5e17bc3f8af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-87062adda7d89187", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/index.ts:239"}, "properties": {"repobilityId": "fbfedc79bf1a1ffd", "scanner": "scanner-primary", "fingerprint": "87062adda7d89187", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e2ccda7b9ae9cc2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/client.ts:51"}, "properties": {"repobilityId": "d7b241ea5fad03ad", "scanner": "scanner-primary", "fingerprint": "6e2ccda7b9ae9cc2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6375c18ab3efeede", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/telegram/gateway.ts:48"}, "properties": {"repobilityId": "923b49979d3b4f40", "scanner": "scanner-primary", "fingerprint": "6375c18ab3efeede", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-341e1c6f44688505", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/login.ts:55"}, "properties": {"repobilityId": "6abd08b09ef1cdaa", "scanner": "scanner-primary", "fingerprint": "341e1c6f44688505", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-807dcbd07479f0f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/index.ts:386"}, "properties": {"repobilityId": "3aeae45146ae38c8", "scanner": "scanner-primary", "fingerprint": "807dcbd07479f0f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d270ca732387b30", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/cli.ts:77"}, "properties": {"repobilityId": "1714d6bab2dcbff9", "scanner": "scanner-primary", "fingerprint": "3d270ca732387b30", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3cf80d4b931d6285", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/channels/wechat/gateway.ts:97"}, "properties": {"repobilityId": "07cdd2beaacbff20", "scanner": "scanner-primary", "fingerprint": "3cf80d4b931d6285", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-169e5d1ce40fcea5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-policy/src/policy.ts:249"}, "properties": {"repobilityId": "3be472fbd76618c6", "scanner": "scanner-primary", "fingerprint": "169e5d1ce40fcea5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43226eecedafcd2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/tests/honesty_gate.test.ts:656"}, "properties": {"repobilityId": "d30f61f7e68955d2", "scanner": "scanner-primary", "fingerprint": "43226eecedafcd2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb51fd4baaef599d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/plan_tools.ts:995"}, "properties": {"repobilityId": "e171c42a7c855def", "scanner": "scanner-primary", "fingerprint": "bb51fd4baaef599d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c3a077463570f363", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/paths.ts:86"}, "properties": {"repobilityId": "d2b9e9db8775a2db", "scanner": "scanner-primary", "fingerprint": "c3a077463570f363", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-376e57a638b3096d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/reflector.ts:345"}, "properties": {"repobilityId": "2c1689cf9ab86a50", "scanner": "scanner-primary", "fingerprint": "376e57a638b3096d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d51f2a93863ba509", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/idle_consolidator.ts:84"}, "properties": {"repobilityId": "20e015d7e195c768", "scanner": "scanner-primary", "fingerprint": "d51f2a93863ba509", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee7401da9b816df4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/loop.ts:153"}, "properties": {"repobilityId": "2b8cf9392fd2c6df", "scanner": "scanner-primary", "fingerprint": "ee7401da9b816df4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ede12d75fbdd4680", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/executor.ts:113"}, "properties": {"repobilityId": "b7c5300bd09c7b4d", "scanner": "scanner-primary", "fingerprint": "ede12d75fbdd4680", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e76084b71d84700", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 agent-memory/src/autonomous/pursuit_progress_writer.ts:170"}, "properties": {"repobilityId": "5011ba8ad6f9f23f", "scanner": "scanner-primary", "fingerprint": "9e76084b71d84700", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-e07e5801ac709917", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-bookworm"}, "properties": {"repobilityId": "358b0e04bb1a830a", "scanner": "scanner-primary", "fingerprint": "e07e5801ac709917", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-2bc9f8a1836ee618", "level": "error", "message": {"text": "Possible secret in demo/src/demo-plugin-sandbox.ts"}, "properties": {"repobilityId": "55fc62fbde6b1360", "scanner": "scanner-primary", "fingerprint": "2bc9f8a1836ee618", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/src/demo-plugin-sandbox.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-6ff39769b2891105", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/git/git.ts:8"}, "properties": {"repobilityId": "3b53b7de88fdd0e1", "scanner": "scanner-primary", "fingerprint": "6ff39769b2891105", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/src/git/git.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-2feaf3cc813e1ad7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/gp.ts:24"}, "properties": {"repobilityId": "060bd721d95ea897", "scanner": "scanner-primary", "fingerprint": "2feaf3cc813e1ad7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/src/runtime/gp.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-b4b77178f8740014", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/shell.ts:13"}, "properties": {"repobilityId": "7ddccadc9393c3d4", "scanner": "scanner-primary", "fingerprint": "b4b77178f8740014", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/src/runtime/shell.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-5270d2fdce4c7783", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/z3.ts:17"}, "properties": {"repobilityId": "ef64d27ca7bef5c8", "scanner": "scanner-primary", "fingerprint": "5270d2fdce4c7783", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/src/runtime/z3.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-ab6e5482682049d7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent-tools/src/runtime/process.ts:16"}, "properties": {"repobilityId": "c6f849a34c3135e5", "scanner": "scanner-primary", "fingerprint": "ab6e5482682049d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/src/runtime/process.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-c933d32f230a513c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in agent-mcp/src/transport/stdio.ts:7"}, "properties": {"repobilityId": "721a804988a7a092", "scanner": "scanner-primary", "fingerprint": "c933d32f230a513c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-mcp/src/transport/stdio.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-dec16916c543cb78", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in launcher/scripts/assemble.mjs:11"}, "properties": {"repobilityId": "afc1bcfe668cdb63", "scanner": "scanner-primary", "fingerprint": "dec16916c543cb78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "launcher/scripts/assemble.mjs"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-3eb9af70119aed15", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in launcher/src/capabilities.ts:9"}, "properties": {"repobilityId": "9b430a369314ab18", "scanner": "scanner-primary", "fingerprint": "3eb9af70119aed15", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "launcher/src/capabilities.ts"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-9136a8f4123645bd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in launcher/src/wechat-login.ts:13"}, "properties": {"repobilityId": "14be815153f22f11", "scanner": "scanner-primary", "fingerprint": "9136a8f4123645bd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "launcher/src/wechat-login.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-97f6b2f85d56f0b6", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in launcher/src/index.ts:44"}, "properties": {"repobilityId": "994054f1173062c7", "scanner": "scanner-primary", "fingerprint": "97f6b2f85d56f0b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "launcher/src/index.ts"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-2ed5d9f25c675ecf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in launcher/src/open-browser.ts:8"}, "properties": {"repobilityId": "2f61f5c1309bac8e", "scanner": "scanner-primary", "fingerprint": "2ed5d9f25c675ecf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "launcher/src/open-browser.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-00b56f8a0a34e29e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in launcher/src/supervisor.ts:14"}, "properties": {"repobilityId": "ef52099791340d2e", "scanner": "scanner-primary", "fingerprint": "00b56f8a0a34e29e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "launcher/src/supervisor.ts"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-3d354e888e4e7c64", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in server/src/plan_gate.ts:107"}, "properties": {"repobilityId": "db6bc24ee4596f65", "scanner": "scanner-primary", "fingerprint": "3d354e888e4e7c64", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/src/plan_gate.ts"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-7e046d89995de6d2", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in server/src/index.ts:89"}, "properties": {"repobilityId": "1083a4ecea2f2d0a", "scanner": "scanner-primary", "fingerprint": "7e046d89995de6d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/src/index.ts"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e768aa78741098d0", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-9343b7816ed03bca", "level": "note", "message": {"text": "Very large file: server/src/chat-handler.ts (7194 lines)"}, "properties": {"repobilityId": "a6ae4fadd30edf8d", "scanner": "scanner-primary", "fingerprint": "9343b7816ed03bca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8775efd6c595a9b", "level": "note", "message": {"text": "Very large file: server/src/deep_explore.ts (2567 lines)"}, "properties": {"repobilityId": "1848d4905993f421", "scanner": "scanner-primary", "fingerprint": "e8775efd6c595a9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-71c515f9c5a4e6c2", "level": "note", "message": {"text": "Very large file: agent-memory/tests/plan_tools.test.ts (1563 lines)"}, "properties": {"repobilityId": "9df4ad7ac65f292b", "scanner": "scanner-primary", "fingerprint": "71c515f9c5a4e6c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-52c9e3565365a600", "level": "note", "message": {"text": "Very large file: agent-memory/src/plan_tools.ts (1750 lines)"}, "properties": {"repobilityId": "25fb508ca6b7e282", "scanner": "scanner-primary", "fingerprint": "52c9e3565365a600", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-721073d6c682788d", "level": "note", "message": {"text": "Very large file: agent-memory/src/schema.ts (1351 lines)"}, "properties": {"repobilityId": "a768e722496ba4ef", "scanner": "scanner-primary", "fingerprint": "721073d6c682788d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-85c2c0968f4af137", "level": "note", "message": {"text": "Very large file: agent-memory/src/reflection.ts (1179 lines)"}, "properties": {"repobilityId": "96ca112da4d12af0", "scanner": "scanner-primary", "fingerprint": "85c2c0968f4af137", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "777ffa6cc36bda5e", "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": "4ade493461098d5b", "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": "be48679884712e28", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "9b6a0c645302e01e", "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": "39636a6cddabb6d0", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-c0647af3a18e7223", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/skill-creator/SKILL.md"}, "properties": {"repobilityId": "1d3a505c96ee293c", "scanner": "scanner-primary", "fingerprint": "c0647af3a18e7223", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/bundled-skills/skill-creator/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee57ffb55a38dc7e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/github-skills/SKILL.md"}, "properties": {"repobilityId": "d046935644d654bb", "scanner": "scanner-primary", "fingerprint": "ee57ffb55a38dc7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/bundled-skills/github-skills/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c73078e604a5eeab", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/clawhub/SKILL.md"}, "properties": {"repobilityId": "2372dce8e6f677ba", "scanner": "scanner-primary", "fingerprint": "c73078e604a5eeab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/bundled-skills/clawhub/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-90d50258fc4c3131", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: agent-tools/bundled-skills/service-onboarding/SKILL.md"}, "properties": {"repobilityId": "dea3fc2e0607a735", "scanner": "scanner-primary", "fingerprint": "90d50258fc4c3131", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/bundled-skills/service-onboarding/SKILL.md"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-3ac9f680dc1d5ec5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/code-search-strategy/SKILL.md"}, "properties": {"repobilityId": "3e5f689569a82b36", "scanner": "scanner-primary", "fingerprint": "3ac9f680dc1d5ec5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/bundled-skills/code-search-strategy/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2159a7fb7af78259", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: agent-tools/bundled-skills/git-workflow/SKILL.md"}, "properties": {"repobilityId": "43e2d29896787c3f", "scanner": "scanner-primary", "fingerprint": "2159a7fb7af78259", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent-tools/bundled-skills/git-workflow/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e0732f25f8203914", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/autonomous.ts:137"}, "properties": {"repobilityId": "4109b4a41aa28127", "scanner": "scanner-primary", "fingerprint": "e0732f25f8203914", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-49d46495edd64e68", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/memory.ts:134"}, "properties": {"repobilityId": "e994f7e7407947d7", "scanner": "scanner-primary", "fingerprint": "49d46495edd64e68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bdd85beb143d105f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web-ui/src/settings.ts:476"}, "properties": {"repobilityId": "5c56efe1060f2d52", "scanner": "scanner-primary", "fingerprint": "bdd85beb143d105f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3fae31600b20ef45", "level": "none", "message": {"text": "Commented-code block (11 lines) in agent-tools/src/network/securedHttp.ts:103"}, "properties": {"repobilityId": "39c4186f6eafb8d1", "scanner": "scanner-primary", "fingerprint": "3fae31600b20ef45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ec9a9cdeb1c484b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 agent-tools/src/network/webFetch.ts:150"}, "properties": {"repobilityId": "3abb1413911e677c", "scanner": "scanner-primary", "fingerprint": "9ec9a9cdeb1c484b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d6d7b44f9686b8b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-tools/src/runtime/shell.ts:200"}, "properties": {"repobilityId": "6ccb873759b94748", "scanner": "scanner-primary", "fingerprint": "d6d7b44f9686b8b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e57bad667c93c7ed", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent-tools/src/runtime/magnitude.ts:169"}, "properties": {"repobilityId": "d71be3dc718d2b4f", "scanner": "scanner-primary", "fingerprint": "e57bad667c93c7ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-884e0ae26e2b554f", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent-mcp/src/wrapper.ts:70"}, "properties": {"repobilityId": "a6bb025885b94f91", "scanner": "scanner-primary", "fingerprint": "884e0ae26e2b554f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1ecb5402c147a88", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-mcp/src/transport/stdio.ts:73"}, "properties": {"repobilityId": "20f7c6f240477956", "scanner": "scanner-primary", "fingerprint": "a1ecb5402c147a88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2ba847da5e14601", "level": "none", "message": {"text": "Commented-code block (6 lines) in launcher/src/capabilities.ts:30"}, "properties": {"repobilityId": "4f194cd9b80bd022", "scanner": "scanner-primary", "fingerprint": "a2ba847da5e14601", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c4410e4d6ee9479", "level": "none", "message": {"text": "Commented-code block (5 lines) in launcher/src/paths.ts:49"}, "properties": {"repobilityId": "7a19c745acf18359", "scanner": "scanner-primary", "fingerprint": "4c4410e4d6ee9479", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bf7b4375cffb9c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in launcher/src/index.ts:196"}, "properties": {"repobilityId": "e498472a74d6e63b", "scanner": "scanner-primary", "fingerprint": "4bf7b4375cffb9c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1357aeda6a6e017b", "level": "none", "message": {"text": "Commented-code block (5 lines) in launcher/src/supervisor.ts:112"}, "properties": {"repobilityId": "89072bee8b417fbb", "scanner": "scanner-primary", "fingerprint": "1357aeda6a6e017b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6f79d57459669d6", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/tests/in_turn_reflection.test.ts:172"}, "properties": {"repobilityId": "2b8ac8ff04873dee", "scanner": "scanner-primary", "fingerprint": "e6f79d57459669d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46468a1e6108e196", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/tests/wechat_crypto.test.ts:94"}, "properties": {"repobilityId": "2621be7bf6a5d7a9", "scanner": "scanner-primary", "fingerprint": "46468a1e6108e196", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c541b7c25e9e5a27", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/scripts/mycox-cleanup.cjs:153"}, "properties": {"repobilityId": "314ce468cf2be107", "scanner": "scanner-primary", "fingerprint": "c541b7c25e9e5a27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-807d848d35a1bc76", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/message-budget.ts:309"}, "properties": {"repobilityId": "c898390ea7b491c3", "scanner": "scanner-primary", "fingerprint": "807d848d35a1bc76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2286e3c289bba90", "level": "note", "message": {"text": "Legacy-named symbol `chatcompletion_v2` in server/src/llm-adapter.ts:480"}, "properties": {"repobilityId": "69bf0eec1c827198", "scanner": "scanner-primary", "fingerprint": "a2286e3c289bba90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-27279529262bc545", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/src/llm-adapter.ts:66"}, "properties": {"repobilityId": "ce702201a2122624", "scanner": "scanner-primary", "fingerprint": "27279529262bc545", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-179c76aeefd1af01", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/llm-adapter.ts:687"}, "properties": {"repobilityId": "823f040413930ce7", "scanner": "scanner-primary", "fingerprint": "179c76aeefd1af01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6187ef418b0c6f70", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/autonomous_progress_inject.ts:170"}, "properties": {"repobilityId": "36c7e7d853ba638a", "scanner": "scanner-primary", "fingerprint": "6187ef418b0c6f70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96d8684258fc8fa0", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/src/output_section_filter.ts:67"}, "properties": {"repobilityId": "ea1b9d106e259bfd", "scanner": "scanner-primary", "fingerprint": "96d8684258fc8fa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7ced0a2414a1a32", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/src/plan_gate.ts:36"}, "properties": {"repobilityId": "9975f6b19c47c0fc", "scanner": "scanner-primary", "fingerprint": "b7ced0a2414a1a32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c79106bc5ff13ccc", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/index.ts:30"}, "properties": {"repobilityId": "93bc9ae53a315865", "scanner": "scanner-primary", "fingerprint": "c79106bc5ff13ccc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4adda052a85a6941", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/reflection_runner.ts:263"}, "properties": {"repobilityId": "cff7149684ebc15b", "scanner": "scanner-primary", "fingerprint": "4adda052a85a6941", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e00c7fe08eda090f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/failure_recovery_inject.ts:82"}, "properties": {"repobilityId": "e384588a023cef5b", "scanner": "scanner-primary", "fingerprint": "e00c7fe08eda090f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ecf282be9801e64", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/proxy-bootstrap.ts:7"}, "properties": {"repobilityId": "152ae6eeb9d95415", "scanner": "scanner-primary", "fingerprint": "4ecf282be9801e64", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0795831e0500728e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/in_turn_reflection.ts:89"}, "properties": {"repobilityId": "4765f05c4da72508", "scanner": "scanner-primary", "fingerprint": "0795831e0500728e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41ae4beddeb3599c", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/chat-handler.ts:228"}, "properties": {"repobilityId": "b0100ea102ffe983", "scanner": "scanner-primary", "fingerprint": "41ae4beddeb3599c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df7ed277b5b42bbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/headless.ts:153"}, "properties": {"repobilityId": "9ba5726ee1bfd75c", "scanner": "scanner-primary", "fingerprint": "df7ed277b5b42bbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cee53061e0724ef8", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/deep_explore.ts:1167"}, "properties": {"repobilityId": "be2a96e8c07fd44b", "scanner": "scanner-primary", "fingerprint": "cee53061e0724ef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01f71d24deff0ea2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/deep_explore.ts:2162"}, "properties": {"repobilityId": "927b0281e7635e03", "scanner": "scanner-primary", "fingerprint": "01f71d24deff0ea2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-89343f2d44ffec24", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/channels/wechat/index.ts:115"}, "properties": {"repobilityId": "3b0f60df6b92f6e0", "scanner": "scanner-primary", "fingerprint": "89343f2d44ffec24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c3444a444e5fa16", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/channels/wechat/client.ts:92"}, "properties": {"repobilityId": "5d7674db43ff4d44", "scanner": "scanner-primary", "fingerprint": "1c3444a444e5fa16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f4aed6fc52af99b2", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent-policy/src/policy.ts:96"}, "properties": {"repobilityId": "8cc0e0ec8773898d", "scanner": "scanner-primary", "fingerprint": "f4aed6fc52af99b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1510e44366405ab4", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-policy/src/secrets/injector.ts:233"}, "properties": {"repobilityId": "13f29f427dd71995", "scanner": "scanner-primary", "fingerprint": "1510e44366405ab4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-451595dee85b6946", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 agent-policy/src/secrets/injector.ts:270"}, "properties": {"repobilityId": "d9e68dcab076af33", "scanner": "scanner-primary", "fingerprint": "451595dee85b6946", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40814364fa116116", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent-policy/src/validators/pathAcl.ts:71"}, "properties": {"repobilityId": "9d23ecc76cd8757f", "scanner": "scanner-primary", "fingerprint": "40814364fa116116", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4485c0aebf3d3ced", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent-memory/tests/fetched_resources.test.ts:224"}, "properties": {"repobilityId": "c23932fd108b555c", "scanner": "scanner-primary", "fingerprint": "4485c0aebf3d3ced", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0055b24ef51362fa", "level": "note", "message": {"text": "Legacy-named symbol `validatedOld` in agent-memory/tests/routing_decay.test.ts:214"}, "properties": {"repobilityId": "440156fc71e07416", "scanner": "scanner-primary", "fingerprint": "0055b24ef51362fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-08145adc71ca94cb", "level": "note", "message": {"text": "Legacy-named symbol `recentLegacy` in agent-memory/tests/autonomous_initiatives.test.ts:122"}, "properties": {"repobilityId": "13e8aed9fe15d74f", "scanner": "scanner-primary", "fingerprint": "08145adc71ca94cb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5e5e4b91ad8e86e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent-memory/src/plan_tools.ts:751"}, "properties": {"repobilityId": "98c1e07fe1961098", "scanner": "scanner-primary", "fingerprint": "5e5e4b91ad8e86e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90e9c85a4e46add0", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-memory/src/schema.ts:606"}, "properties": {"repobilityId": "a129a41b45d16e59", "scanner": "scanner-primary", "fingerprint": "90e9c85a4e46add0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b853b70f8c1b1b9d", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-memory/src/timeline.ts:71"}, "properties": {"repobilityId": "6a15ed6e22cb0db8", "scanner": "scanner-primary", "fingerprint": "b853b70f8c1b1b9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a406a2062401460d", "level": "none", "message": {"text": "Commented-code block (9 lines) in agent-memory/src/honesty_gate.ts:166"}, "properties": {"repobilityId": "c9c925aba8a6e0ab", "scanner": "scanner-primary", "fingerprint": "a406a2062401460d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f86ec131eefbe3f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-memory/src/plan_files.ts:471"}, "properties": {"repobilityId": "754072e41b44a8d1", "scanner": "scanner-primary", "fingerprint": "f86ec131eefbe3f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91096385306ba8dc", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent-memory/src/types.ts:415"}, "properties": {"repobilityId": "f203ec8f79cf7b61", "scanner": "scanner-primary", "fingerprint": "91096385306ba8dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba2a3a8fdc3712c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-memory/src/reflection.ts:281"}, "properties": {"repobilityId": "986f38dabfe13ac8", "scanner": "scanner-primary", "fingerprint": "ba2a3a8fdc3712c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d0050133afd760f", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent-memory/src/failure_signatures.ts:136"}, "properties": {"repobilityId": "b86dc6ab729e66aa", "scanner": "scanner-primary", "fingerprint": "6d0050133afd760f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a040dded8673f7de", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-memory/src/signals/commitment_pressure.ts:89"}, "properties": {"repobilityId": "01241a2b605a9872", "scanner": "scanner-primary", "fingerprint": "a040dded8673f7de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b447cfaa1c197fb1", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent-memory/src/autonomous/executor.ts:190"}, "properties": {"repobilityId": "c32216c62412ba02", "scanner": "scanner-primary", "fingerprint": "b447cfaa1c197fb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1eb233e797992874", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent-memory/src/autonomous/pursuit_progress_writer.ts:115"}, "properties": {"repobilityId": "c793f190075a6675", "scanner": "scanner-primary", "fingerprint": "1eb233e797992874", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-817ad132a29f60c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent-memory/src/autonomous/k7_bridge.ts:171"}, "properties": {"repobilityId": "c24b7856c48af67f", "scanner": "scanner-primary", "fingerprint": "817ad132a29f60c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c32765aaada2f8c", "level": "none", "message": {"text": "Commented-code block (11 lines) in agent-memory/src/autonomous/budget.ts:33"}, "properties": {"repobilityId": "bccf83122c228055", "scanner": "scanner-primary", "fingerprint": "8c32765aaada2f8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bb214690e90c32b", "level": "none", "message": {"text": "Commented-code block (8 lines) in agent-memory/src/autonomous/drivers/curiosity_driver.ts:28"}, "properties": {"repobilityId": "280700a0c18677ec", "scanner": "scanner-primary", "fingerprint": "3bb214690e90c32b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e676fda0bb3dfde2", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent-memory/src/autonomous/drivers/pursuit_driver.ts:70"}, "properties": {"repobilityId": "79a97272c67e594e", "scanner": "scanner-primary", "fingerprint": "e676fda0bb3dfde2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bcb111e6bd50447", "level": "note", "message": {"text": "128 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "c3bdbdb982be4e42", "scanner": "scanner-primary", "fingerprint": "9bcb111e6bd50447", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}