{"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-7864147da135eee6", "name": "TODO/FIXME marker in shipping code \u2014 tests/unit/evolve.test.ts:504", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 tests/unit/evolve.test.ts:504"}, "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-0ae9a22a264c945f", "name": "Stray `console.log` in TS/JS \u2014 tests/unit/wireup.test.ts:235", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/wireup.test.ts:235"}, "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-411128359a9bff96", "name": "Stray `console.log` in TS/JS \u2014 tests/unit/research/session.test.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/research/session.test.ts:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca524fb21dd1db15", "name": "Stray `console.log` in TS/JS \u2014 tests/unit/research/html-to-md.interop.test.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/research/html-to-md.interop.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-264402f0e1a8483c", "name": "Stray `console.log` in TS/JS \u2014 tests/unit/research/pdf.interop.test.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/research/pdf.interop.test.ts:11"}, "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-3a2ee53e11e960c9", "name": "TODO/FIXME marker in shipping code \u2014 tests/integration/evolve-e2e.test.ts:66", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 tests/integration/evolve-e2e.test.ts:66"}, "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-b15c0ae16a3da3be", "name": "TODO/FIXME marker in shipping code \u2014 lib/commands/index.ts:169", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/commands/index.ts:169"}, "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-934c2030633bc90d", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-83999102a2576abf", "name": "Privileged port 1 in use", "shortDescription": {"text": "Privileged port 1 in use"}, "fullDescription": {"text": "Port 1 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bdb663dbb9be1349", "name": "Insecure pattern 'node_child_process' in scripts/install-hooks.mjs:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/install-hooks.mjs: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-ee03e4942acd9ae0", "name": "Insecure pattern 'node_child_process' in scripts/run-internal-bench.mjs:36", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/run-internal-bench.mjs:36"}, "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-9106d0aaad402a45", "name": "Insecure pattern 'node_child_process' in lib/cleanup.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/cleanup.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0a3d49e71651edd", "name": "Insecure pattern 'node_child_process' in lib/worktree.ts:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/worktree.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b62fff187f0467b1", "name": "Insecure pattern 'node_child_process' in lib/research-bundle.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/research-bundle.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-c54443090a34f95a", "name": "Insecure pattern 'node_child_process' in lib/scheduler.ts:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/scheduler.ts:25"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5fcc97820db1afc9", "name": "Insecure pattern 'node_child_process' in lib/autopilot.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/autopilot.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-d3a68134a4bf120e", "name": "Insecure pattern 'node_child_process' in lib/autoresearch.ts:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/autoresearch.ts:25"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0d3b48e056541d4", "name": "Insecure pattern 'node_child_process' in lib/backend.ts:54", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/backend.ts:54"}, "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-1427b9883e49e36a", "name": "Insecure pattern 'node_child_process' in lib/discussion.ts:46", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/discussion.ts:46"}, "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-31f81a806759b56c", "name": "Insecure pattern 'node_child_process' in lib/utils.ts:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/utils.ts:29"}, "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-4991e07d7ede09fa", "name": "Insecure pattern 'node_child_process' in lib/overstory.ts:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/overstory.ts:25"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5af904d2bf6e1bc0", "name": "Insecure pattern 'node_child_process' in lib/autopilot-pipeline.ts:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/autopilot-pipeline.ts:29"}, "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-abb15c91ed4981f1", "name": "Insecure pattern 'node_child_process' in lib/commands/select-candidate.ts:42", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/commands/select-candidate.ts:42"}, "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-fbd99d409c8d3439", "name": "Insecure pattern 'node_child_process' in lib/commands/harness.ts:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/commands/harness.ts:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-545e7b0465fc1b19", "name": "Insecure pattern 'node_child_process' in lib/commands/search.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/commands/search.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-e15fd9a3a6381ca8", "name": "Insecure pattern 'node_child_process' in lib/commands/blame.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/commands/blame.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-dcf0145472acaaba", "name": "Insecure pattern 'node_child_process' in lib/commands/health.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/commands/health.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-7bfcd4736879a738", "name": "Insecure pattern 'node_child_process' in lib/commands/singularity.ts:37", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/commands/singularity.ts:37"}, "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-aa921a4448ad49f7", "name": "Insecure pattern 'node_child_process' in lib/research/runner.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/research/runner.ts:5"}, "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-2b903b6429ff9106", "name": "Insecure pattern 'exec_used' in lib/research/docker-runner.ts:96", "shortDescription": {"text": "Insecure pattern 'exec_used' in lib/research/docker-runner.ts:96"}, "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-16674f477c5f35ec", "name": "Insecure pattern 'node_child_process' in lib/research/docker-runner.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/research/docker-runner.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c611375410e9815e", "name": "Insecure pattern 'node_child_process' in lib/research/tesserae.ts:40", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/research/tesserae.ts:40"}, "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-8c231cc154cb862f", "name": "Insecure pattern 'node_child_process' in lib/cli/tools.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/cli/tools.ts:3"}, "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-bbb4d9fe4e9f8122", "name": "Insecure pattern 'node_child_process' in lib/cli/agent.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/cli/agent.ts:3"}, "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-4eb3afdd4d1573ef", "name": "Insecure pattern 'node_child_process' in lib/cli/scan-dispatch.ts:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/cli/scan-dispatch.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da2361cd13ced603", "name": "Insecure pattern 'node_child_process' in lib/wireup/detection.ts:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/wireup/detection.ts:29"}, "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-30366047656484e2", "name": "Insecure pattern 'node_child_process' in lib/wireup/execution.ts:59", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/wireup/execution.ts:59"}, "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-dde897a576045b74", "name": "Insecure pattern 'node_child_process' in lib/wireup/orchestrator.ts:82", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/wireup/orchestrator.ts:82"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d44d1c2d812c966", "name": "Very large file: tests/unit/phase.test.ts (1839 lines)", "shortDescription": {"text": "Very large file: tests/unit/phase.test.ts (1839 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-90d37d920c4b9edf", "name": "Very large file: tests/unit/evolve.test.ts (3517 lines)", "shortDescription": {"text": "Very large file: tests/unit/evolve.test.ts (3517 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-5bb4648ac7ca4502", "name": "Very large file: tests/unit/context.test.ts (3417 lines)", "shortDescription": {"text": "Very large file: tests/unit/context.test.ts (3417 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-8babfa6cbd0eaee1", "name": "Very large file: tests/unit/autopilot.test.ts (5794 lines)", "shortDescription": {"text": "Very large file: tests/unit/autopilot.test.ts (5794 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-4d5770ea45608495", "name": "Very large file: tests/unit/discussion.test.ts (2285 lines)", "shortDescription": {"text": "Very large file: tests/unit/discussion.test.ts (2285 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-115737d0b72d11b1", "name": "Very large file: tests/unit/backend.test.ts (1877 lines)", "shortDescription": {"text": "Very large file: tests/unit/backend.test.ts (1877 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-0b3a935066768b1a", "name": "Very large file: tests/unit/worktree.test.ts (2284 lines)", "shortDescription": {"text": "Very large file: tests/unit/worktree.test.ts (2284 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-212dd3a71e7bed04", "name": "Very large file: tests/unit/utils.test.ts (1469 lines)", "shortDescription": {"text": "Very large file: tests/unit/utils.test.ts (1469 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-1d13a008d99b1bdf", "name": "Very large file: tests/unit/tracker.test.ts (1503 lines)", "shortDescription": {"text": "Very large file: tests/unit/tracker.test.ts (1503 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-f8092378486cc8e5", "name": "Very large file: tests/unit/commands.test.ts (4198 lines)", "shortDescription": {"text": "Very large file: tests/unit/commands.test.ts (4198 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-5746fd6c345af35f", "name": "Very large file: tests/unit/mcp-server.test.ts (2208 lines)", "shortDescription": {"text": "Very large file: tests/unit/mcp-server.test.ts (2208 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-0908fde1c04dbf7e", "name": "Very large file: tests/unit/cleanup.test.ts (1750 lines)", "shortDescription": {"text": "Very large file: tests/unit/cleanup.test.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-f134e2021bc96b70", "name": "Very large file: tests/unit/wireup.test.ts (2950 lines)", "shortDescription": {"text": "Very large file: tests/unit/wireup.test.ts (2950 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-64528ca3d2acd259", "name": "Very large file: tests/integration/cli.test.ts (2724 lines)", "shortDescription": {"text": "Very large file: tests/integration/cli.test.ts (2724 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-0b7330f04bb077f9", "name": "Very large file: lib/phase.ts (1981 lines)", "shortDescription": {"text": "Very large file: lib/phase.ts (1981 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-b22d8479bd354d54", "name": "Very large file: lib/cleanup.ts (1588 lines)", "shortDescription": {"text": "Very large file: lib/cleanup.ts (1588 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-6eb0c487bf9dd2f3", "name": "Very large file: lib/scheduler.ts (1500 lines)", "shortDescription": {"text": "Very large file: lib/scheduler.ts (1500 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-0ff4079ca514e4b9", "name": "Very large file: lib/autopilot.ts (1878 lines)", "shortDescription": {"text": "Very large file: lib/autopilot.ts (1878 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-d66a9c8d53fc2759", "name": "Very large file: lib/tracker.ts (1591 lines)", "shortDescription": {"text": "Very large file: lib/tracker.ts (1591 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-ae0e0d61493d80b5", "name": "Very large file: lib/verify.ts (1434 lines)", "shortDescription": {"text": "Very large file: lib/verify.ts (1434 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-15589736dc73ae1e", "name": "Very large file: lib/mcp-server.ts (3292 lines)", "shortDescription": {"text": "Very large file: lib/mcp-server.ts (3292 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-20682b3851ba5338", "name": "Very large file: lib/types.ts (1669 lines)", "shortDescription": {"text": "Very large file: lib/types.ts (1669 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-331fc818f074c6ad", "name": "Very large file: lib/utils.ts (1492 lines)", "shortDescription": {"text": "Very large file: lib/utils.ts (1492 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-bdc04199c8f97f38", "name": "Very large file: lib/commands/analysis.ts (1851 lines)", "shortDescription": {"text": "Very large file: lib/commands/analysis.ts (1851 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-f024ba5617ac3be2", "name": "60 TODO/FIXME markers", "shortDescription": {"text": "60 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-876fff1130fe948c", "name": "Agent authority lacks a verifier contract: examples/taskmark/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: examples/taskmark/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-231a1c77ebc3e28c", "name": "Agent authority lacks a verifier contract: examples/taskmark/.claude/session-start.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: examples/taskmark/.claude/session-start.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-218c9faa4e5ebf8d", "name": "Agent authority lacks a verifier contract: examples/taskmark/.claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: examples/taskmark/.claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a7780b84952b906", "name": "Agent authority lacks a verifier contract: examples/taskmark/.claude/tutorial-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: examples/taskmark/.claude/tutorial-prompt.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-f76cfcc161b0712a", "name": "Commented-code block (6 lines) in jest.config.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in jest.config.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-422ae3a4c504377b", "name": "Commented-code block (5 lines) in tests/unit/knowledge.test.ts:588", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/knowledge.test.ts:588"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fbcfa3738b3ca12", "name": "Commented-code block (6 lines) in tests/unit/evolve.test.ts:3234", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/evolve.test.ts:3234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b580bae664ad79bb", "name": "Commented-code block (6 lines) in tests/unit/plan-tournament.test.ts:376", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/plan-tournament.test.ts:376"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67cfa3badc733cf6", "name": "Commented-code block (7 lines) in tests/unit/context.test.ts:553", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/context.test.ts:553"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f19292eb152dc20", "name": "Commented-code block (5 lines) in tests/unit/drift.test.ts:716", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/drift.test.ts:716"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b064db763810c49", "name": "Commented-code block (5 lines) in tests/unit/autopilot.test.ts:3975", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/autopilot.test.ts:3975"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aaa72d989db1cc40", "name": "Commented-code block (5 lines) in tests/unit/worktree.test.ts:1633", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/worktree.test.ts:1633"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-523b7d1b3176a3d0", "name": "Commented-code block (6 lines) in tests/unit/phase-complete.test.ts:194", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/phase-complete.test.ts:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab5e46e61699636d", "name": "Commented-code block (5 lines) in tests/unit/cleanup-noninterference.test.ts:285", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/cleanup-noninterference.test.ts:285"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-986a049a687f146a", "name": "Commented-code block (5 lines) in tests/unit/mcp-server.test.ts:1808", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/mcp-server.test.ts:1808"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-004507c1954aa0ee", "name": "Commented-code block (5 lines) in tests/unit/autoplan.test.ts:459", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/autoplan.test.ts:459"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f03286637aeffdad", "name": "Commented-code block (5 lines) in tests/unit/research/html-to-md.interop.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/research/html-to-md.interop.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78bedf29ab817365", "name": "Commented-code block (5 lines) in tests/unit/research/parity-vectors.test.ts:2", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/research/parity-vectors.test.ts:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b9958e6ed846d61", "name": "Commented-code block (6 lines) in tests/integration/cli.test.ts:2002", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/cli.test.ts:2002"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-208a7b6562feb778", "name": "Commented-code block (5 lines) in lib/plan-tournament.ts:140", "shortDescription": {"text": "Commented-code block (5 lines) in lib/plan-tournament.ts:140"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a58779a20bc0e222", "name": "Commented-code block (6 lines) in lib/research-bundle.ts:176", "shortDescription": {"text": "Commented-code block (6 lines) in lib/research-bundle.ts:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c50a4c26cd737cc", "name": "Commented-code block (9 lines) in lib/scheduler.ts:1163", "shortDescription": {"text": "Commented-code block (9 lines) in lib/scheduler.ts:1163"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c1e928f09b79fd8", "name": "Commented-code block (6 lines) in lib/autopilot.ts:633", "shortDescription": {"text": "Commented-code block (6 lines) in lib/autopilot.ts:633"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-147b0e9192b558d2", "name": "Commented-code block (30 lines) in lib/verify.ts:280", "shortDescription": {"text": "Commented-code block (30 lines) in lib/verify.ts:280"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee170e1c8d7628be", "name": "Commented-code block (5 lines) in lib/invariants.ts:195", "shortDescription": {"text": "Commented-code block (5 lines) in lib/invariants.ts:195"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b377faeb66e1927", "name": "Commented-code block (5 lines) in lib/autopilot-pipeline.ts:446", "shortDescription": {"text": "Commented-code block (5 lines) in lib/autopilot-pipeline.ts:446"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de0c42debf1f8840", "name": "Commented-code block (6 lines) in lib/phase-complete.ts:201", "shortDescription": {"text": "Commented-code block (6 lines) in lib/phase-complete.ts:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f49bb8e87e4408fc", "name": "Commented-code block (5 lines) in lib/context/research.ts:395", "shortDescription": {"text": "Commented-code block (5 lines) in lib/context/research.ts:395"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f9174e1a8ad4332", "name": "Commented-code block (5 lines) in lib/context/execute.ts:740", "shortDescription": {"text": "Commented-code block (5 lines) in lib/context/execute.ts:740"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfb3f8ac4bb94206", "name": "Commented-code block (5 lines) in lib/commands/tail.ts:81", "shortDescription": {"text": "Commented-code block (5 lines) in lib/commands/tail.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5c321633dc1e944", "name": "Commented-code block (7 lines) in lib/commands/select-candidate.ts:526", "shortDescription": {"text": "Commented-code block (7 lines) in lib/commands/select-candidate.ts:526"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f661ffde75f7c7b", "name": "Commented-code block (5 lines) in lib/commands/rollback.ts:115", "shortDescription": {"text": "Commented-code block (5 lines) in lib/commands/rollback.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-63a4ea0c063e4515", "name": "Commented-code block (6 lines) in lib/commands/eval-diff.ts:130", "shortDescription": {"text": "Commented-code block (6 lines) in lib/commands/eval-diff.ts:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2624c689bc57f73", "name": "Commented-code block (6 lines) in lib/commands/analysis.ts:1516", "shortDescription": {"text": "Commented-code block (6 lines) in lib/commands/analysis.ts:1516"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cfd581cca50b1c8", "name": "Commented-code block (6 lines) in lib/commands/health.ts:355", "shortDescription": {"text": "Commented-code block (6 lines) in lib/commands/health.ts:355"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e411571b078f0bac", "name": "Commented-code block (5 lines) in lib/research/synthesize.ts:173", "shortDescription": {"text": "Commented-code block (5 lines) in lib/research/synthesize.ts:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69cfaf694d6317a8", "name": "Legacy-named symbol `stateAsLegacy` in lib/evolve/discovery.ts:480", "shortDescription": {"text": "Legacy-named symbol `stateAsLegacy` in lib/evolve/discovery.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-aa6507b879fc0c3f", "name": "Commented-code block (6 lines) in lib/evolve/state.ts:40", "shortDescription": {"text": "Commented-code block (6 lines) in lib/evolve/state.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d40a8b8abe6b76", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/wireup/execution.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/wireup/execution.ts:9"}, "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}}]}}, "automationDetails": {"id": "repobility/24786"}, "properties": {"repository": "ca1773130n/GetResearchDone", "repoUrl": "https://github.com/ca1773130n/GetResearchDone", "branch": "main"}, "results": [{"ruleId": "scanner-7864147da135eee6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 tests/unit/evolve.test.ts:504"}, "properties": {"repobilityId": "a9893f9d43e37b27", "scanner": "scanner-primary", "fingerprint": "7864147da135eee6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0ae9a22a264c945f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/wireup.test.ts:235"}, "properties": {"repobilityId": "e6623b464cf1ba06", "scanner": "scanner-primary", "fingerprint": "0ae9a22a264c945f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-411128359a9bff96", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/research/session.test.ts:10"}, "properties": {"repobilityId": "5cc47a8f88b9b768", "scanner": "scanner-primary", "fingerprint": "411128359a9bff96", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca524fb21dd1db15", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/research/html-to-md.interop.test.ts:20"}, "properties": {"repobilityId": "f3f7b5442af28774", "scanner": "scanner-primary", "fingerprint": "ca524fb21dd1db15", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-264402f0e1a8483c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/research/pdf.interop.test.ts:11"}, "properties": {"repobilityId": "4a363fc6d3a35e21", "scanner": "scanner-primary", "fingerprint": "264402f0e1a8483c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3a2ee53e11e960c9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 tests/integration/evolve-e2e.test.ts:66"}, "properties": {"repobilityId": "636af860d35d9bfd", "scanner": "scanner-primary", "fingerprint": "3a2ee53e11e960c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b15c0ae16a3da3be", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/commands/index.ts:169"}, "properties": {"repobilityId": "9136b2fb5faf2859", "scanner": "scanner-primary", "fingerprint": "b15c0ae16a3da3be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-934c2030633bc90d", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "934c2030633bc90d", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/golden/capture.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-83999102a2576abf", "level": "warning", "message": {"text": "Privileged port 1 in use"}, "properties": {"repobilityId": "ddf3fa6c29abb8d2", "scanner": "scanner-primary", "fingerprint": "83999102a2576abf", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/golden/capture.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bdb663dbb9be1349", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/install-hooks.mjs:17"}, "properties": {"repobilityId": "1b84307b611a838b", "scanner": "scanner-primary", "fingerprint": "bdb663dbb9be1349", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/install-hooks.mjs"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-ee03e4942acd9ae0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/run-internal-bench.mjs:36"}, "properties": {"repobilityId": "8441feaaa3432be5", "scanner": "scanner-primary", "fingerprint": "ee03e4942acd9ae0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run-internal-bench.mjs"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-9106d0aaad402a45", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/cleanup.ts:19"}, "properties": {"repobilityId": "d956391611ae13fe", "scanner": "scanner-primary", "fingerprint": "9106d0aaad402a45", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/cleanup.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-b0a3d49e71651edd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/worktree.ts:18"}, "properties": {"repobilityId": "bdf05813c8504b0a", "scanner": "scanner-primary", "fingerprint": "b0a3d49e71651edd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/worktree.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-b62fff187f0467b1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/research-bundle.ts:13"}, "properties": {"repobilityId": "c049ff3d37b96a8a", "scanner": "scanner-primary", "fingerprint": "b62fff187f0467b1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/research-bundle.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-c54443090a34f95a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/scheduler.ts:25"}, "properties": {"repobilityId": "8366ac148c72ad6f", "scanner": "scanner-primary", "fingerprint": "c54443090a34f95a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/scheduler.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-5fcc97820db1afc9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/autopilot.ts:24"}, "properties": {"repobilityId": "4a31f48e46d1453a", "scanner": "scanner-primary", "fingerprint": "5fcc97820db1afc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/autopilot.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-d3a68134a4bf120e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/autoresearch.ts:25"}, "properties": {"repobilityId": "f7c60a38c2630568", "scanner": "scanner-primary", "fingerprint": "d3a68134a4bf120e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/autoresearch.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-b0d3b48e056541d4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/backend.ts:54"}, "properties": {"repobilityId": "1685f4cc7cf9462b", "scanner": "scanner-primary", "fingerprint": "b0d3b48e056541d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/backend.ts"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-1427b9883e49e36a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/discussion.ts:46"}, "properties": {"repobilityId": "baf1448976c63fc2", "scanner": "scanner-primary", "fingerprint": "1427b9883e49e36a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/discussion.ts"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-31f81a806759b56c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/utils.ts:29"}, "properties": {"repobilityId": "fbde698cabd70557", "scanner": "scanner-primary", "fingerprint": "31f81a806759b56c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/utils.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-4991e07d7ede09fa", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/overstory.ts:25"}, "properties": {"repobilityId": "49031a1e6065ac26", "scanner": "scanner-primary", "fingerprint": "4991e07d7ede09fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/overstory.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-5af904d2bf6e1bc0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/autopilot-pipeline.ts:29"}, "properties": {"repobilityId": "972dd3f2065bcc0d", "scanner": "scanner-primary", "fingerprint": "5af904d2bf6e1bc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/autopilot-pipeline.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-abb15c91ed4981f1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/commands/select-candidate.ts:42"}, "properties": {"repobilityId": "ffa2137483dcb99d", "scanner": "scanner-primary", "fingerprint": "abb15c91ed4981f1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/commands/select-candidate.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-fbd99d409c8d3439", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/commands/harness.ts:10"}, "properties": {"repobilityId": "835ca551ac8ddf43", "scanner": "scanner-primary", "fingerprint": "fbd99d409c8d3439", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/commands/harness.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-545e7b0465fc1b19", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/commands/search.ts:8"}, "properties": {"repobilityId": "aa78f09422fe67b1", "scanner": "scanner-primary", "fingerprint": "545e7b0465fc1b19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/commands/search.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-e15fd9a3a6381ca8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/commands/blame.ts:7"}, "properties": {"repobilityId": "8643e95c560c0745", "scanner": "scanner-primary", "fingerprint": "e15fd9a3a6381ca8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/commands/blame.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-dcf0145472acaaba", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/commands/health.ts:8"}, "properties": {"repobilityId": "2b5b8d7f69f46e26", "scanner": "scanner-primary", "fingerprint": "dcf0145472acaaba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/commands/health.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-7bfcd4736879a738", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/commands/singularity.ts:37"}, "properties": {"repobilityId": "102f85d8aba5aadb", "scanner": "scanner-primary", "fingerprint": "7bfcd4736879a738", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/commands/singularity.ts"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-aa921a4448ad49f7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/research/runner.ts:5"}, "properties": {"repobilityId": "23e7947d081048f2", "scanner": "scanner-primary", "fingerprint": "aa921a4448ad49f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/research/runner.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-2b903b6429ff9106", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in lib/research/docker-runner.ts:96"}, "properties": {"repobilityId": "050cb4cca4e5c839", "scanner": "scanner-primary", "fingerprint": "2b903b6429ff9106", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/research/docker-runner.ts"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-16674f477c5f35ec", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/research/docker-runner.ts:4"}, "properties": {"repobilityId": "0446ec6138f51bff", "scanner": "scanner-primary", "fingerprint": "16674f477c5f35ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/research/docker-runner.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-c611375410e9815e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/research/tesserae.ts:40"}, "properties": {"repobilityId": "1f09cc92bc5c4d39", "scanner": "scanner-primary", "fingerprint": "c611375410e9815e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/research/tesserae.ts"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-8c231cc154cb862f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/cli/tools.ts:3"}, "properties": {"repobilityId": "936441aee8e73d9a", "scanner": "scanner-primary", "fingerprint": "8c231cc154cb862f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/cli/tools.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-bbb4d9fe4e9f8122", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/cli/agent.ts:3"}, "properties": {"repobilityId": "274d3ef3d80f681e", "scanner": "scanner-primary", "fingerprint": "bbb4d9fe4e9f8122", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/cli/agent.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-4eb3afdd4d1573ef", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/cli/scan-dispatch.ts:18"}, "properties": {"repobilityId": "49edfac84128bd1f", "scanner": "scanner-primary", "fingerprint": "4eb3afdd4d1573ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/cli/scan-dispatch.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-da2361cd13ced603", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/wireup/detection.ts:29"}, "properties": {"repobilityId": "6ff3e4c79575503a", "scanner": "scanner-primary", "fingerprint": "da2361cd13ced603", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/wireup/detection.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-30366047656484e2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/wireup/execution.ts:59"}, "properties": {"repobilityId": "0dc2285bc3ceb03e", "scanner": "scanner-primary", "fingerprint": "30366047656484e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/wireup/execution.ts"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-dde897a576045b74", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/wireup/orchestrator.ts:82"}, "properties": {"repobilityId": "cb44aafaf5aa0869", "scanner": "scanner-primary", "fingerprint": "dde897a576045b74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/wireup/orchestrator.ts"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eeb76410cc935c30", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "edeab51902066991", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d44d1c2d812c966", "level": "note", "message": {"text": "Very large file: tests/unit/phase.test.ts (1839 lines)"}, "properties": {"repobilityId": "7c70cce0084441c3", "scanner": "scanner-primary", "fingerprint": "6d44d1c2d812c966", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-90d37d920c4b9edf", "level": "note", "message": {"text": "Very large file: tests/unit/evolve.test.ts (3517 lines)"}, "properties": {"repobilityId": "010e7f803984c0ee", "scanner": "scanner-primary", "fingerprint": "90d37d920c4b9edf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5bb4648ac7ca4502", "level": "note", "message": {"text": "Very large file: tests/unit/context.test.ts (3417 lines)"}, "properties": {"repobilityId": "6648289f4a342e65", "scanner": "scanner-primary", "fingerprint": "5bb4648ac7ca4502", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8babfa6cbd0eaee1", "level": "note", "message": {"text": "Very large file: tests/unit/autopilot.test.ts (5794 lines)"}, "properties": {"repobilityId": "eb19ae499d442f25", "scanner": "scanner-primary", "fingerprint": "8babfa6cbd0eaee1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d5770ea45608495", "level": "note", "message": {"text": "Very large file: tests/unit/discussion.test.ts (2285 lines)"}, "properties": {"repobilityId": "72c4e0b896e13209", "scanner": "scanner-primary", "fingerprint": "4d5770ea45608495", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-115737d0b72d11b1", "level": "note", "message": {"text": "Very large file: tests/unit/backend.test.ts (1877 lines)"}, "properties": {"repobilityId": "ca7ac6432424b42f", "scanner": "scanner-primary", "fingerprint": "115737d0b72d11b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0b3a935066768b1a", "level": "note", "message": {"text": "Very large file: tests/unit/worktree.test.ts (2284 lines)"}, "properties": {"repobilityId": "7d2aeae39cece977", "scanner": "scanner-primary", "fingerprint": "0b3a935066768b1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-212dd3a71e7bed04", "level": "note", "message": {"text": "Very large file: tests/unit/utils.test.ts (1469 lines)"}, "properties": {"repobilityId": "a0ae4b7847a122fd", "scanner": "scanner-primary", "fingerprint": "212dd3a71e7bed04", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1d13a008d99b1bdf", "level": "note", "message": {"text": "Very large file: tests/unit/tracker.test.ts (1503 lines)"}, "properties": {"repobilityId": "cdeac70602cb3b32", "scanner": "scanner-primary", "fingerprint": "1d13a008d99b1bdf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f8092378486cc8e5", "level": "note", "message": {"text": "Very large file: tests/unit/commands.test.ts (4198 lines)"}, "properties": {"repobilityId": "145fa94d231302c9", "scanner": "scanner-primary", "fingerprint": "f8092378486cc8e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5746fd6c345af35f", "level": "note", "message": {"text": "Very large file: tests/unit/mcp-server.test.ts (2208 lines)"}, "properties": {"repobilityId": "c6aa678dd71e6809", "scanner": "scanner-primary", "fingerprint": "5746fd6c345af35f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0908fde1c04dbf7e", "level": "note", "message": {"text": "Very large file: tests/unit/cleanup.test.ts (1750 lines)"}, "properties": {"repobilityId": "13d8f7037d5f2317", "scanner": "scanner-primary", "fingerprint": "0908fde1c04dbf7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f134e2021bc96b70", "level": "note", "message": {"text": "Very large file: tests/unit/wireup.test.ts (2950 lines)"}, "properties": {"repobilityId": "96da7ab907d34a04", "scanner": "scanner-primary", "fingerprint": "f134e2021bc96b70", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-64528ca3d2acd259", "level": "note", "message": {"text": "Very large file: tests/integration/cli.test.ts (2724 lines)"}, "properties": {"repobilityId": "dee41c7067e81a9b", "scanner": "scanner-primary", "fingerprint": "64528ca3d2acd259", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0b7330f04bb077f9", "level": "note", "message": {"text": "Very large file: lib/phase.ts (1981 lines)"}, "properties": {"repobilityId": "a125927f6d7db2ef", "scanner": "scanner-primary", "fingerprint": "0b7330f04bb077f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b22d8479bd354d54", "level": "note", "message": {"text": "Very large file: lib/cleanup.ts (1588 lines)"}, "properties": {"repobilityId": "d80f672b82a36e58", "scanner": "scanner-primary", "fingerprint": "b22d8479bd354d54", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6eb0c487bf9dd2f3", "level": "note", "message": {"text": "Very large file: lib/scheduler.ts (1500 lines)"}, "properties": {"repobilityId": "dfa2eeca3584334c", "scanner": "scanner-primary", "fingerprint": "6eb0c487bf9dd2f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0ff4079ca514e4b9", "level": "note", "message": {"text": "Very large file: lib/autopilot.ts (1878 lines)"}, "properties": {"repobilityId": "b497a10f8f825e44", "scanner": "scanner-primary", "fingerprint": "0ff4079ca514e4b9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d66a9c8d53fc2759", "level": "note", "message": {"text": "Very large file: lib/tracker.ts (1591 lines)"}, "properties": {"repobilityId": "d1572aa007126598", "scanner": "scanner-primary", "fingerprint": "d66a9c8d53fc2759", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae0e0d61493d80b5", "level": "note", "message": {"text": "Very large file: lib/verify.ts (1434 lines)"}, "properties": {"repobilityId": "8665b2e1e0d69e6d", "scanner": "scanner-primary", "fingerprint": "ae0e0d61493d80b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15589736dc73ae1e", "level": "note", "message": {"text": "Very large file: lib/mcp-server.ts (3292 lines)"}, "properties": {"repobilityId": "7d538e52b84efd4a", "scanner": "scanner-primary", "fingerprint": "15589736dc73ae1e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-20682b3851ba5338", "level": "note", "message": {"text": "Very large file: lib/types.ts (1669 lines)"}, "properties": {"repobilityId": "e27a8fc519ec80a0", "scanner": "scanner-primary", "fingerprint": "20682b3851ba5338", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-331fc818f074c6ad", "level": "note", "message": {"text": "Very large file: lib/utils.ts (1492 lines)"}, "properties": {"repobilityId": "cc7f749432621a1a", "scanner": "scanner-primary", "fingerprint": "331fc818f074c6ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bdc04199c8f97f38", "level": "note", "message": {"text": "Very large file: lib/commands/analysis.ts (1851 lines)"}, "properties": {"repobilityId": "fc0009753e97a118", "scanner": "scanner-primary", "fingerprint": "bdc04199c8f97f38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f024ba5617ac3be2", "level": "note", "message": {"text": "60 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "f024ba5617ac3be2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "11f40afd0bd1400e", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "b186f886e9fadb02", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "94199022191cf1f6", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-876fff1130fe948c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: examples/taskmark/CLAUDE.md"}, "properties": {"repobilityId": "1c7cd91e6a4fc222", "scanner": "scanner-primary", "fingerprint": "876fff1130fe948c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/taskmark/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-231a1c77ebc3e28c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: examples/taskmark/.claude/session-start.md"}, "properties": {"repobilityId": "f03eadc1d10875d1", "scanner": "scanner-primary", "fingerprint": "231a1c77ebc3e28c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/taskmark/.claude/session-start.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-218c9faa4e5ebf8d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: examples/taskmark/.claude/settings.json"}, "properties": {"repobilityId": "7fef596ac1b6a23f", "scanner": "scanner-primary", "fingerprint": "218c9faa4e5ebf8d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/taskmark/.claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a7780b84952b906", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: examples/taskmark/.claude/tutorial-prompt.md"}, "properties": {"repobilityId": "99e455f23f2f0024", "scanner": "scanner-primary", "fingerprint": "8a7780b84952b906", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/taskmark/.claude/tutorial-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f76cfcc161b0712a", "level": "none", "message": {"text": "Commented-code block (6 lines) in jest.config.js:4"}, "properties": {"repobilityId": "8da151b1d6aba573", "scanner": "scanner-primary", "fingerprint": "f76cfcc161b0712a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-422ae3a4c504377b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/knowledge.test.ts:588"}, "properties": {"repobilityId": "877de0d0e7c8afea", "scanner": "scanner-primary", "fingerprint": "422ae3a4c504377b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fbcfa3738b3ca12", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/evolve.test.ts:3234"}, "properties": {"repobilityId": "891960224f9baf8b", "scanner": "scanner-primary", "fingerprint": "8fbcfa3738b3ca12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b580bae664ad79bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/plan-tournament.test.ts:376"}, "properties": {"repobilityId": "e1dd1ee67cad603f", "scanner": "scanner-primary", "fingerprint": "b580bae664ad79bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67cfa3badc733cf6", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/context.test.ts:553"}, "properties": {"repobilityId": "f4ec69cad72bd30b", "scanner": "scanner-primary", "fingerprint": "67cfa3badc733cf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f19292eb152dc20", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/drift.test.ts:716"}, "properties": {"repobilityId": "f1b83d9f4354d59a", "scanner": "scanner-primary", "fingerprint": "0f19292eb152dc20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b064db763810c49", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/autopilot.test.ts:3975"}, "properties": {"repobilityId": "c079b642e5fd8b9a", "scanner": "scanner-primary", "fingerprint": "9b064db763810c49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaa72d989db1cc40", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/worktree.test.ts:1633"}, "properties": {"repobilityId": "256b545de5b71d2f", "scanner": "scanner-primary", "fingerprint": "aaa72d989db1cc40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-523b7d1b3176a3d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/phase-complete.test.ts:194"}, "properties": {"repobilityId": "577bdf274c4e7548", "scanner": "scanner-primary", "fingerprint": "523b7d1b3176a3d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab5e46e61699636d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/cleanup-noninterference.test.ts:285"}, "properties": {"repobilityId": "807686ccd3807538", "scanner": "scanner-primary", "fingerprint": "ab5e46e61699636d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-986a049a687f146a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/mcp-server.test.ts:1808"}, "properties": {"repobilityId": "6b7a3b4e362cc5ed", "scanner": "scanner-primary", "fingerprint": "986a049a687f146a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-004507c1954aa0ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/autoplan.test.ts:459"}, "properties": {"repobilityId": "30972b6ea0e36259", "scanner": "scanner-primary", "fingerprint": "004507c1954aa0ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f03286637aeffdad", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/research/html-to-md.interop.test.ts:5"}, "properties": {"repobilityId": "49eb72e52438430b", "scanner": "scanner-primary", "fingerprint": "f03286637aeffdad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78bedf29ab817365", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/research/parity-vectors.test.ts:2"}, "properties": {"repobilityId": "4e2bc1a7b404bf09", "scanner": "scanner-primary", "fingerprint": "78bedf29ab817365", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b9958e6ed846d61", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/cli.test.ts:2002"}, "properties": {"repobilityId": "3064d1881a2de712", "scanner": "scanner-primary", "fingerprint": "1b9958e6ed846d61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-208a7b6562feb778", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/plan-tournament.ts:140"}, "properties": {"repobilityId": "609165696cd45da5", "scanner": "scanner-primary", "fingerprint": "208a7b6562feb778", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a58779a20bc0e222", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/research-bundle.ts:176"}, "properties": {"repobilityId": "07ae0c40d01459b6", "scanner": "scanner-primary", "fingerprint": "a58779a20bc0e222", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c50a4c26cd737cc", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/scheduler.ts:1163"}, "properties": {"repobilityId": "ac92165c72ff2cfb", "scanner": "scanner-primary", "fingerprint": "2c50a4c26cd737cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c1e928f09b79fd8", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/autopilot.ts:633"}, "properties": {"repobilityId": "433e36e3cf0113f6", "scanner": "scanner-primary", "fingerprint": "1c1e928f09b79fd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-147b0e9192b558d2", "level": "none", "message": {"text": "Commented-code block (30 lines) in lib/verify.ts:280"}, "properties": {"repobilityId": "e2f3bae364263a23", "scanner": "scanner-primary", "fingerprint": "147b0e9192b558d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee170e1c8d7628be", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/invariants.ts:195"}, "properties": {"repobilityId": "49095a1b9bdac79e", "scanner": "scanner-primary", "fingerprint": "ee170e1c8d7628be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b377faeb66e1927", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/autopilot-pipeline.ts:446"}, "properties": {"repobilityId": "9d4ee44ebf97cdd8", "scanner": "scanner-primary", "fingerprint": "8b377faeb66e1927", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de0c42debf1f8840", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/phase-complete.ts:201"}, "properties": {"repobilityId": "5d9ce76d3fedef45", "scanner": "scanner-primary", "fingerprint": "de0c42debf1f8840", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f49bb8e87e4408fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/context/research.ts:395"}, "properties": {"repobilityId": "79381bf72670991a", "scanner": "scanner-primary", "fingerprint": "f49bb8e87e4408fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f9174e1a8ad4332", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/context/execute.ts:740"}, "properties": {"repobilityId": "9c0d59113b76705d", "scanner": "scanner-primary", "fingerprint": "9f9174e1a8ad4332", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfb3f8ac4bb94206", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/commands/tail.ts:81"}, "properties": {"repobilityId": "39f6dfe60c649b72", "scanner": "scanner-primary", "fingerprint": "dfb3f8ac4bb94206", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5c321633dc1e944", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/commands/select-candidate.ts:526"}, "properties": {"repobilityId": "9ee87e19b4189e06", "scanner": "scanner-primary", "fingerprint": "a5c321633dc1e944", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f661ffde75f7c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/commands/rollback.ts:115"}, "properties": {"repobilityId": "3ff67ac308574ae0", "scanner": "scanner-primary", "fingerprint": "5f661ffde75f7c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63a4ea0c063e4515", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/commands/eval-diff.ts:130"}, "properties": {"repobilityId": "c83d3ec701dd7ee5", "scanner": "scanner-primary", "fingerprint": "63a4ea0c063e4515", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2624c689bc57f73", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/commands/analysis.ts:1516"}, "properties": {"repobilityId": "def2f4e1e80757b2", "scanner": "scanner-primary", "fingerprint": "d2624c689bc57f73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cfd581cca50b1c8", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/commands/health.ts:355"}, "properties": {"repobilityId": "bb621cf57f181644", "scanner": "scanner-primary", "fingerprint": "5cfd581cca50b1c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e411571b078f0bac", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/research/synthesize.ts:173"}, "properties": {"repobilityId": "dcadfa4cd4ed8fa8", "scanner": "scanner-primary", "fingerprint": "e411571b078f0bac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69cfaf694d6317a8", "level": "note", "message": {"text": "Legacy-named symbol `stateAsLegacy` in lib/evolve/discovery.ts:480"}, "properties": {"repobilityId": "ee8101ef2bcee81f", "scanner": "scanner-primary", "fingerprint": "69cfaf694d6317a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa6507b879fc0c3f", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/evolve/state.ts:40"}, "properties": {"repobilityId": "c5f624de8a22ff8a", "scanner": "scanner-primary", "fingerprint": "aa6507b879fc0c3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17d40a8b8abe6b76", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/wireup/execution.ts:9"}, "properties": {"repobilityId": "664ed51d13b12546", "scanner": "scanner-primary", "fingerprint": "17d40a8b8abe6b76", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}