{"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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f6c4e755b7af2eb", "name": "Insecure pattern 'exec_used' in src/api/handlers/mcp_proxy.rs:212", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/api/handlers/mcp_proxy.rs:212"}, "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-0d96105167416105", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "taiki-e/install-action@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-e563b1d35349c07b", "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "taiki-e/install-action@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-e2dd8b4c4ff10305", "name": "GitHub Action tracks a moving branch", "shortDescription": {"text": "GitHub Action tracks a moving branch"}, "fullDescription": {"text": "dtolnay/rust-toolchain@master 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": "high", "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": "obi1kenobi/cargo-semver-checks-action@v2 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": "medium", "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-5b896f6198784ee3", "name": "Very large file: src/task_events.rs (3859 lines)", "shortDescription": {"text": "Very large file: src/task_events.rs (3859 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-e8bf553e2a97fdc3", "name": "Very large file: src/worktree_pool.rs (3293 lines)", "shortDescription": {"text": "Very large file: src/worktree_pool.rs (3293 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-08cfeac50844ac9d", "name": "Very large file: src/notification_queue.rs (1199 lines)", "shortDescription": {"text": "Very large file: src/notification_queue.rs (1199 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-8bdb7f913530bcc4", "name": "Very large file: src/token_cost.rs (2049 lines)", "shortDescription": {"text": "Very large file: src/token_cost.rs (2049 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-2e0795b9263f170e", "name": "Very large file: src/claim_verifier.rs (1676 lines)", "shortDescription": {"text": "Very large file: src/claim_verifier.rs (1676 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-541af2298db36dfe", "name": "Very large file: src/schedules.rs (1480 lines)", "shortDescription": {"text": "Very large file: src/schedules.rs (1480 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-6cd0d3a167d52ed8", "name": "Very large file: src/vterm.rs (2113 lines)", "shortDescription": {"text": "Very large file: src/vterm.rs (2113 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-d2e054876c4a047e", "name": "Very large file: src/backend.rs (2040 lines)", "shortDescription": {"text": "Very large file: src/backend.rs (2040 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-39e163a001ea927d", "name": "Very large file: src/instructions.rs (1368 lines)", "shortDescription": {"text": "Very large file: src/instructions.rs (1368 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-7f528df2eb11d791", "name": "Very large file: src/deployments.rs (2805 lines)", "shortDescription": {"text": "Very large file: src/deployments.rs (2805 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-58cbd8d879cf5bfa", "name": "Very large file: src/worktree.rs (1284 lines)", "shortDescription": {"text": "Very large file: src/worktree.rs (1284 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-db0b795b363a90d5", "name": "Very large file: src/behavioral.rs (1266 lines)", "shortDescription": {"text": "Very large file: src/behavioral.rs (1266 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-864468da036c9a13", "name": "Very large file: src/skills.rs (1380 lines)", "shortDescription": {"text": "Very large file: src/skills.rs (1380 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-f8723d68f2e7b12b", "name": "Very large file: src/binding.rs (1150 lines)", "shortDescription": {"text": "Very large file: src/binding.rs (1150 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-15ce01ef15a57092", "name": "Very large file: src/teams.rs (1645 lines)", "shortDescription": {"text": "Very large file: src/teams.rs (1645 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-4d1d97722cf6575c", "name": "Very large file: src/main.rs (1374 lines)", "shortDescription": {"text": "Very large file: src/main.rs (1374 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-2bf4c9efee29ffe7", "name": "Very large file: src/mcp_config.rs (1494 lines)", "shortDescription": {"text": "Very large file: src/mcp_config.rs (1494 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-c8f9f8bf0e53c7bd", "name": "Very large file: src/quickstart.rs (2040 lines)", "shortDescription": {"text": "Very large file: src/quickstart.rs (2040 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-d6cd2f5878d60e72", "name": "Very large file: src/health.rs (2398 lines)", "shortDescription": {"text": "Very large file: src/health.rs (2398 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-517661704a6c6385", "name": "Very large file: src/agent_ops.rs (1280 lines)", "shortDescription": {"text": "Very large file: src/agent_ops.rs (1280 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-a446eeb4342a9b5f", "name": "Very large file: src/fleet/mod.rs (2480 lines)", "shortDescription": {"text": "Very large file: src/fleet/mod.rs (2480 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-26424689b6876e5c", "name": "Very large file: src/state/mod.rs (2593 lines)", "shortDescription": {"text": "Very large file: src/state/mod.rs (2593 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-9fdc02040ceb7ccf", "name": "Very large file: src/state/tests.rs (5352 lines)", "shortDescription": {"text": "Very large file: src/state/tests.rs (5352 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-ed49b9e0d524f2ec", "name": "Very large file: src/api/mod.rs (2024 lines)", "shortDescription": {"text": "Very large file: src/api/mod.rs (2024 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-059a325c35ce42cf", "name": "Very large file: src/api/handlers/instance.rs (1575 lines)", "shortDescription": {"text": "Very large file: src/api/handlers/instance.rs (1575 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-24021c7e47407385", "name": "Very large file: src/api/handlers/messaging.rs (3159 lines)", "shortDescription": {"text": "Very large file: src/api/handlers/messaging.rs (3159 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-4db37461b0ffb185", "name": "Very large file: src/mcp/tools.rs (1112 lines)", "shortDescription": {"text": "Very large file: src/mcp/tools.rs (1112 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-4661888c54090dee", "name": "Very large file: src/mcp/handlers/tests.rs (3331 lines)", "shortDescription": {"text": "Very large file: src/mcp/handlers/tests.rs (3331 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-5b45d39da544ed98", "name": "Very large file: src/mcp/handlers/dispatch_hook/mod.rs (1562 lines)", "shortDescription": {"text": "Very large file: src/mcp/handlers/dispatch_hook/mod.rs (1562 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-b92c242882247c25", "name": "Very large file: src/mcp/handlers/dispatch_hook/tests.rs (3215 lines)", "shortDescription": {"text": "Very large file: src/mcp/handlers/dispatch_hook/tests.rs (3215 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-09ef8e07a8d25d42", "name": "Very large file: src/mcp/handlers/ci/mod.rs (1420 lines)", "shortDescription": {"text": "Very large file: src/mcp/handlers/ci/mod.rs (1420 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-9eee05af628cb9eb", "name": "Very large file: src/mcp/handlers/ci/tests.rs (2513 lines)", "shortDescription": {"text": "Very large file: src/mcp/handlers/ci/tests.rs (2513 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-758befff004b3a13", "name": "Very large file: src/agent/mod.rs (2564 lines)", "shortDescription": {"text": "Very large file: src/agent/mod.rs (2564 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-4a2a3c2056bdbd54", "name": "Very large file: src/agent/tests.rs (2403 lines)", "shortDescription": {"text": "Very large file: src/agent/tests.rs (2403 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-b5a27d4a74299a03", "name": "Very large file: src/app/mod.rs (2148 lines)", "shortDescription": {"text": "Very large file: src/app/mod.rs (2148 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-29c79639883586e2", "name": "Very large file: src/app/overlay.rs (1331 lines)", "shortDescription": {"text": "Very large file: src/app/overlay.rs (1331 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-eb631d8456aa7a6a", "name": "Very large file: src/tasks/handler.rs (2203 lines)", "shortDescription": {"text": "Very large file: src/tasks/handler.rs (2203 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-7722792fcde4e0e1", "name": "Very large file: src/tasks/tests.rs (3909 lines)", "shortDescription": {"text": "Very large file: src/tasks/tests.rs (3909 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-d1573fa0153a3e9d", "name": "Very large file: src/daemon/idle_watchdog.rs (1982 lines)", "shortDescription": {"text": "Very large file: src/daemon/idle_watchdog.rs (1982 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-44d5391bea2ccf6c", "name": "Very large file: src/daemon/mod.rs (2914 lines)", "shortDescription": {"text": "Very large file: src/daemon/mod.rs (2914 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-a535a45e099bd313", "name": "Very large file: src/daemon/supervisor.rs (5717 lines)", "shortDescription": {"text": "Very large file: src/daemon/supervisor.rs (5717 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-f5614587a8def65d", "name": "Very large file: src/daemon/task_sweep.rs (1741 lines)", "shortDescription": {"text": "Very large file: src/daemon/task_sweep.rs (1741 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-99729e706ef50c1c", "name": "Very large file: src/daemon/auto_release.rs (1869 lines)", "shortDescription": {"text": "Very large file: src/daemon/auto_release.rs (1869 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-22c3af0abf4275b0", "name": "Very large file: src/daemon/pr_state/mod.rs (3364 lines)", "shortDescription": {"text": "Very large file: src/daemon/pr_state/mod.rs (3364 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-4a9963a8fb421138", "name": "Very large file: src/daemon/per_tick/recovery_dispatcher.rs (1374 lines)", "shortDescription": {"text": "Very large file: src/daemon/per_tick/recovery_dispatcher.rs (1374 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-01e08f4a7ac4c268", "name": "Very large file: src/daemon/ci_watch/poller_tests.rs (6378 lines)", "shortDescription": {"text": "Very large file: src/daemon/ci_watch/poller_tests.rs (6378 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-474920b3c044a808", "name": "Very large file: src/daemon/ci_watch/poller.rs (2023 lines)", "shortDescription": {"text": "Very large file: src/daemon/ci_watch/poller.rs (2023 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-031699a87958ca39", "name": "Very large file: src/daemon/ci_watch/provider.rs (1300 lines)", "shortDescription": {"text": "Very large file: src/daemon/ci_watch/provider.rs (1300 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-d7d98ceefdfc0415", "name": "Very large file: src/daemon/retention/worktrees.rs (1242 lines)", "shortDescription": {"text": "Very large file: src/daemon/retention/worktrees.rs (1242 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-3253a3f47e1e6824", "name": "Very large file: src/daemon/dispatch_idle/mod.rs (3971 lines)", "shortDescription": {"text": "Very large file: src/daemon/dispatch_idle/mod.rs (3971 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-c977d91607c3ef13", "name": "Very large file: src/inbox/notify.rs (1309 lines)", "shortDescription": {"text": "Very large file: src/inbox/notify.rs (1309 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-099f73375c9e32ea", "name": "Very large file: src/inbox/tests.rs (3151 lines)", "shortDescription": {"text": "Very large file: src/inbox/tests.rs (3151 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-0ed16879884f4028", "name": "Very large file: src/channel/discord.rs (1574 lines)", "shortDescription": {"text": "Very large file: src/channel/discord.rs (1574 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 27 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 289 placeholder/mock markers across 60 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20585"}, "properties": {"repository": "suzuke/agend-terminal", "repoUrl": "https://github.com/suzuke/agend-terminal", "branch": "main"}, "results": [{"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-1f6c4e755b7af2eb", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/api/handlers/mcp_proxy.rs:212"}, "properties": {"repobilityId": "501f0d6c13708a06", "scanner": "scanner-primary", "fingerprint": "1f6c4e755b7af2eb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/api/handlers/mcp_proxy.rs"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-0d96105167416105", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5e592261cfb57acc", "scanner": "scanner-primary", "fingerprint": "0d96105167416105", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daemon-boot-flake-gate.yml"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-e563b1d35349c07b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8327cf1afea0b7ba", "scanner": "scanner-primary", "fingerprint": "e563b1d35349c07b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/loc-overrun-check.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d36e0bb5e789fa1f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b26ce68c37b84c6f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b26ce68c37b84c6f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "faa7025731431bdd", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 273}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a3c03147ef1f40b5", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-e2dd8b4c4ff10305", "level": "error", "message": {"text": "GitHub Action tracks a moving branch"}, "properties": {"repobilityId": "f252fe88da2da11a", "scanner": "scanner-primary", "fingerprint": "e2dd8b4c4ff10305", "layer": "cicd", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d605e99ba35ea5c0", "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": 90}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "902cb599c9a675e5", "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": 184}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "902cb599c9a675e5", "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": 289}}}]}, {"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": 314}}}]}, {"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-5b896f6198784ee3", "level": "note", "message": {"text": "Very large file: src/task_events.rs (3859 lines)"}, "properties": {"repobilityId": "c96498d58234cfd1", "scanner": "scanner-primary", "fingerprint": "5b896f6198784ee3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8bf553e2a97fdc3", "level": "note", "message": {"text": "Very large file: src/worktree_pool.rs (3293 lines)"}, "properties": {"repobilityId": "9ee2bd926c181f17", "scanner": "scanner-primary", "fingerprint": "e8bf553e2a97fdc3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-08cfeac50844ac9d", "level": "note", "message": {"text": "Very large file: src/notification_queue.rs (1199 lines)"}, "properties": {"repobilityId": "af3beea3747eebb1", "scanner": "scanner-primary", "fingerprint": "08cfeac50844ac9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8bdb7f913530bcc4", "level": "note", "message": {"text": "Very large file: src/token_cost.rs (2049 lines)"}, "properties": {"repobilityId": "3e74dbd8ba3d11d0", "scanner": "scanner-primary", "fingerprint": "8bdb7f913530bcc4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2e0795b9263f170e", "level": "note", "message": {"text": "Very large file: src/claim_verifier.rs (1676 lines)"}, "properties": {"repobilityId": "69b0fe624351762b", "scanner": "scanner-primary", "fingerprint": "2e0795b9263f170e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-541af2298db36dfe", "level": "note", "message": {"text": "Very large file: src/schedules.rs (1480 lines)"}, "properties": {"repobilityId": "d0378273adf41d32", "scanner": "scanner-primary", "fingerprint": "541af2298db36dfe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6cd0d3a167d52ed8", "level": "note", "message": {"text": "Very large file: src/vterm.rs (2113 lines)"}, "properties": {"repobilityId": "08e1057018178ebc", "scanner": "scanner-primary", "fingerprint": "6cd0d3a167d52ed8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2e054876c4a047e", "level": "note", "message": {"text": "Very large file: src/backend.rs (2040 lines)"}, "properties": {"repobilityId": "6e50854e40def37f", "scanner": "scanner-primary", "fingerprint": "d2e054876c4a047e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-39e163a001ea927d", "level": "note", "message": {"text": "Very large file: src/instructions.rs (1368 lines)"}, "properties": {"repobilityId": "09cfb769bce7e27a", "scanner": "scanner-primary", "fingerprint": "39e163a001ea927d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f528df2eb11d791", "level": "note", "message": {"text": "Very large file: src/deployments.rs (2805 lines)"}, "properties": {"repobilityId": "1f9d26a5aea0e339", "scanner": "scanner-primary", "fingerprint": "7f528df2eb11d791", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-58cbd8d879cf5bfa", "level": "note", "message": {"text": "Very large file: src/worktree.rs (1284 lines)"}, "properties": {"repobilityId": "c6f43d95e232c4a1", "scanner": "scanner-primary", "fingerprint": "58cbd8d879cf5bfa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-db0b795b363a90d5", "level": "note", "message": {"text": "Very large file: src/behavioral.rs (1266 lines)"}, "properties": {"repobilityId": "1617add40ddba689", "scanner": "scanner-primary", "fingerprint": "db0b795b363a90d5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-864468da036c9a13", "level": "note", "message": {"text": "Very large file: src/skills.rs (1380 lines)"}, "properties": {"repobilityId": "0a9cc544130d6b2c", "scanner": "scanner-primary", "fingerprint": "864468da036c9a13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f8723d68f2e7b12b", "level": "note", "message": {"text": "Very large file: src/binding.rs (1150 lines)"}, "properties": {"repobilityId": "62c3fafbdfe2a63d", "scanner": "scanner-primary", "fingerprint": "f8723d68f2e7b12b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15ce01ef15a57092", "level": "note", "message": {"text": "Very large file: src/teams.rs (1645 lines)"}, "properties": {"repobilityId": "d06a66b7725abefa", "scanner": "scanner-primary", "fingerprint": "15ce01ef15a57092", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d1d97722cf6575c", "level": "note", "message": {"text": "Very large file: src/main.rs (1374 lines)"}, "properties": {"repobilityId": "4c117dc1f23739db", "scanner": "scanner-primary", "fingerprint": "4d1d97722cf6575c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2bf4c9efee29ffe7", "level": "note", "message": {"text": "Very large file: src/mcp_config.rs (1494 lines)"}, "properties": {"repobilityId": "2e3b71f5cdd615b7", "scanner": "scanner-primary", "fingerprint": "2bf4c9efee29ffe7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c8f9f8bf0e53c7bd", "level": "note", "message": {"text": "Very large file: src/quickstart.rs (2040 lines)"}, "properties": {"repobilityId": "3e2db26c69e71c71", "scanner": "scanner-primary", "fingerprint": "c8f9f8bf0e53c7bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d6cd2f5878d60e72", "level": "note", "message": {"text": "Very large file: src/health.rs (2398 lines)"}, "properties": {"repobilityId": "bf6fe6e92c1dc3d9", "scanner": "scanner-primary", "fingerprint": "d6cd2f5878d60e72", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-517661704a6c6385", "level": "note", "message": {"text": "Very large file: src/agent_ops.rs (1280 lines)"}, "properties": {"repobilityId": "74d9fba30eabf2fe", "scanner": "scanner-primary", "fingerprint": "517661704a6c6385", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a446eeb4342a9b5f", "level": "note", "message": {"text": "Very large file: src/fleet/mod.rs (2480 lines)"}, "properties": {"repobilityId": "32fea954314cdc1a", "scanner": "scanner-primary", "fingerprint": "a446eeb4342a9b5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-26424689b6876e5c", "level": "note", "message": {"text": "Very large file: src/state/mod.rs (2593 lines)"}, "properties": {"repobilityId": "4e78dd19c6696697", "scanner": "scanner-primary", "fingerprint": "26424689b6876e5c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9fdc02040ceb7ccf", "level": "note", "message": {"text": "Very large file: src/state/tests.rs (5352 lines)"}, "properties": {"repobilityId": "5f3b64d5d19e303a", "scanner": "scanner-primary", "fingerprint": "9fdc02040ceb7ccf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed49b9e0d524f2ec", "level": "note", "message": {"text": "Very large file: src/api/mod.rs (2024 lines)"}, "properties": {"repobilityId": "76027a02f379e98f", "scanner": "scanner-primary", "fingerprint": "ed49b9e0d524f2ec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-059a325c35ce42cf", "level": "note", "message": {"text": "Very large file: src/api/handlers/instance.rs (1575 lines)"}, "properties": {"repobilityId": "cbd3a801f6a46010", "scanner": "scanner-primary", "fingerprint": "059a325c35ce42cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-24021c7e47407385", "level": "note", "message": {"text": "Very large file: src/api/handlers/messaging.rs (3159 lines)"}, "properties": {"repobilityId": "c862f4b3373ad2a8", "scanner": "scanner-primary", "fingerprint": "24021c7e47407385", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4db37461b0ffb185", "level": "note", "message": {"text": "Very large file: src/mcp/tools.rs (1112 lines)"}, "properties": {"repobilityId": "eca674815a45fcd5", "scanner": "scanner-primary", "fingerprint": "4db37461b0ffb185", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4661888c54090dee", "level": "note", "message": {"text": "Very large file: src/mcp/handlers/tests.rs (3331 lines)"}, "properties": {"repobilityId": "37648992665af3ab", "scanner": "scanner-primary", "fingerprint": "4661888c54090dee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5b45d39da544ed98", "level": "note", "message": {"text": "Very large file: src/mcp/handlers/dispatch_hook/mod.rs (1562 lines)"}, "properties": {"repobilityId": "21671b6b0162fd06", "scanner": "scanner-primary", "fingerprint": "5b45d39da544ed98", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b92c242882247c25", "level": "note", "message": {"text": "Very large file: src/mcp/handlers/dispatch_hook/tests.rs (3215 lines)"}, "properties": {"repobilityId": "be99b1d7157d903c", "scanner": "scanner-primary", "fingerprint": "b92c242882247c25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-09ef8e07a8d25d42", "level": "note", "message": {"text": "Very large file: src/mcp/handlers/ci/mod.rs (1420 lines)"}, "properties": {"repobilityId": "937b76bab0b76f17", "scanner": "scanner-primary", "fingerprint": "09ef8e07a8d25d42", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9eee05af628cb9eb", "level": "note", "message": {"text": "Very large file: src/mcp/handlers/ci/tests.rs (2513 lines)"}, "properties": {"repobilityId": "7534cb4acd3cbc0c", "scanner": "scanner-primary", "fingerprint": "9eee05af628cb9eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-758befff004b3a13", "level": "note", "message": {"text": "Very large file: src/agent/mod.rs (2564 lines)"}, "properties": {"repobilityId": "a9f3bc22415e4231", "scanner": "scanner-primary", "fingerprint": "758befff004b3a13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a2a3c2056bdbd54", "level": "note", "message": {"text": "Very large file: src/agent/tests.rs (2403 lines)"}, "properties": {"repobilityId": "b6e43a117c66236b", "scanner": "scanner-primary", "fingerprint": "4a2a3c2056bdbd54", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b5a27d4a74299a03", "level": "note", "message": {"text": "Very large file: src/app/mod.rs (2148 lines)"}, "properties": {"repobilityId": "f99be9e995789c9b", "scanner": "scanner-primary", "fingerprint": "b5a27d4a74299a03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-29c79639883586e2", "level": "note", "message": {"text": "Very large file: src/app/overlay.rs (1331 lines)"}, "properties": {"repobilityId": "180c83b3ebdf45cd", "scanner": "scanner-primary", "fingerprint": "29c79639883586e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb631d8456aa7a6a", "level": "note", "message": {"text": "Very large file: src/tasks/handler.rs (2203 lines)"}, "properties": {"repobilityId": "b6c189baf2c9ced6", "scanner": "scanner-primary", "fingerprint": "eb631d8456aa7a6a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7722792fcde4e0e1", "level": "note", "message": {"text": "Very large file: src/tasks/tests.rs (3909 lines)"}, "properties": {"repobilityId": "908e7b2e9df01b51", "scanner": "scanner-primary", "fingerprint": "7722792fcde4e0e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d1573fa0153a3e9d", "level": "note", "message": {"text": "Very large file: src/daemon/idle_watchdog.rs (1982 lines)"}, "properties": {"repobilityId": "5f95c439981ff799", "scanner": "scanner-primary", "fingerprint": "d1573fa0153a3e9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-44d5391bea2ccf6c", "level": "note", "message": {"text": "Very large file: src/daemon/mod.rs (2914 lines)"}, "properties": {"repobilityId": "09967765caeb2a06", "scanner": "scanner-primary", "fingerprint": "44d5391bea2ccf6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a535a45e099bd313", "level": "note", "message": {"text": "Very large file: src/daemon/supervisor.rs (5717 lines)"}, "properties": {"repobilityId": "c96bc1b2befbfb9e", "scanner": "scanner-primary", "fingerprint": "a535a45e099bd313", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f5614587a8def65d", "level": "note", "message": {"text": "Very large file: src/daemon/task_sweep.rs (1741 lines)"}, "properties": {"repobilityId": "20eca20a402308ba", "scanner": "scanner-primary", "fingerprint": "f5614587a8def65d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99729e706ef50c1c", "level": "note", "message": {"text": "Very large file: src/daemon/auto_release.rs (1869 lines)"}, "properties": {"repobilityId": "dc0e4223ed83198f", "scanner": "scanner-primary", "fingerprint": "99729e706ef50c1c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-22c3af0abf4275b0", "level": "note", "message": {"text": "Very large file: src/daemon/pr_state/mod.rs (3364 lines)"}, "properties": {"repobilityId": "65c61cc33d9c96c7", "scanner": "scanner-primary", "fingerprint": "22c3af0abf4275b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a9963a8fb421138", "level": "note", "message": {"text": "Very large file: src/daemon/per_tick/recovery_dispatcher.rs (1374 lines)"}, "properties": {"repobilityId": "e95b8fdc5330e68a", "scanner": "scanner-primary", "fingerprint": "4a9963a8fb421138", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-01e08f4a7ac4c268", "level": "note", "message": {"text": "Very large file: src/daemon/ci_watch/poller_tests.rs (6378 lines)"}, "properties": {"repobilityId": "9b7a1ea7dd2ce129", "scanner": "scanner-primary", "fingerprint": "01e08f4a7ac4c268", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-474920b3c044a808", "level": "note", "message": {"text": "Very large file: src/daemon/ci_watch/poller.rs (2023 lines)"}, "properties": {"repobilityId": "826c4cf4b8c17c6b", "scanner": "scanner-primary", "fingerprint": "474920b3c044a808", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-031699a87958ca39", "level": "note", "message": {"text": "Very large file: src/daemon/ci_watch/provider.rs (1300 lines)"}, "properties": {"repobilityId": "b197e9e5b30db9c1", "scanner": "scanner-primary", "fingerprint": "031699a87958ca39", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d7d98ceefdfc0415", "level": "note", "message": {"text": "Very large file: src/daemon/retention/worktrees.rs (1242 lines)"}, "properties": {"repobilityId": "e89aa6625056f859", "scanner": "scanner-primary", "fingerprint": "d7d98ceefdfc0415", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3253a3f47e1e6824", "level": "note", "message": {"text": "Very large file: src/daemon/dispatch_idle/mod.rs (3971 lines)"}, "properties": {"repobilityId": "7f6408dccc4f9614", "scanner": "scanner-primary", "fingerprint": "3253a3f47e1e6824", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c977d91607c3ef13", "level": "note", "message": {"text": "Very large file: src/inbox/notify.rs (1309 lines)"}, "properties": {"repobilityId": "5cd1d06cb14987e6", "scanner": "scanner-primary", "fingerprint": "c977d91607c3ef13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-099f73375c9e32ea", "level": "note", "message": {"text": "Very large file: src/inbox/tests.rs (3151 lines)"}, "properties": {"repobilityId": "4a3a19603b58292b", "scanner": "scanner-primary", "fingerprint": "099f73375c9e32ea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0ed16879884f4028", "level": "note", "message": {"text": "Very large file: src/channel/discord.rs (1574 lines)"}, "properties": {"repobilityId": "091638d6e11c195a", "scanner": "scanner-primary", "fingerprint": "0ed16879884f4028", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "01449da4e788b6c9", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "40d89f82e1e9100b", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "dbf3f15580171054", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "1d138608b8e0f2d0", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "2f699b02b49b1d02", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}]}]}