{"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-9f1d8cb65b275dc8", "name": "Possibly dead Python function: acct_type_icon", "shortDescription": {"text": "Possibly dead Python function: acct_type_icon"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6312a91de52ae61", "name": "Possibly dead Python function: acct_type_max_term", "shortDescription": {"text": "Possibly dead Python function: acct_type_max_term"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d4ae4c238747ab2", "name": "Possibly dead Python function: formatTime", "shortDescription": {"text": "Possibly dead Python function: formatTime"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d0b7dd2809d53c62", "name": "Privileged port 19 in use", "shortDescription": {"text": "Privileged port 19 in use"}, "fullDescription": {"text": "Port 19 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-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-685bd510936637bd", "name": "Insecure pattern 'debug_true' in run.py:14", "shortDescription": {"text": "Insecure pattern 'debug_true' in run.py:14"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4aa1f42d735934f5", "name": "Insecure pattern 'weak_hash' in docs/audits/security-2026-04-15/scans/trivy-image.json:4838", "shortDescription": {"text": "Insecure pattern 'weak_hash' in docs/audits/security-2026-04-15/scans/trivy-image.json:4838"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c80098556c432ab", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/recurrence_form.js:80", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/recurrence_form.js:80"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ce807dd90c8e82c", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/app.js:318", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/app.js:318"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc18744aae9dbda8", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/grid_edit.js:283", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/grid_edit.js:283"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-253332442963f320", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/calendar.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/calendar.js:39"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-076b03a16e76601d", "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-19c6b764e914473d", "name": "Very large file: tests/conftest.py (2307 lines)", "shortDescription": {"text": "Very large file: tests/conftest.py (2307 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-b7d9a0d5ee540561", "name": "Very large file: tests/test_adversarial/test_step_up.py (1296 lines)", "shortDescription": {"text": "Very large file: tests/test_adversarial/test_step_up.py (1296 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-fc5dd1165e1152b1", "name": "Very large file: tests/test_adversarial/test_hostile_qa.py (1276 lines)", "shortDescription": {"text": "Very large file: tests/test_adversarial/test_hostile_qa.py (1276 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-68ab71254b44cee9", "name": "Very large file: tests/test_services/test_loan_resolver.py (2123 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_loan_resolver.py (2123 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-f1e412edbe6d169c", "name": "Very large file: tests/test_services/test_calendar_service.py (1363 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_calendar_service.py (1363 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-8f3242769229e1fc", "name": "Very large file: tests/test_services/test_year_end_summary_service.py (2907 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_year_end_summary_service.py (2907 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-be77c3ae82b345bc", "name": "Very large file: tests/test_services/test_balance_calculator.py (2531 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_balance_calculator.py (2531 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-faed2b78baa9c948", "name": "Very large file: tests/test_services/test_entry_service.py (1583 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_entry_service.py (1583 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-a6100f18a386051a", "name": "Very large file: tests/test_services/test_recurrence_engine.py (2725 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_recurrence_engine.py (2725 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-53375237dd5dac2f", "name": "Very large file: tests/test_services/test_savings_dashboard_service.py (3046 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_savings_dashboard_service.py (3046 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-60ba48bc657db8f1", "name": "Very large file: tests/test_services/test_balance_resolver.py (1580 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_balance_resolver.py (1580 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-e638ac4898ceb60e", "name": "Very large file: tests/test_services/test_carry_forward_service.py (3136 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_carry_forward_service.py (3136 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-d69da5faaf6b0451", "name": "Very large file: tests/test_services/test_paycheck_calculator.py (3819 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_paycheck_calculator.py (3819 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-d87a06371242806f", "name": "Very large file: tests/test_services/test_balance_calculator_entries.py (1900 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_balance_calculator_entries.py (1900 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-21632ebc6aa6331b", "name": "Very large file: tests/test_services/test_dashboard_pulse_service.py (1269 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_dashboard_pulse_service.py (1269 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-5380958af577e528", "name": "Very large file: tests/test_services/test_growth_engine.py (1551 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_growth_engine.py (1551 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-963fd59af341f1f7", "name": "Very large file: tests/test_services/test_auth_service.py (1534 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_auth_service.py (1534 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-bedb39c97d3c4cce", "name": "Very large file: tests/test_services/test_transfer_service.py (1665 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_transfer_service.py (1665 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-3b9350507a0089f5", "name": "Very large file: tests/test_services/test_amortization_engine.py (1596 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_amortization_engine.py (1596 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-7249628f14a46fa8", "name": "Very large file: tests/test_services/test_transfer_recurrence.py (1692 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_transfer_recurrence.py (1692 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-70f7061b425e76b8", "name": "Very large file: tests/test_services/test_investment_projection.py (1148 lines)", "shortDescription": {"text": "Very large file: tests/test_services/test_investment_projection.py (1148 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-faaadaf62507b34c", "name": "Very large file: tests/test_routes/test_c24_range_check_sweep.py (1272 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_c24_range_check_sweep.py (1272 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-f74c38b0342161fd", "name": "Very large file: tests/test_routes/test_categories.py (1686 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_categories.py (1686 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-67ed4eca689cc550", "name": "Very large file: tests/test_routes/test_transfers.py (2868 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_transfers.py (2868 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-583407a25626fecd", "name": "Very large file: tests/test_routes/test_loan.py (5421 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_loan.py (5421 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-3ef85bbbd56595b6", "name": "Very large file: tests/test_routes/test_analytics.py (2264 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_analytics.py (2264 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-47824c7dcf146ca9", "name": "Very large file: tests/test_routes/test_salary.py (3450 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_salary.py (3450 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-ae941ece5834e333", "name": "Very large file: tests/test_routes/test_entries.py (1516 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_entries.py (1516 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-779c877f7325ce29", "name": "Very large file: tests/test_routes/test_optimistic_locking_c18.py (1418 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_optimistic_locking_c18.py (1418 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-ec7d85e5f7824225", "name": "Very large file: tests/test_routes/test_savings.py (3187 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_savings.py (3187 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-3cbd753cdd0ae345", "name": "Very large file: tests/test_routes/test_grid.py (6638 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_grid.py (6638 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-ab68678c2aa4eb5f", "name": "Very large file: tests/test_routes/test_accounts.py (4847 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_accounts.py (4847 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-0f43995d2560adef", "name": "Very large file: tests/test_routes/test_auth.py (2723 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_auth.py (2723 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-028bd82484f140dd", "name": "Very large file: tests/test_routes/test_investment.py (2228 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_investment.py (2228 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-335e0d81c085b916", "name": "Very large file: tests/test_routes/test_retirement.py (1757 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_retirement.py (1757 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-ef76a74974e7cc5a", "name": "Very large file: tests/test_routes/test_templates.py (2004 lines)", "shortDescription": {"text": "Very large file: tests/test_routes/test_templates.py (2004 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-0d08f7187da669e6", "name": "Very large file: tests/test_deploy/test_docker_secrets_and_env_hygiene.py (1749 lines)", "shortDescription": {"text": "Very large file: tests/test_deploy/test_docker_secrets_and_env_hygiene.py (1749 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-50ad9eb713c9a54b", "name": "Very large file: tests/test_schemas/test_validation.py (1448 lines)", "shortDescription": {"text": "Very large file: tests/test_schemas/test_validation.py (1448 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 86 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 43 placeholder/mock markers across 17 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e4a24af6f41ffbd", "name": "Agent authority lacks a verifier contract: .claude/rules/deploy.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/deploy.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-00fd91c98a58cba2", "name": "Commented-code block (6 lines) in gunicorn.conf.py:42", "shortDescription": {"text": "Commented-code block (6 lines) in gunicorn.conf.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-974ba3e7f99bbeb6", "name": "Commented-code block (5 lines) in tests/conftest.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in tests/conftest.py:22"}, "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-145f6b444f4d68b9", "name": "Commented-code block (5 lines) in tests/test_config.py:821", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_config.py:821"}, "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-7af78b1beb7642d9", "name": "Commented-code block (5 lines) in tests/_test_helpers.py:124", "shortDescription": {"text": "Commented-code block (5 lines) in tests/_test_helpers.py:124"}, "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-c637dc0972fd71c0", "name": "Commented-code block (5 lines) in tests/test_adversarial/test_totp_replay.py:117", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_adversarial/test_totp_replay.py:117"}, "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-9c763181928e1833", "name": "Commented-code block (6 lines) in tests/test_adversarial/test_session_protection.py:343", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_adversarial/test_session_protection.py:343"}, "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-59db4904bb8fa5d7", "name": "Commented-code block (5 lines) in tests/test_adversarial/test_secret_key_rotation.py:96", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_adversarial/test_secret_key_rotation.py:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a40e9943c840edb", "name": "Commented-code block (6 lines) in tests/test_adversarial/test_mfa_setup_secret.py:160", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_adversarial/test_mfa_setup_secret.py:160"}, "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-f1ba3d44c76c1be5", "name": "Commented-code block (5 lines) in tests/test_adversarial/test_cache_control.py:227", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_adversarial/test_cache_control.py:227"}, "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-c5c4eff776d98a31", "name": "Commented-code block (7 lines) in tests/test_services/test_loan_resolver.py:926", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_services/test_loan_resolver.py:926"}, "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-97a0a54c96b67ef1", "name": "Commented-code block (7 lines) in tests/test_services/test_calendar_service.py:1277", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_services/test_calendar_service.py:1277"}, "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-33001c908c046f69", "name": "Commented-code block (5 lines) in tests/test_services/test_year_end_summary_service.py:614", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_services/test_year_end_summary_service.py:614"}, "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-f5a64ee364bbf8f2", "name": "Legacy-named symbol `test_payback_fields_match_legacy` in tests/test_services/test_entry_credit_workflow.py:374", "shortDescription": {"text": "Legacy-named symbol `test_payback_fields_match_legacy` in tests/test_services/test_entry_credit_workflow.py:374"}, "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-e41093792434c49a", "name": "Commented-code block (6 lines) in tests/test_services/test_recurrence_engine.py:730", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_services/test_recurrence_engine.py:730"}, "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-3766de0442f82293", "name": "Commented-code block (5 lines) in tests/test_services/test_savings_dashboard_service.py:1955", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_services/test_savings_dashboard_service.py:1955"}, "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-def64f50ad2684f9", "name": "Commented-code block (5 lines) in tests/test_services/test_balance_resolver.py:1243", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_services/test_balance_resolver.py:1243"}, "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-a95c6b6e02f48851", "name": "Commented-code block (6 lines) in tests/test_services/test_balance_calculator_hysa.py:939", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_services/test_balance_calculator_hysa.py:939"}, "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-f82da01882b0255e", "name": "Commented-code block (5 lines) in tests/test_services/test_retirement_dashboard_service.py:79", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_services/test_retirement_dashboard_service.py:79"}, "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-80535fb77663150e", "name": "Legacy-named symbol `test_encrypt_uses_primary_not_old` in tests/test_services/test_mfa_service.py:802", "shortDescription": {"text": "Legacy-named symbol `test_encrypt_uses_primary_not_old` in tests/test_services/test_mfa_service.py:802"}, "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-7e61f965370755f6", "name": "Legacy-named symbol `test_all_uncleared_matches_legacy` in tests/test_services/test_balance_calculator_entries.py:1776", "shortDescription": {"text": "Legacy-named symbol `test_all_uncleared_matches_legacy` in tests/test_services/test_balance_calculator_entries.py:1776"}, "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-06d8796d2ad58a0a", "name": "Commented-code block (7 lines) in tests/test_services/test_loan_payment_service.py:65", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_services/test_loan_payment_service.py:65"}, "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-e1b2126c1821c966", "name": "Legacy-named symbol `test_change_password_new_equals_old` in tests/test_services/test_auth_service.py:658", "shortDescription": {"text": "Legacy-named symbol `test_change_password_new_equals_old` in tests/test_services/test_auth_service.py:658"}, "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-fef28fd04dbec68d", "name": "Commented-code block (5 lines) in tests/test_services/test_auth_service.py:1169", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_services/test_auth_service.py:1169"}, "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-c0fe6ebd9c452d59", "name": "Commented-code block (5 lines) in tests/test_services/test_companion_service.py:291", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_services/test_companion_service.py:291"}, "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-3b9835aa75d94cb9", "name": "Commented-code block (9 lines) in tests/test_services/test_income_service.py:566", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_services/test_income_service.py:566"}, "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-4f69d1fc121ab404", "name": "Commented-code block (7 lines) in tests/test_services/test_amortization_engine.py:412", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_services/test_amortization_engine.py:412"}, "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-304192a7adcab295", "name": "Commented-code block (6 lines) in tests/test_routes/test_base_navbar.py:19", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_routes/test_base_navbar.py:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb8e0eb9a9d9b02b", "name": "Commented-code block (9 lines) in tests/test_routes/test_errors.py:67", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_routes/test_errors.py:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3bfe1ef0299c8fa", "name": "Commented-code block (6 lines) in tests/test_routes/test_c24_range_check_sweep.py:770", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_routes/test_c24_range_check_sweep.py:770"}, "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-9cacaffb243c52a8", "name": "Commented-code block (5 lines) in tests/test_routes/test_loan.py:116", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_routes/test_loan.py:116"}, "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-7f6d99f185f62268", "name": "Commented-code block (7 lines) in tests/test_routes/test_c27_input_validation_sweep.py:531", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_routes/test_c27_input_validation_sweep.py:531"}, "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-14549ff1c4dcfd2f", "name": "Commented-code block (7 lines) in tests/test_routes/test_c19_credit_payback_unique.py:907", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_routes/test_c19_credit_payback_unique.py:907"}, "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-d852c65abe1c5e0c", "name": "Commented-code block (10 lines) in tests/test_routes/test_savings.py:399", "shortDescription": {"text": "Commented-code block (10 lines) in tests/test_routes/test_savings.py:399"}, "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-849f675a155e4e4d", "name": "Commented-code block (6 lines) in tests/test_routes/test_grid.py:215", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_routes/test_grid.py:215"}, "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-720e509b3b2657e3", "name": "Commented-code block (6 lines) in tests/test_routes/test_recurrence_form_helpers.py:625", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_routes/test_recurrence_form_helpers.py:625"}, "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-6feaab8e8591faf3", "name": "Commented-code block (7 lines) in tests/test_routes/test_accounts.py:617", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_routes/test_accounts.py:617"}, "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-ea48d8aac70602e2", "name": "Commented-code block (9 lines) in tests/test_routes/test_auth.py:194", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_routes/test_auth.py: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-5b95883f20f09ea8", "name": "Commented-code block (5 lines) in tests/test_routes/test_investment.py:663", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_routes/test_investment.py:663"}, "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-99b6ff31b475602e", "name": "Commented-code block (6 lines) in tests/test_routes/test_hysa.py:42", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_routes/test_hysa.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62abf3dd1fb9085b", "name": "Legacy-named symbol `project_requirements_v2` in tests/test_routes/test_grid_regression.py:4", "shortDescription": {"text": "Legacy-named symbol `project_requirements_v2` in tests/test_routes/test_grid_regression.py:4"}, "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-481dd3ab7ce58e70", "name": "Commented-code block (8 lines) in tests/test_routes/test_grid_regression.py:360", "shortDescription": {"text": "Commented-code block (8 lines) in tests/test_routes/test_grid_regression.py:360"}, "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-1f0680029e84fb50", "name": "Commented-code block (7 lines) in tests/test_routes/test_templates.py:1444", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_routes/test_templates.py:1444"}, "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-a65690ec43b493e9", "name": "Commented-code block (7 lines) in tests/test_utils/test_balance_predicates.py:708", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_utils/test_balance_predicates.py:708"}, "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-d93bcffe6725c13d", "name": "Commented-code block (6 lines) in tests/test_utils/test_logging_config.py:134", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_utils/test_logging_config.py:134"}, "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-6b0d677b6638c57c", "name": "Commented-code block (7 lines) in tests/test_utils/test_session_helpers.py:288", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_utils/test_session_helpers.py:288"}, "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-b60a00eebb60189e", "name": "Commented-code block (5 lines) in tests/test_deploy/test_container_hardening.py:381", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_container_hardening.py:381"}, "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-053f3c30f7eab312", "name": "Commented-code block (5 lines) in tests/test_deploy/test_proxy_trust_and_headers.py:634", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_proxy_trust_and_headers.py:634"}, "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-d740477339a57f09", "name": "Commented-code block (5 lines) in tests/test_deploy/test_seed_credential_hygiene.py:273", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_seed_credential_hygiene.py:273"}, "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-4798a4918f0b92b6", "name": "Commented-code block (5 lines) in tests/test_deploy/test_deploy_configs.py:183", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_deploy_configs.py:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6f40959771d0e7d", "name": "Commented-code block (5 lines) in tests/test_deploy/test_internal_tls_and_access.py:752", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_internal_tls_and_access.py:752"}, "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-17fdfb5125dd20c9", "name": "Legacy-named symbol `verify_backup` in tests/test_deploy/test_docker_secrets_and_env_hygiene.py:55", "shortDescription": {"text": "Legacy-named symbol `verify_backup` in tests/test_deploy/test_docker_secrets_and_env_hygiene.py:55"}, "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-ac27a2c3abb64086", "name": "Commented-code block (6 lines) in tests/test_deploy/test_docker_secrets_and_env_hygiene.py:57", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_deploy/test_docker_secrets_and_env_hygiene.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21e77dc01dbda312", "name": "Commented-code block (9 lines) in tests/test_integration/test_loan_unified_figures.py:24", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_integration/test_loan_unified_figures.py:24"}, "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-78631618d081dff7", "name": "Commented-code block (6 lines) in tests/test_integration/test_workflows.py:109", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_integration/test_workflows.py:109"}, "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-da5d60d72d2666d3", "name": "Commented-code block (6 lines) in tests/test_integration/test_rate_limiter.py:108", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_integration/test_rate_limiter.py:108"}, "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-09d52a84baa046d2", "name": "Commented-code block (7 lines) in tests/test_integration/test_security_headers.py:34", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_integration/test_security_headers.py:34"}, "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-5b6da0f4d6e23ba9", "name": "Commented-code block (6 lines) in tests/test_integration/test_cross_page_balance_equality.py:78", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_integration/test_cross_page_balance_equality.py:78"}, "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-cc5d456f233febcb", "name": "Commented-code block (6 lines) in tests/test_integration/test_loan_resolver_single_source.py:60", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_integration/test_loan_resolver_single_source.py:60"}, "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-dc99847b3f2202ad", "name": "Commented-code block (6 lines) in tests/test_integration/test_template_no_money_arithmetic.py:36", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_integration/test_template_no_money_arithmetic.py:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2158a7098816efe9", "name": "Commented-code block (9 lines) in tests/test_integration/test_loan_principal_settles.py:85", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_integration/test_loan_principal_settles.py:85"}, "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-5997c1ba2a3c3b0b", "name": "Commented-code block (12 lines) in tests/test_performance/test_trigger_overhead.py:234", "shortDescription": {"text": "Commented-code block (12 lines) in tests/test_performance/test_trigger_overhead.py:234"}, "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-d9bee50c4a722122", "name": "Legacy-named symbol `_rename_constraint_if_legacy` in tests/test_models/test_c42_salary_indexes_and_fk_naming.py:37", "shortDescription": {"text": "Legacy-named symbol `_rename_constraint_if_legacy` in tests/test_models/test_c42_salary_indexes_and_fk_naming.py:37"}, "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-862d456498084d83", "name": "Commented-code block (12 lines) in tests/test_models/test_c42_salary_indexes_and_fk_naming.py:52", "shortDescription": {"text": "Commented-code block (12 lines) in tests/test_models/test_c42_salary_indexes_and_fk_naming.py:52"}, "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-554ae661dae7a978", "name": "Commented-code block (7 lines) in tests/test_models/test_c40_account_id_backfill.py:23", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_models/test_c40_account_id_backfill.py:23"}, "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-608684d0f4b4c602", "name": "Commented-code block (5 lines) in tests/test_models/test_c25_column_invariants.py:38", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_models/test_c25_column_invariants.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c4da6e717a9ab21", "name": "Commented-code block (5 lines) in tests/test_models/test_pay_schedule.py:61", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_models/test_pay_schedule.py:61"}, "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-82131a781dcb7ea3", "name": "Commented-code block (11 lines) in tests/test_models/test_c41_baseline_unique_migration.py:49", "shortDescription": {"text": "Commented-code block (11 lines) in tests/test_models/test_c41_baseline_unique_migration.py:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-703efb9da730439b", "name": "Commented-code block (17 lines) in tests/test_models/test_audit_migration.py:41", "shortDescription": {"text": "Commented-code block (17 lines) in tests/test_models/test_audit_migration.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ecaeb0759748fbe", "name": "Commented-code block (11 lines) in tests/test_models/test_loan_anchor_backfill.py:377", "shortDescription": {"text": "Commented-code block (11 lines) in tests/test_models/test_loan_anchor_backfill.py:377"}, "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-afae70e4bc27e6ae", "name": "Commented-code block (6 lines) in tests/test_models/test_loan_params_demoted.py:54", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_models/test_loan_params_demoted.py:54"}, "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-20a32447ad28697d", "name": "Commented-code block (6 lines) in tests/test_models/test_anchor_fk_deferrable.py:32", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_models/test_anchor_fk_deferrable.py:32"}, "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-517d159b6d80ff5f", "name": "Commented-code block (12 lines) in tests/test_models/test_c43_ondelete_and_naming_convention.py:84", "shortDescription": {"text": "Commented-code block (12 lines) in tests/test_models/test_c43_ondelete_and_naming_convention.py:84"}, "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-88b708f654ed72d0", "name": "Commented-code block (5 lines) in tests/manual/verify_mobile_grid_commit10.py:300", "shortDescription": {"text": "Commented-code block (5 lines) in tests/manual/verify_mobile_grid_commit10.py:300"}, "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-955488b9652acfab", "name": "Commented-code block (6 lines) in tests/manual/verify_mobile_grid_commit7.py:395", "shortDescription": {"text": "Commented-code block (6 lines) in tests/manual/verify_mobile_grid_commit7.py: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-aa3bbe9f67f4b334", "name": "Commented-code block (9 lines) in tests/test_scripts/test_integrity_check.py:326", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_scripts/test_integrity_check.py:326"}, "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-f1bc3202c582149c", "name": "Commented-code block (6 lines) in tests/test_schemas/test_c25_boundary_inclusivity.py:183", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_schemas/test_c25_boundary_inclusivity.py:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01089cbd33f2e568", "name": "Commented-code block (12 lines) in scripts/init_database.py:45", "shortDescription": {"text": "Commented-code block (12 lines) in scripts/init_database.py:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-006f7477f3a65f38", "name": "Commented-code block (7 lines) in scripts/rotate_totp_key.py:184", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/rotate_totp_key.py:184"}, "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-54de36b99cf3829f", "name": "Commented-code block (5 lines) in scripts/seed_companion.py:23", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed_companion.py:23"}, "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-2b7bdaa69e7e454b", "name": "Commented-code block (5 lines) in scripts/seed_user.py:59", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed_user.py:59"}, "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-04beba62ad7f4e3e", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/seed_user.py:216", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/seed_user.py:216"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a2feb339c747b96", "name": "Commented-code block (5 lines) in scripts/build_test_template.py:88", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/build_test_template.py:88"}, "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-79a6b448acccc207", "name": "Commented-code block (5 lines) in scripts/seed_ref_tables.py:23", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed_ref_tables.py:23"}, "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-a418d8752f538699", "name": "Commented-code block (6 lines) in scripts/reset_mfa.py:56", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/reset_mfa.py:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b64602448a593e4d", "name": "Commented-code block (5 lines) in scripts/seed_tax_brackets.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed_tax_brackets.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5324688d2d348587", "name": "Commented-code block (11 lines) in scripts/audit_cleanup.py:44", "shortDescription": {"text": "Commented-code block (11 lines) in scripts/audit_cleanup.py:44"}, "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-76b9d8d592a380e0", "name": "Commented-code block (6 lines) in scripts/rotate_sessions.py:70", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/rotate_sessions.py:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b649ef02854392d6", "name": "Legacy-named symbol `verify_backup` in scripts/integrity_check.py:9", "shortDescription": {"text": "Legacy-named symbol `verify_backup` in scripts/integrity_check.py:9"}, "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-e5b0157308bec293", "name": "Commented-code block (7 lines) in scripts/integrity_check.py:462", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/integrity_check.py:462"}, "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-5387b3c56633cba9", "name": "Commented-code block (6 lines) in app/__init__.py:68", "shortDescription": {"text": "Commented-code block (6 lines) in app/__init__.py:68"}, "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-5958cedd9e3ebc57", "name": "Commented-code block (19 lines) in app/audit_infrastructure.py:46", "shortDescription": {"text": "Commented-code block (19 lines) in app/audit_infrastructure.py:46"}, "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-5d524df3bd578077", "name": "Commented-code block (6 lines) in app/ref_cache.py:96", "shortDescription": {"text": "Commented-code block (6 lines) in app/ref_cache.py:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44a3e70034668049", "name": "Commented-code block (6 lines) in app/config.py:18", "shortDescription": {"text": "Commented-code block (6 lines) in app/config.py:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cdd10edc44efa46f", "name": "Commented-code block (5 lines) in app/ref_seeds.py:35", "shortDescription": {"text": "Commented-code block (5 lines) in app/ref_seeds.py:35"}, "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-a63d18f3ab97fd25", "name": "Commented-code block (6 lines) in app/jinja_globals.py:50", "shortDescription": {"text": "Commented-code block (6 lines) in app/jinja_globals.py:50"}, "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-67eaeb7fcf5a15af", "name": "Commented-code block (5 lines) in app/jinja_filters.py:25", "shortDescription": {"text": "Commented-code block (5 lines) in app/jinja_filters.py:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c4a582c008fd2f5", "name": "Commented-code block (8 lines) in app/extensions.py:21", "shortDescription": {"text": "Commented-code block (8 lines) in app/extensions.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05da4be2ac2cbd88", "name": "Commented-code block (12 lines) in app/models/savings_goal.py:80", "shortDescription": {"text": "Commented-code block (12 lines) in app/models/savings_goal.py:80"}, "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-b6085a31375eb2bb", "name": "Commented-code block (5 lines) in app/models/account.py:49", "shortDescription": {"text": "Commented-code block (5 lines) in app/models/account.py:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17ee5d6b60640c7b", "name": "Commented-code block (5 lines) in app/models/__init__.py:61", "shortDescription": {"text": "Commented-code block (5 lines) in app/models/__init__.py:61"}, "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-3fb8a487b1baee4e", "name": "Commented-code block (8 lines) in app/models/ref.py:117", "shortDescription": {"text": "Commented-code block (8 lines) in app/models/ref.py:117"}, "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-b0054b332a6e5053", "name": "Commented-code block (9 lines) in app/models/loan_features.py:42", "shortDescription": {"text": "Commented-code block (9 lines) in app/models/loan_features.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4300f9eb07995eb5", "name": "Commented-code block (11 lines) in app/models/interest_params.py:22", "shortDescription": {"text": "Commented-code block (11 lines) in app/models/interest_params.py:22"}, "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-c71e18070f894216", "name": "Commented-code block (10 lines) in app/models/transaction.py:52", "shortDescription": {"text": "Commented-code block (10 lines) in app/models/transaction.py:52"}, "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-1c8fd6a87012309f", "name": "Commented-code block (10 lines) in app/models/investment_params.py:38", "shortDescription": {"text": "Commented-code block (10 lines) in app/models/investment_params.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3919ff40c0054d8", "name": "Commented-code block (6 lines) in app/models/loan_anchor_event.py:80", "shortDescription": {"text": "Commented-code block (6 lines) in app/models/loan_anchor_event.py:80"}, "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-40c3925bda9abc31", "name": "Commented-code block (8 lines) in app/models/pay_period.py:18", "shortDescription": {"text": "Commented-code block (8 lines) in app/models/pay_period.py:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70ee29153897d61b", "name": "Commented-code block (9 lines) in app/models/scenario.py:18", "shortDescription": {"text": "Commented-code block (9 lines) in app/models/scenario.py:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-124457277c25afae", "name": "Commented-code block (7 lines) in app/models/transfer.py:50", "shortDescription": {"text": "Commented-code block (7 lines) in app/models/transfer.py:50"}, "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-37205f7fc580fa12", "name": "Commented-code block (6 lines) in app/models/salary_raise.py:59", "shortDescription": {"text": "Commented-code block (6 lines) in app/models/salary_raise.py:59"}, "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-1a70a009becd7581", "name": "Commented-code block (6 lines) in app/models/calibration_override.py:53", "shortDescription": {"text": "Commented-code block (6 lines) in app/models/calibration_override.py:53"}, "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-769463a261102660", "name": "Commented-code block (5 lines) in app/models/paycheck_deduction.py:58", "shortDescription": {"text": "Commented-code block (5 lines) in app/models/paycheck_deduction.py:58"}, "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-b803108966ddd74a", "name": "Commented-code block (6 lines) in app/models/transaction_template.py:48", "shortDescription": {"text": "Commented-code block (6 lines) in app/models/transaction_template.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e20495d0ff7bffa", "name": "Commented-code block (10 lines) in app/models/pension_profile.py:44", "shortDescription": {"text": "Commented-code block (10 lines) in app/models/pension_profile.py:44"}, "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-710f4d411bb87650", "name": "Commented-code block (6 lines) in app/models/tax_config.py:57", "shortDescription": {"text": "Commented-code block (6 lines) in app/models/tax_config.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d34f34b62636ad08", "name": "Commented-code block (7 lines) in app/models/user.py:44", "shortDescription": {"text": "Commented-code block (7 lines) in app/models/user.py:44"}, "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-2bf6a289a2a1e07f", "name": "Commented-code block (5 lines) in app/models/loan_params.py:65", "shortDescription": {"text": "Commented-code block (5 lines) in app/models/loan_params.py:65"}, "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-84995584b8b27cbb", "name": "Commented-code block (7 lines) in app/models/transfer_template.py:52", "shortDescription": {"text": "Commented-code block (7 lines) in app/models/transfer_template.py:52"}, "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-9b4794e3426c601c", "name": "Commented-code block (9 lines) in app/static/sw.js:20", "shortDescription": {"text": "Commented-code block (9 lines) in app/static/sw.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcec7d60435d2465", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/static/sw.js:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/static/sw.js:89"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3807f16896b7ea2", "name": "Commented-code block (7 lines) in app/static/js/retirement_gap_chart.js:18", "shortDescription": {"text": "Commented-code block (7 lines) in app/static/js/retirement_gap_chart.js:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-161b6728abe6edcd", "name": "Commented-code block (6 lines) in app/static/js/mobile_grid.js:20", "shortDescription": {"text": "Commented-code block (6 lines) in app/static/js/mobile_grid.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47ec51e622d53a18", "name": "Commented-code block (7 lines) in app/static/js/progress_bar.js:62", "shortDescription": {"text": "Commented-code block (7 lines) in app/static/js/progress_bar.js:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fab87cc3e6800e22", "name": "Commented-code block (10 lines) in app/static/js/app.js:8", "shortDescription": {"text": "Commented-code block (10 lines) in app/static/js/app.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b25e0b92eb188e6c", "name": "Commented-code block (6 lines) in app/static/js/grid_edit.js:16", "shortDescription": {"text": "Commented-code block (6 lines) in app/static/js/grid_edit.js:16"}, "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-a5ac9b16028d04ba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/static/js/grid_edit.js:348", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/static/js/grid_edit.js:348"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02f8b8b12ad4a58e", "name": "Commented-code block (5 lines) in app/static/js/categories.js:94", "shortDescription": {"text": "Commented-code block (5 lines) in app/static/js/categories.js:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13cfa054728477e4", "name": "Commented-code block (6 lines) in app/static/js/command_palette.js:83", "shortDescription": {"text": "Commented-code block (6 lines) in app/static/js/command_palette.js:83"}, "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-c34bade1b97118ec", "name": "Commented-code block (5 lines) in app/static/js/chart_variance.js:108", "shortDescription": {"text": "Commented-code block (5 lines) in app/static/js/chart_variance.js:108"}, "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-db3f63453ad306a0", "name": "Commented-code block (5 lines) in app/static/js/calendar.js:23", "shortDescription": {"text": "Commented-code block (5 lines) in app/static/js/calendar.js:23"}, "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-3f337c30628a5069", "name": "Commented-code block (6 lines) in app/utils/auth_helpers.py:444", "shortDescription": {"text": "Commented-code block (6 lines) in app/utils/auth_helpers.py:444"}, "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-5698e3192f8aa33f", "name": "Commented-code block (7 lines) in app/utils/dates.py:15", "shortDescription": {"text": "Commented-code block (7 lines) in app/utils/dates.py:15"}, "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-889ba0eabe49f57d", "name": "Commented-code block (6 lines) in app/utils/session_helpers.py:131", "shortDescription": {"text": "Commented-code block (6 lines) in app/utils/session_helpers.py:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7ee508e0969c9bd", "name": "Legacy-named symbol `totp_encryption_key_old` in app/utils/logging_config.py:260", "shortDescription": {"text": "Legacy-named symbol `totp_encryption_key_old` in app/utils/logging_config.py:260"}, "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-b0b9b2934aa90c1f", "name": "Commented-code block (5 lines) in app/utils/logging_config.py:120", "shortDescription": {"text": "Commented-code block (5 lines) in app/utils/logging_config.py:120"}, "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-ece40e2520a0938a", "name": "Commented-code block (6 lines) in app/utils/security_events.py:111", "shortDescription": {"text": "Commented-code block (6 lines) in app/utils/security_events.py:111"}, "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-5bf7a536ab68652f", "name": "Commented-code block (6 lines) in app/utils/account_validation.py:183", "shortDescription": {"text": "Commented-code block (6 lines) in app/utils/account_validation.py:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a55bfa3ab73e8f4", "name": "Commented-code block (5 lines) in app/routes/debt_strategy.py:46", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/debt_strategy.py:46"}, "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-ae8137f58a25a9bb", "name": "Commented-code block (11 lines) in app/routes/entries.py:38", "shortDescription": {"text": "Commented-code block (11 lines) in app/routes/entries.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9350b45e4072507d", "name": "Commented-code block (5 lines) in app/routes/health.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/health.py:47"}, "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-4c995fae1cbb828e", "name": "Commented-code block (5 lines) in app/routes/_recurrence_form_helpers.py:221", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/_recurrence_form_helpers.py:221"}, "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-9bc3c6c5e7af0aab", "name": "Commented-code block (6 lines) in app/routes/grid.py:42", "shortDescription": {"text": "Commented-code block (6 lines) in app/routes/grid.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a5e4272c8255a67", "name": "Commented-code block (13 lines) in app/routes/analytics.py:233", "shortDescription": {"text": "Commented-code block (13 lines) in app/routes/analytics.py:233"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0449a840a3507c0", "name": "Commented-code block (5 lines) in app/routes/companion.py:108", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/companion.py:108"}, "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-8b0ad09ff1a5eeef", "name": "Commented-code block (10 lines) in app/routes/obligations.py:119", "shortDescription": {"text": "Commented-code block (10 lines) in app/routes/obligations.py:119"}, "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-7cfd08ba8d1dba2e", "name": "Commented-code block (8 lines) in app/routes/templates.py:57", "shortDescription": {"text": "Commented-code block (8 lines) in app/routes/templates.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c504922e58834d4", "name": "Commented-code block (5 lines) in app/routes/investment.py:72", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/investment.py:72"}, "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-f1362a9d38652eee", "name": "Commented-code block (7 lines) in app/routes/categories.py:97", "shortDescription": {"text": "Commented-code block (7 lines) in app/routes/categories.py:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a49f72b0fc869af6", "name": "Commented-code block (5 lines) in app/routes/retirement.py:45", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/retirement.py:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf74afb5f227a8a0", "name": "Commented-code block (8 lines) in app/routes/settings.py:45", "shortDescription": {"text": "Commented-code block (8 lines) in app/routes/settings.py:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1326fe89ef156e21", "name": "Commented-code block (5 lines) in app/routes/static_pass.py:52", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/static_pass.py:52"}, "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-54c19be4a91cfa26", "name": "Commented-code block (7 lines) in app/routes/transactions/create.py:121", "shortDescription": {"text": "Commented-code block (7 lines) in app/routes/transactions/create.py:121"}, "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-8564377cdcf8fc10", "name": "Commented-code block (11 lines) in app/routes/transactions/carry_forward.py:119", "shortDescription": {"text": "Commented-code block (11 lines) in app/routes/transactions/carry_forward.py:119"}, "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-c1e100c3d9742e93", "name": "Commented-code block (6 lines) in app/routes/transactions/mutations.py:52", "shortDescription": {"text": "Commented-code block (6 lines) in app/routes/transactions/mutations.py:52"}, "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-c96d9201b6cb66fc", "name": "Commented-code block (7 lines) in app/routes/transactions/forms.py:96", "shortDescription": {"text": "Commented-code block (7 lines) in app/routes/transactions/forms.py:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07088c94a9a60b7f", "name": "Commented-code block (5 lines) in app/routes/transactions/_helpers.py:39", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/transactions/_helpers.py:39"}, "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-33efee121532141e", "name": "Commented-code block (6 lines) in app/routes/auth/mfa.py:124", "shortDescription": {"text": "Commented-code block (6 lines) in app/routes/auth/mfa.py:124"}, "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-48e3c273c3f42970", "name": "Commented-code block (7 lines) in app/routes/auth/credentials.py:74", "shortDescription": {"text": "Commented-code block (7 lines) in app/routes/auth/credentials.py:74"}, "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-50e98902d6cfbe81", "name": "Commented-code block (5 lines) in app/routes/auth/session_security.py:60", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/auth/session_security.py:60"}, "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-ad9d22fc0d7ab70d", "name": "Commented-code block (5 lines) in app/routes/auth/_helpers.py:61", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/auth/_helpers.py:61"}, "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-b6ee1459c30506e2", "name": "Commented-code block (6 lines) in app/routes/accounts/__init__.py:43", "shortDescription": {"text": "Commented-code block (6 lines) in app/routes/accounts/__init__.py:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1805462596ba0c72", "name": "Commented-code block (6 lines) in app/routes/accounts/types.py:66", "shortDescription": {"text": "Commented-code block (6 lines) in app/routes/accounts/types.py:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56b9f693c887b2f5", "name": "Commented-code block (11 lines) in app/routes/accounts/anchor.py:95", "shortDescription": {"text": "Commented-code block (11 lines) in app/routes/accounts/anchor.py:95"}, "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-6fe5c17e70378417", "name": "Commented-code block (7 lines) in app/routes/accounts/crud.py:145", "shortDescription": {"text": "Commented-code block (7 lines) in app/routes/accounts/crud.py:145"}, "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-fd73f5b299588a1f", "name": "Commented-code block (8 lines) in app/routes/accounts/detail.py:153", "shortDescription": {"text": "Commented-code block (8 lines) in app/routes/accounts/detail.py:153"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27b04a03d0f5fd35", "name": "Commented-code block (6 lines) in app/routes/loan/params.py:78", "shortDescription": {"text": "Commented-code block (6 lines) in app/routes/loan/params.py:78"}, "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-3fa51c10656c0cb9", "name": "Commented-code block (5 lines) in app/routes/loan/payment_transfer.py:104", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/loan/payment_transfer.py:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d80aeaf1de9460ae", "name": "Commented-code block (5 lines) in app/routes/loan/dashboard.py:591", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/loan/dashboard.py:591"}, "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-46447c8ebc53d752", "name": "Commented-code block (7 lines) in app/routes/loan/_helpers.py:40", "shortDescription": {"text": "Commented-code block (7 lines) in app/routes/loan/_helpers.py: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-48c499ff55c86177", "name": "Commented-code block (12 lines) in app/routes/loan/escrow_rates.py:85", "shortDescription": {"text": "Commented-code block (12 lines) in app/routes/loan/escrow_rates.py:85"}, "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-6d888fc0b57bb08a", "name": "Commented-code block (5 lines) in app/routes/loan/calculators.py:443", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/loan/calculators.py:443"}, "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-4469b79d980e1429", "name": "Commented-code block (8 lines) in app/routes/transfers/templates.py:179", "shortDescription": {"text": "Commented-code block (8 lines) in app/routes/transfers/templates.py:179"}, "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-5a9b8f236e66d97c", "name": "Commented-code block (5 lines) in app/routes/transfers/mutations.py:48", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/transfers/mutations.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fea23ce380d8ced", "name": "Commented-code block (9 lines) in app/routes/salary/items.py:96", "shortDescription": {"text": "Commented-code block (9 lines) in app/routes/salary/items.py:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d43b14068b1f5ea3", "name": "Commented-code block (5 lines) in app/routes/salary/calibration.py:140", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/salary/calibration.py: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-f3d5918ce4c873d3", "name": "Commented-code block (7 lines) in app/routes/salary/_helpers.py:70", "shortDescription": {"text": "Commented-code block (7 lines) in app/routes/salary/_helpers.py:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7358b40115b9bd3a", "name": "Commented-code block (6 lines) in app/routes/salary/profiles.py:230", "shortDescription": {"text": "Commented-code block (6 lines) in app/routes/salary/profiles.py:230"}, "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-6710cae9b790f6df", "name": "Commented-code block (5 lines) in app/routes/salary/tax_config.py:73", "shortDescription": {"text": "Commented-code block (5 lines) in app/routes/salary/tax_config.py:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68b7f423257678ea", "name": "Commented-code block (12 lines) in app/services/dashboard_pulse_service.py:107", "shortDescription": {"text": "Commented-code block (12 lines) in app/services/dashboard_pulse_service.py:107"}, "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-f9bdf790c70267b2", "name": "Commented-code block (8 lines) in app/services/entry_service.py:203", "shortDescription": {"text": "Commented-code block (8 lines) in app/services/entry_service.py:203"}, "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-e07b30cae223bfa7", "name": "Commented-code block (6 lines) in app/services/dashboard_service.py:304", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/dashboard_service.py:304"}, "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-f94f61f0aa100888", "name": "Commented-code block (5 lines) in app/services/transaction_service.py:117", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/transaction_service.py:117"}, "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-f1a9f1390a663ae9", "name": "Commented-code block (5 lines) in app/services/budget_variance_service.py:249", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/budget_variance_service.py:249"}, "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-c853e2e0f7251eca", "name": "Commented-code block (5 lines) in app/services/balance_calculator.py:377", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/balance_calculator.py:377"}, "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-9fcb013c08aafaa1", "name": "Commented-code block (5 lines) in app/services/companion_service.py:136", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/companion_service.py:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3db9528e6c367211", "name": "Commented-code block (6 lines) in app/services/transfer_recurrence.py:59", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/transfer_recurrence.py:59"}, "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-45923ebb517fc045", "name": "Commented-code block (9 lines) in app/services/recurrence_engine.py:403", "shortDescription": {"text": "Commented-code block (9 lines) in app/services/recurrence_engine.py:403"}, "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-326f1d782a4c259b", "name": "Commented-code block (5 lines) in app/services/auth_service.py:226", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/auth_service.py:226"}, "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-0b5bba1cc6d4e075", "name": "Commented-code block (7 lines) in app/services/entry_credit_workflow.py:93", "shortDescription": {"text": "Commented-code block (7 lines) in app/services/entry_credit_workflow.py:93"}, "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-da117c96e1fa376c", "name": "Commented-code block (5 lines) in app/services/spending_trend_service.py:53", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/spending_trend_service.py:53"}, "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-2cdf4137d750ac51", "name": "Commented-code block (19 lines) in app/services/calendar_service.py:288", "shortDescription": {"text": "Commented-code block (19 lines) in app/services/calendar_service.py:288"}, "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-78f0baeb6c337772", "name": "Commented-code block (13 lines) in app/services/pay_period_admin.py:48", "shortDescription": {"text": "Commented-code block (13 lines) in app/services/pay_period_admin.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5db7d7890b0bde0", "name": "Commented-code block (7 lines) in app/services/retirement_dashboard_service.py:53", "shortDescription": {"text": "Commented-code block (7 lines) in app/services/retirement_dashboard_service.py:53"}, "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-8cabd5c805483963", "name": "Commented-code block (9 lines) in app/services/growth_engine.py:86", "shortDescription": {"text": "Commented-code block (9 lines) in app/services/growth_engine.py:86"}, "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-8e9c19bc4cee2dc9", "name": "Commented-code block (5 lines) in app/services/investment_dashboard_service.py:72", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/investment_dashboard_service.py:72"}, "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-766c6e18f2fb9ac4", "name": "Commented-code block (5 lines) in app/services/credit_workflow.py:214", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/credit_workflow.py:214"}, "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-a9fd900283ba6426", "name": "Commented-code block (9 lines) in app/services/account_projection.py:99", "shortDescription": {"text": "Commented-code block (9 lines) in app/services/account_projection.py:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e43fdc75fba9cca", "name": "Commented-code block (5 lines) in app/services/pension_calculator.py:96", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/pension_calculator.py:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-858c72b198c40f9e", "name": "Commented-code block (5 lines) in app/services/grid_view_service.py:129", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/grid_view_service.py:129"}, "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-50c7525b88791d6f", "name": "Commented-code block (10 lines) in app/services/rate_period_engine.py:645", "shortDescription": {"text": "Commented-code block (10 lines) in app/services/rate_period_engine.py:645"}, "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-2f37d7c352c61f93", "name": "Commented-code block (7 lines) in app/services/mfa_service.py:23", "shortDescription": {"text": "Commented-code block (7 lines) in app/services/mfa_service.py:23"}, "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-f5a2218b13519dc0", "name": "Commented-code block (10 lines) in app/services/csv_export_service.py:26", "shortDescription": {"text": "Commented-code block (10 lines) in app/services/csv_export_service.py:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca39097ce1dc7301", "name": "Commented-code block (6 lines) in app/services/obligations_aggregator.py:51", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/obligations_aggregator.py:51"}, "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-3db05ef1ec258c43", "name": "Commented-code block (8 lines) in app/services/loan_payment_service.py:133", "shortDescription": {"text": "Commented-code block (8 lines) in app/services/loan_payment_service.py:133"}, "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-522ae400b23a0654", "name": "Commented-code block (6 lines) in app/services/balance_resolver.py:235", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/balance_resolver.py:235"}, "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-31eb213f8a739ad1", "name": "Commented-code block (6 lines) in app/services/income_service.py:230", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/income_service.py:230"}, "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-014c81a2ecb37eeb", "name": "Commented-code block (5 lines) in app/services/account_service.py:173", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/account_service.py: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-c35668bbcd8844c8", "name": "Commented-code block (5 lines) in app/services/state_machine.py:145", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/state_machine.py:145"}, "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-59fd8a1333132e09", "name": "Commented-code block (6 lines) in app/services/transfer_service.py:227", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/transfer_service.py:227"}, "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-d6e2951608056391", "name": "Commented-code block (5 lines) in app/services/anchor_service.py:120", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/anchor_service.py:120"}, "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-21aa20da85d07b46", "name": "Commented-code block (5 lines) in app/services/paycheck_calculator.py:220", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/paycheck_calculator.py:220"}, "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-ec8db35c42282967", "name": "Commented-code block (7 lines) in app/services/pay_schedule_service.py:27", "shortDescription": {"text": "Commented-code block (7 lines) in app/services/pay_schedule_service.py:27"}, "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-b525ecc585b54ab0", "name": "Commented-code block (6 lines) in app/services/savings_dashboard_service/_orchestrator.py:109", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/savings_dashboard_service/_orchestrator.py:109"}, "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-99e8fb0fbd495330", "name": "Commented-code block (6 lines) in app/services/savings_dashboard_service/_goals.py:143", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/savings_dashboard_service/_goals.py:143"}, "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-2a2d17dadfc8d495", "name": "Commented-code block (7 lines) in app/services/savings_dashboard_service/_projections.py:64", "shortDescription": {"text": "Commented-code block (7 lines) in app/services/savings_dashboard_service/_projections.py:64"}, "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-00b07ca3f928ea59", "name": "Commented-code block (9 lines) in app/services/savings_dashboard_service/_data.py:69", "shortDescription": {"text": "Commented-code block (9 lines) in app/services/savings_dashboard_service/_data.py:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7184948384968213", "name": "Commented-code block (9 lines) in app/services/savings_dashboard_service/_metrics.py:82", "shortDescription": {"text": "Commented-code block (9 lines) in app/services/savings_dashboard_service/_metrics.py:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4a4720bd736d4fe", "name": "Commented-code block (6 lines) in app/services/year_end_summary_service/_balances.py:168", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/year_end_summary_service/_balances.py:168"}, "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-a161a937cb1d02a1", "name": "Commented-code block (5 lines) in app/services/year_end_summary_service/_savings.py:214", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/year_end_summary_service/_savings.py:214"}, "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-092cf10966e60275", "name": "Commented-code block (5 lines) in app/services/loan_resolver/_periods.py:34", "shortDescription": {"text": "Commented-code block (5 lines) in app/services/loan_resolver/_periods.py:34"}, "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-a57d75ec717f082a", "name": "Commented-code block (6 lines) in app/services/loan_resolver/_state.py:124", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/loan_resolver/_state.py:124"}, "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-0e4454cf42dca4df", "name": "Commented-code block (6 lines) in app/services/loan_resolver/_payoff.py:171", "shortDescription": {"text": "Commented-code block (6 lines) in app/services/loan_resolver/_payoff.py:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82f3a4b8bb20a914", "name": "Commented-code block (8 lines) in app/services/carry_forward_service/_execute.py:88", "shortDescription": {"text": "Commented-code block (8 lines) in app/services/carry_forward_service/_execute.py:88"}, "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-f990d7a224379935", "name": "Commented-code block (7 lines) in app/services/carry_forward_service/_preview.py:392", "shortDescription": {"text": "Commented-code block (7 lines) in app/services/carry_forward_service/_preview.py:392"}, "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-23c50944c936f672", "name": "Commented-code block (8 lines) in app/services/carry_forward_service/_context.py:108", "shortDescription": {"text": "Commented-code block (8 lines) in app/services/carry_forward_service/_context.py:108"}, "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-d875a73685c6614d", "name": "Commented-code block (6 lines) in app/schemas/validation/loans.py:189", "shortDescription": {"text": "Commented-code block (6 lines) in app/schemas/validation/loans.py:189"}, "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-434b80e97871c9c8", "name": "Commented-code block (12 lines) in app/schemas/validation/salary.py:138", "shortDescription": {"text": "Commented-code block (12 lines) in app/schemas/validation/salary.py:138"}, "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-27735ce1aed68c02", "name": "Commented-code block (8 lines) in app/schemas/validation/savings.py:122", "shortDescription": {"text": "Commented-code block (8 lines) in app/schemas/validation/savings.py:122"}, "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-3569dcf2a842a894", "name": "Commented-code block (8 lines) in app/schemas/validation/transactions.py:52", "shortDescription": {"text": "Commented-code block (8 lines) in app/schemas/validation/transactions.py:52"}, "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-a10389d610970cf2", "name": "Commented-code block (9 lines) in app/schemas/validation/auth.py:22", "shortDescription": {"text": "Commented-code block (9 lines) in app/schemas/validation/auth.py:22"}, "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-c636aa414b3217ed", "name": "Commented-code block (5 lines) in app/schemas/validation/investments.py:90", "shortDescription": {"text": "Commented-code block (5 lines) in app/schemas/validation/investments.py:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02a781b79cc886e6", "name": "Commented-code block (6 lines) in app/schemas/validation/_helpers.py:24", "shortDescription": {"text": "Commented-code block (6 lines) in app/schemas/validation/_helpers.py:24"}, "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-2c0d9c13ad94340e", "name": "Commented-code block (5 lines) in tools/pylint/shekel_checkers.py:64", "shortDescription": {"text": "Commented-code block (5 lines) in tools/pylint/shekel_checkers.py:64"}, "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-e3cd6f6e439f670f", "name": "Commented-code block (7 lines) in migrations/env.py:57", "shortDescription": {"text": "Commented-code block (7 lines) in migrations/env.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b61df1c0edf9155", "name": "Commented-code block (6 lines) in migrations/versions/d477228fee56_c28_account_types_user_id_multi_tenant_.py:139", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/versions/d477228fee56_c28_account_types_user_id_multi_tenant_.py:139"}, "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-263319e31c335382", "name": "Commented-code block (6 lines) in migrations/versions/0dfd2537fecb_make_low_balance_threshold_not_null_.py:61", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/versions/0dfd2537fecb_make_low_balance_threshold_not_null_.py:61"}, "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-2652a08fe5c4ff75", "name": "Commented-code block (6 lines) in migrations/versions/b4b588a49a0c_c43_fk_ondelete_restrict_and_naming_.py:166", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/versions/b4b588a49a0c_c43_fk_ondelete_restrict_and_naming_.py:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-519ac5a5f0b97ab5", "name": "Commented-code block (6 lines) in migrations/versions/efffcf647644_add_account_id_column_to_transactions.py:54", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/versions/efffcf647644_add_account_id_column_to_transactions.py:54"}, "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-3b39a4985a326365", "name": "Commented-code block (5 lines) in migrations/versions/b7d2f4a619c5_drop_loan_params_interest_rate_dh56.py:144", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/versions/b7d2f4a619c5_drop_loan_params_interest_rate_dh56.py:144"}, "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-7b552b144a0a0df8", "name": "Commented-code block (5 lines) in migrations/versions/c5d20b701a4e_c25_boolean_notnull_and_server_default_sweep.py:102", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/versions/c5d20b701a4e_c25_boolean_notnull_and_server_default_sweep.py:102"}, "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-18eca51bd3433f66", "name": "Commented-code block (5 lines) in migrations/versions/cfb15e782f86_backfill_account_anchor_and_tighten_.py:73", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/versions/cfb15e782f86_backfill_account_anchor_and_tighten_.py:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c5d3c1fad74cf595", "name": "Commented-code block (7 lines) in migrations/versions/b71c4a8f5d3e_c24_marshmallow_range_check_sweep.py:98", "shortDescription": {"text": "Commented-code block (7 lines) in migrations/versions/b71c4a8f5d3e_c24_marshmallow_range_check_sweep.py:98"}, "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-8e495e85b2347df2", "name": "Commented-code block (6 lines) in migrations/versions/f96f26f326e4_add_security_event_columns_to_auth_.py:66", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/versions/f96f26f326e4_add_security_event_columns_to_auth_.py:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79ea9e0c77252971", "name": "Commented-code block (6 lines) in migrations/versions/a6c122211261_add_version_id_to_mutable_models_for_.py:69", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/versions/a6c122211261_add_version_id_to_mutable_models_for_.py:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe4d4c75821fcafd", "name": "Commented-code block (6 lines) in migrations/versions/e8b14f3a7c22_c22_idempotency_uniqueness_constraints.py:144", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/versions/e8b14f3a7c22_c22_idempotency_uniqueness_constraints.py:144"}, "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-f06713e3e5e36de7", "name": "Commented-code block (7 lines) in migrations/versions/c7e3a2f9b104_add_is_cleared_to_transaction_entries.py:39", "shortDescription": {"text": "Commented-code block (7 lines) in migrations/versions/c7e3a2f9b104_add_is_cleared_to_transaction_entries.py:39"}, "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-a970587a212d4ec5", "name": "Commented-code block (5 lines) in migrations/versions/22b3dd9d9ed3_add_salary_schema_tables.py:54", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/versions/22b3dd9d9ed3_add_salary_schema_tables.py:54"}, "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-61c29a912481b801", "name": "Legacy-named symbol `_rename_constraint_if_legacy` in migrations/versions/c42b1d9a4e8f_c42_repair_salary_indexes_and_fk_", "shortDescription": {"text": "Legacy-named symbol `_rename_constraint_if_legacy` in migrations/versions/c42b1d9a4e8f_c42_repair_salary_indexes_and_fk_naming.py:341"}, "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-7c0d8c32de132865", "name": "Commented-code block (8 lines) in migrations/versions/c42b1d9a4e8f_c42_repair_salary_indexes_and_fk_naming.py:114", "shortDescription": {"text": "Commented-code block (8 lines) in migrations/versions/c42b1d9a4e8f_c42_repair_salary_indexes_and_fk_naming.py:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-510fc5add1043320", "name": "Commented-code block (5 lines) in migrations/versions/44893a9dbcc3_finish_hysa_to_interest_params_rename.py:104", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/versions/44893a9dbcc3_finish_hysa_to_interest_params_rename.py:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad5b6a2515fc1cdb", "name": "Commented-code block (9 lines) in migrations/versions/af8254074bef_phase1_create_budget_pay_schedule_.py:75", "shortDescription": {"text": "Commented-code block (9 lines) in migrations/versions/af8254074bef_phase1_create_budget_pay_schedule_.py:75"}, "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-0c9c913b25611748", "name": "Commented-code block (8 lines) in migrations/versions/a3b9c2d40e15_c23_salary_raise_deduction_uniqueness.py:102", "shortDescription": {"text": "Commented-code block (8 lines) in migrations/versions/a3b9c2d40e15_c23_salary_raise_deduction_uniqueness.py:102"}, "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-1ff0547a3ad4bd5a", "name": "Commented-code block (5 lines) in migrations/versions/d3d25212504b_create_loan_anchor_events_table_for_.py:156", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/versions/d3d25212504b_create_loan_anchor_events_table_for_.py:156"}, "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-030da566069872e9", "name": "15 env vars used in code but missing from .env.example", "shortDescription": {"text": "15 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `DATABASE_URL_APP`, `FLASK_DEBUG`, `FORWARDED_ALLOW_IPS`, `GUNICORN_GRACEFUL_TIMEOUT`, `GUNICORN_KEEPALIVE`, `GUNICORN_LOG_LEVEL`, `GUNICORN_PORT`, `GUNICORN_TIMEOUT` + 7 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/rotate_totp_key.py:run_rotation, scripts/rotate_sessions.py:run_rotation\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/rotate_totp_key.py:parse_args, scripts/reset_mfa.py:parse_args, scripts/rotate_sessions.py:parse_args\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\napp/schemas/validation/loans.py:normalize_inputs, app/schemas/validation/loans.py:normalize_inputs, app/schemas/validation/loans.py:normalize_inputs, app/schemas/validation/loans.py:normalize_inputs\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\napp/schemas/validation/salary.py:strip_empty_strings, app/schemas/validation/salary.py:strip_empty_strings, app/schemas/validation/salary.py:strip_empty_strings, app/schemas/validation/salary.py:strip_empty_strings\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad460b84b0b56beb", "name": "Unused endpoint: ANY /debt-strategy", "shortDescription": {"text": "Unused endpoint: ANY /debt-strategy"}, "fullDescription": {"text": "`app/routes/debt_strategy.py` declares `ANY /debt-strategy` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e9401db6ab87e03", "name": "Unused endpoint: ANY /debt-strategy/calculate", "shortDescription": {"text": "Unused endpoint: ANY /debt-strategy/calculate"}, "fullDescription": {"text": "`app/routes/debt_strategy.py` declares `ANY /debt-strategy/calculate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad17821395f7cb75", "name": "Unused endpoint: ANY /transactions/<int:txn_id>/entries", "shortDescription": {"text": "Unused endpoint: ANY /transactions/<int:txn_id>/entries"}, "fullDescription": {"text": "`app/routes/entries.py` declares `ANY /transactions/<int:txn_id>/entries` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-db146b9b57e10104", "name": "Unused endpoint: ANY /transactions/<int:txn_id>/entries/<int:entry_id>", "shortDescription": {"text": "Unused endpoint: ANY /transactions/<int:txn_id>/entries/<int:entry_id>"}, "fullDescription": {"text": "`app/routes/entries.py` declares `ANY /transactions/<int:txn_id>/entries/<int:entry_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-924567157ef920ce", "name": "Unused endpoint: ANY /transactions/<int:txn_id>/entries/<int:entry_id>/cleared", "shortDescription": {"text": "Unused endpoint: ANY /transactions/<int:txn_id>/entries/<int:entry_id>/cleared"}, "fullDescription": {"text": "`app/routes/entries.py` declares `ANY /transactions/<int:txn_id>/entries/<int:entry_id>/cleared` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3bf9fda4897f8353", "name": "Unused endpoint: ANY /grid", "shortDescription": {"text": "Unused endpoint: ANY /grid"}, "fullDescription": {"text": "`app/routes/grid.py` declares `ANY /grid` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e9c7d336eea80185", "name": "Unused endpoint: ANY /create-baseline", "shortDescription": {"text": "Unused endpoint: ANY /create-baseline"}, "fullDescription": {"text": "`app/routes/grid.py` declares `ANY /create-baseline` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-57007103115d8fe4", "name": "Unused endpoint: ANY /grid/balance-row", "shortDescription": {"text": "Unused endpoint: ANY /grid/balance-row"}, "fullDescription": {"text": "`app/routes/grid.py` declares `ANY /grid/balance-row` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-823fd2082a62f697", "name": "Unused endpoint: ANY /grid/subtotal-rows", "shortDescription": {"text": "Unused endpoint: ANY /grid/subtotal-rows"}, "fullDescription": {"text": "`app/routes/grid.py` declares `ANY /grid/subtotal-rows` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb7d35928ac63460", "name": "Unused endpoint: ANY /grid/this-period-summary", "shortDescription": {"text": "Unused endpoint: ANY /grid/this-period-summary"}, "fullDescription": {"text": "`app/routes/grid.py` declares `ANY /grid/this-period-summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-711265116ba1d387", "name": "Unused endpoint: ANY /savings", "shortDescription": {"text": "Unused endpoint: ANY /savings"}, "fullDescription": {"text": "`app/routes/savings.py` declares `ANY /savings` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99e782750c19e161", "name": "Unused endpoint: ANY /savings/goals/new", "shortDescription": {"text": "Unused endpoint: ANY /savings/goals/new"}, "fullDescription": {"text": "`app/routes/savings.py` declares `ANY /savings/goals/new` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e917618a01ab6ee", "name": "Unused endpoint: ANY /savings/goals", "shortDescription": {"text": "Unused endpoint: ANY /savings/goals"}, "fullDescription": {"text": "`app/routes/savings.py` declares `ANY /savings/goals` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b531fbb62a29998", "name": "Unused endpoint: ANY /savings/goals/<int:goal_id>/edit", "shortDescription": {"text": "Unused endpoint: ANY /savings/goals/<int:goal_id>/edit"}, "fullDescription": {"text": "`app/routes/savings.py` declares `ANY /savings/goals/<int:goal_id>/edit` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-997691701e3ab9cb", "name": "Unused endpoint: ANY /savings/goals/<int:goal_id>", "shortDescription": {"text": "Unused endpoint: ANY /savings/goals/<int:goal_id>"}, "fullDescription": {"text": "`app/routes/savings.py` declares `ANY /savings/goals/<int:goal_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d53f578d0a2c02f3", "name": "Unused endpoint: ANY /savings/goals/<int:goal_id>/delete", "shortDescription": {"text": "Unused endpoint: ANY /savings/goals/<int:goal_id>/delete"}, "fullDescription": {"text": "`app/routes/savings.py` declares `ANY /savings/goals/<int:goal_id>/delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`app/routes/dashboard.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8877994083ed2902", "name": "Unused endpoint: ANY /dashboard", "shortDescription": {"text": "Unused endpoint: ANY /dashboard"}, "fullDescription": {"text": "`app/routes/dashboard.py` declares `ANY /dashboard` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6f457cc8febcd8e", "name": "Unused endpoint: ANY /dashboard/pulse", "shortDescription": {"text": "Unused endpoint: ANY /dashboard/pulse"}, "fullDescription": {"text": "`app/routes/dashboard.py` declares `ANY /dashboard/pulse` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84a6780fe523fc28", "name": "Unused endpoint: ANY /dashboard/balance", "shortDescription": {"text": "Unused endpoint: ANY /dashboard/balance"}, "fullDescription": {"text": "`app/routes/dashboard.py` declares `ANY /dashboard/balance` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7f5b53c03c8b8d42", "name": "Unused endpoint: ANY /analytics", "shortDescription": {"text": "Unused endpoint: ANY /analytics"}, "fullDescription": {"text": "`app/routes/analytics.py` declares `ANY /analytics` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de4e7991bc92808a", "name": "Unused endpoint: ANY /analytics/calendar", "shortDescription": {"text": "Unused endpoint: ANY /analytics/calendar"}, "fullDescription": {"text": "`app/routes/analytics.py` declares `ANY /analytics/calendar` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09a9f9b476e0b0a3", "name": "Unused endpoint: ANY /analytics/year-end", "shortDescription": {"text": "Unused endpoint: ANY /analytics/year-end"}, "fullDescription": {"text": "`app/routes/analytics.py` declares `ANY /analytics/year-end` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-709a3d35f22b71b6", "name": "Unused endpoint: ANY /analytics/variance", "shortDescription": {"text": "Unused endpoint: ANY /analytics/variance"}, "fullDescription": {"text": "`app/routes/analytics.py` declares `ANY /analytics/variance` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2b9a6f542c2a83b", "name": "Unused endpoint: ANY /analytics/trends", "shortDescription": {"text": "Unused endpoint: ANY /analytics/trends"}, "fullDescription": {"text": "`app/routes/analytics.py` declares `ANY /analytics/trends` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c85e6b63932966fd", "name": "Unused endpoint: ANY /period/<int:period_id>", "shortDescription": {"text": "Unused endpoint: ANY /period/<int:period_id>"}, "fullDescription": {"text": "`app/routes/companion.py` declares `ANY /period/<int:period_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-51a9e0923383dc9e", "name": "Unused endpoint: ANY /obligations", "shortDescription": {"text": "Unused endpoint: ANY /obligations"}, "fullDescription": {"text": "`app/routes/obligations.py` declares `ANY /obligations` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0243df83b8fba34", "name": "Unused endpoint: ANY /templates", "shortDescription": {"text": "Unused endpoint: ANY /templates"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d46cbe7b228fec46", "name": "Unused endpoint: ANY /templates/new", "shortDescription": {"text": "Unused endpoint: ANY /templates/new"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates/new` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2105d1f6b215613", "name": "Unused endpoint: ANY /templates/<int:template_id>/edit", "shortDescription": {"text": "Unused endpoint: ANY /templates/<int:template_id>/edit"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates/<int:template_id>/edit` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dc2bc52d95132bd6", "name": "Unused endpoint: ANY /templates/<int:template_id>", "shortDescription": {"text": "Unused endpoint: ANY /templates/<int:template_id>"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates/<int:template_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5643e59703e7f36a", "name": "Unused endpoint: ANY /templates/<int:template_id>/archive", "shortDescription": {"text": "Unused endpoint: ANY /templates/<int:template_id>/archive"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates/<int:template_id>/archive` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c3af0f6a7b397f96", "name": "Unused endpoint: ANY /templates/<int:template_id>/unarchive", "shortDescription": {"text": "Unused endpoint: ANY /templates/<int:template_id>/unarchive"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates/<int:template_id>/unarchive` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7e133ea965295c2", "name": "Unused endpoint: ANY /templates/<int:template_id>/hard-delete", "shortDescription": {"text": "Unused endpoint: ANY /templates/<int:template_id>/hard-delete"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates/<int:template_id>/hard-delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f4ed7d516d83479", "name": "Unused endpoint: ANY /templates/preview-recurrence", "shortDescription": {"text": "Unused endpoint: ANY /templates/preview-recurrence"}, "fullDescription": {"text": "`app/routes/templates.py` declares `ANY /templates/preview-recurrence` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1d5747f370918eb", "name": "Unused endpoint: ANY /pay-periods/generate", "shortDescription": {"text": "Unused endpoint: ANY /pay-periods/generate"}, "fullDescription": {"text": "`app/routes/pay_periods.py` declares `ANY /pay-periods/generate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6866fc0b92bb0bb6", "name": "Unused endpoint: ANY /pay-periods/extend", "shortDescription": {"text": "Unused endpoint: ANY /pay-periods/extend"}, "fullDescription": {"text": "`app/routes/pay_periods.py` declares `ANY /pay-periods/extend` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d23e0a7e4c09ae25", "name": "Unused endpoint: ANY /pay-periods/truncate", "shortDescription": {"text": "Unused endpoint: ANY /pay-periods/truncate"}, "fullDescription": {"text": "`app/routes/pay_periods.py` declares `ANY /pay-periods/truncate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-62b7455b1730815b", "name": "Unused endpoint: ANY /pay-periods/regenerate", "shortDescription": {"text": "Unused endpoint: ANY /pay-periods/regenerate"}, "fullDescription": {"text": "`app/routes/pay_periods.py` declares `ANY /pay-periods/regenerate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6bb7b9918f40f3b1", "name": "Unused endpoint: ANY /pay-periods/reset", "shortDescription": {"text": "Unused endpoint: ANY /pay-periods/reset"}, "fullDescription": {"text": "`app/routes/pay_periods.py` declares `ANY /pay-periods/reset` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ce7dbf47a233b12", "name": "Unused endpoint: ANY /pay-periods/schedule", "shortDescription": {"text": "Unused endpoint: ANY /pay-periods/schedule"}, "fullDescription": {"text": "`app/routes/pay_periods.py` declares `ANY /pay-periods/schedule` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a92252d93ecefc30", "name": "Unused endpoint: ANY /accounts/<int:account_id>/investment", "shortDescription": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment"}, "fullDescription": {"text": "`app/routes/investment.py` declares `ANY /accounts/<int:account_id>/investment` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d830eb9b11a6b60d", "name": "Unused endpoint: ANY /accounts/<int:account_id>/investment/growth-chart", "shortDescription": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment/growth-chart"}, "fullDescription": {"text": "`app/routes/investment.py` declares `ANY /accounts/<int:account_id>/investment/growth-chart` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-03420796b9c8fc7e", "name": "Unused endpoint: ANY /accounts/<int:account_id>/investment/create-contribution-transfer", "shortDescription": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment/create-contribution-transfer"}, "fullDescription": {"text": "`app/routes/investment.py` declares `ANY /accounts/<int:account_id>/investment/create-contribution-transfer` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a2536ffe9d13baf7", "name": "Unused endpoint: ANY /accounts/<int:account_id>/investment/params", "shortDescription": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment/params"}, "fullDescription": {"text": "`app/routes/investment.py` declares `ANY /accounts/<int:account_id>/investment/params` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e0f2b2fa1aec030b", "name": "Unused endpoint: ANY /categories", "shortDescription": {"text": "Unused endpoint: ANY /categories"}, "fullDescription": {"text": "`app/routes/categories.py` declares `ANY /categories` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-51895557aa5cb44f", "name": "Unused endpoint: ANY /categories/<int:category_id>/edit", "shortDescription": {"text": "Unused endpoint: ANY /categories/<int:category_id>/edit"}, "fullDescription": {"text": "`app/routes/categories.py` declares `ANY /categories/<int:category_id>/edit` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09a939a1a34f0ddc", "name": "Unused endpoint: ANY /categories/<int:category_id>/archive", "shortDescription": {"text": "Unused endpoint: ANY /categories/<int:category_id>/archive"}, "fullDescription": {"text": "`app/routes/categories.py` declares `ANY /categories/<int:category_id>/archive` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2ae9f5f689a68df", "name": "Unused endpoint: ANY /categories/<int:category_id>/unarchive", "shortDescription": {"text": "Unused endpoint: ANY /categories/<int:category_id>/unarchive"}, "fullDescription": {"text": "`app/routes/categories.py` declares `ANY /categories/<int:category_id>/unarchive` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3864180cad810a7e", "name": "Unused endpoint: ANY /categories/<int:category_id>/delete", "shortDescription": {"text": "Unused endpoint: ANY /categories/<int:category_id>/delete"}, "fullDescription": {"text": "`app/routes/categories.py` declares `ANY /categories/<int:category_id>/delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18811"}, "properties": {"repository": "SaltyReformed/Shekel", "repoUrl": "https://github.com/SaltyReformed/Shekel", "branch": "main"}, "results": [{"ruleId": "scanner-9f1d8cb65b275dc8", "level": "note", "message": {"text": "Possibly dead Python function: acct_type_icon"}, "properties": {"repobilityId": "de7a67f84d641a4d", "scanner": "scanner-primary", "fingerprint": "9f1d8cb65b275dc8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/ref_cache.py:410"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c6312a91de52ae61", "level": "note", "message": {"text": "Possibly dead Python function: acct_type_max_term"}, "properties": {"repobilityId": "7532ef85badc8924", "scanner": "scanner-primary", "fingerprint": "c6312a91de52ae61", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/ref_cache.py:427"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1d4ae4c238747ab2", "level": "note", "message": {"text": "Possibly dead Python function: formatTime"}, "properties": {"repobilityId": "f434ec99c026470e", "scanner": "scanner-primary", "fingerprint": "1d4ae4c238747ab2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/utils/logging_config.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d0b7dd2809d53c62", "level": "warning", "message": {"text": "Privileged port 19 in use"}, "properties": {"repobilityId": "a6b5b06deac36eac", "scanner": "scanner-primary", "fingerprint": "d0b7dd2809d53c62", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/docker-compose.prod.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-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-685bd510936637bd", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in run.py:14"}, "properties": {"repobilityId": "188429209af586ce", "scanner": "scanner-primary", "fingerprint": "685bd510936637bd", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "run.py"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-4aa1f42d735934f5", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in docs/audits/security-2026-04-15/scans/trivy-image.json:4838"}, "properties": {"repobilityId": "e31d8a5cb66adaa4", "scanner": "scanner-primary", "fingerprint": "4aa1f42d735934f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/audits/security-2026-04-15/scans/trivy-image.json"}, "region": {"startLine": 4838}}}]}, {"ruleId": "scanner-1c80098556c432ab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/recurrence_form.js:80"}, "properties": {"repobilityId": "c2fc3c264fcf2cd5", "scanner": "scanner-primary", "fingerprint": "1c80098556c432ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/static/js/recurrence_form.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-1ce807dd90c8e82c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/app.js:318"}, "properties": {"repobilityId": "b936022b54fdabab", "scanner": "scanner-primary", "fingerprint": "1ce807dd90c8e82c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/static/js/app.js"}, "region": {"startLine": 318}}}]}, {"ruleId": "scanner-cc18744aae9dbda8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/grid_edit.js:283"}, "properties": {"repobilityId": "c35c2062a3257cd9", "scanner": "scanner-primary", "fingerprint": "cc18744aae9dbda8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/static/js/grid_edit.js"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-253332442963f320", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/static/js/calendar.js:39"}, "properties": {"repobilityId": "130a84efbe27ff62", "scanner": "scanner-primary", "fingerprint": "253332442963f320", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/static/js/calendar.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-076b03a16e76601d", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "a42462ccbe3d06f2", "scanner": "scanner-primary", "fingerprint": "076b03a16e76601d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-publish.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19c6b764e914473d", "level": "note", "message": {"text": "Very large file: tests/conftest.py (2307 lines)"}, "properties": {"repobilityId": "780e26ad294fc245", "scanner": "scanner-primary", "fingerprint": "19c6b764e914473d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b7d9a0d5ee540561", "level": "note", "message": {"text": "Very large file: tests/test_adversarial/test_step_up.py (1296 lines)"}, "properties": {"repobilityId": "ccd33dd0a7dd422d", "scanner": "scanner-primary", "fingerprint": "b7d9a0d5ee540561", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fc5dd1165e1152b1", "level": "note", "message": {"text": "Very large file: tests/test_adversarial/test_hostile_qa.py (1276 lines)"}, "properties": {"repobilityId": "5ed3100c54752290", "scanner": "scanner-primary", "fingerprint": "fc5dd1165e1152b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-68ab71254b44cee9", "level": "note", "message": {"text": "Very large file: tests/test_services/test_loan_resolver.py (2123 lines)"}, "properties": {"repobilityId": "837c2d957fcb1bef", "scanner": "scanner-primary", "fingerprint": "68ab71254b44cee9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f1e412edbe6d169c", "level": "note", "message": {"text": "Very large file: tests/test_services/test_calendar_service.py (1363 lines)"}, "properties": {"repobilityId": "596a059db0730b90", "scanner": "scanner-primary", "fingerprint": "f1e412edbe6d169c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8f3242769229e1fc", "level": "note", "message": {"text": "Very large file: tests/test_services/test_year_end_summary_service.py (2907 lines)"}, "properties": {"repobilityId": "91d71fbe31989b2e", "scanner": "scanner-primary", "fingerprint": "8f3242769229e1fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-be77c3ae82b345bc", "level": "note", "message": {"text": "Very large file: tests/test_services/test_balance_calculator.py (2531 lines)"}, "properties": {"repobilityId": "3b33313b5853d653", "scanner": "scanner-primary", "fingerprint": "be77c3ae82b345bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-faed2b78baa9c948", "level": "note", "message": {"text": "Very large file: tests/test_services/test_entry_service.py (1583 lines)"}, "properties": {"repobilityId": "931a381171721f2e", "scanner": "scanner-primary", "fingerprint": "faed2b78baa9c948", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a6100f18a386051a", "level": "note", "message": {"text": "Very large file: tests/test_services/test_recurrence_engine.py (2725 lines)"}, "properties": {"repobilityId": "7ae7d3cdd346d063", "scanner": "scanner-primary", "fingerprint": "a6100f18a386051a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-53375237dd5dac2f", "level": "note", "message": {"text": "Very large file: tests/test_services/test_savings_dashboard_service.py (3046 lines)"}, "properties": {"repobilityId": "43e67fd4507d8ee7", "scanner": "scanner-primary", "fingerprint": "53375237dd5dac2f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-60ba48bc657db8f1", "level": "note", "message": {"text": "Very large file: tests/test_services/test_balance_resolver.py (1580 lines)"}, "properties": {"repobilityId": "40b02b85fc0fe174", "scanner": "scanner-primary", "fingerprint": "60ba48bc657db8f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e638ac4898ceb60e", "level": "note", "message": {"text": "Very large file: tests/test_services/test_carry_forward_service.py (3136 lines)"}, "properties": {"repobilityId": "d891c84045a38c96", "scanner": "scanner-primary", "fingerprint": "e638ac4898ceb60e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d69da5faaf6b0451", "level": "note", "message": {"text": "Very large file: tests/test_services/test_paycheck_calculator.py (3819 lines)"}, "properties": {"repobilityId": "a946001fb0f61978", "scanner": "scanner-primary", "fingerprint": "d69da5faaf6b0451", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d87a06371242806f", "level": "note", "message": {"text": "Very large file: tests/test_services/test_balance_calculator_entries.py (1900 lines)"}, "properties": {"repobilityId": "916921ba6ae9a498", "scanner": "scanner-primary", "fingerprint": "d87a06371242806f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-21632ebc6aa6331b", "level": "note", "message": {"text": "Very large file: tests/test_services/test_dashboard_pulse_service.py (1269 lines)"}, "properties": {"repobilityId": "dec4b32eaeba4322", "scanner": "scanner-primary", "fingerprint": "21632ebc6aa6331b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5380958af577e528", "level": "note", "message": {"text": "Very large file: tests/test_services/test_growth_engine.py (1551 lines)"}, "properties": {"repobilityId": "22a2892c0892b652", "scanner": "scanner-primary", "fingerprint": "5380958af577e528", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-963fd59af341f1f7", "level": "note", "message": {"text": "Very large file: tests/test_services/test_auth_service.py (1534 lines)"}, "properties": {"repobilityId": "e2c375b9e73c4015", "scanner": "scanner-primary", "fingerprint": "963fd59af341f1f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bedb39c97d3c4cce", "level": "note", "message": {"text": "Very large file: tests/test_services/test_transfer_service.py (1665 lines)"}, "properties": {"repobilityId": "e74f2650c76d3da4", "scanner": "scanner-primary", "fingerprint": "bedb39c97d3c4cce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3b9350507a0089f5", "level": "note", "message": {"text": "Very large file: tests/test_services/test_amortization_engine.py (1596 lines)"}, "properties": {"repobilityId": "c37eb6eed6bf2f5b", "scanner": "scanner-primary", "fingerprint": "3b9350507a0089f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7249628f14a46fa8", "level": "note", "message": {"text": "Very large file: tests/test_services/test_transfer_recurrence.py (1692 lines)"}, "properties": {"repobilityId": "4291e6a8b0231369", "scanner": "scanner-primary", "fingerprint": "7249628f14a46fa8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-70f7061b425e76b8", "level": "note", "message": {"text": "Very large file: tests/test_services/test_investment_projection.py (1148 lines)"}, "properties": {"repobilityId": "5e4ad1e240e66cec", "scanner": "scanner-primary", "fingerprint": "70f7061b425e76b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-faaadaf62507b34c", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_c24_range_check_sweep.py (1272 lines)"}, "properties": {"repobilityId": "1d5ee3c139fb6738", "scanner": "scanner-primary", "fingerprint": "faaadaf62507b34c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f74c38b0342161fd", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_categories.py (1686 lines)"}, "properties": {"repobilityId": "9f0ea56244a4244f", "scanner": "scanner-primary", "fingerprint": "f74c38b0342161fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-67ed4eca689cc550", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_transfers.py (2868 lines)"}, "properties": {"repobilityId": "2d55d46562e7c096", "scanner": "scanner-primary", "fingerprint": "67ed4eca689cc550", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-583407a25626fecd", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_loan.py (5421 lines)"}, "properties": {"repobilityId": "90f9e4304eb86ab4", "scanner": "scanner-primary", "fingerprint": "583407a25626fecd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ef85bbbd56595b6", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_analytics.py (2264 lines)"}, "properties": {"repobilityId": "c86248937cd2b231", "scanner": "scanner-primary", "fingerprint": "3ef85bbbd56595b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47824c7dcf146ca9", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_salary.py (3450 lines)"}, "properties": {"repobilityId": "4d22eb4003b1f6c3", "scanner": "scanner-primary", "fingerprint": "47824c7dcf146ca9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae941ece5834e333", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_entries.py (1516 lines)"}, "properties": {"repobilityId": "eeac0876841b0399", "scanner": "scanner-primary", "fingerprint": "ae941ece5834e333", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-779c877f7325ce29", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_optimistic_locking_c18.py (1418 lines)"}, "properties": {"repobilityId": "34b77fe8155acdbc", "scanner": "scanner-primary", "fingerprint": "779c877f7325ce29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ec7d85e5f7824225", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_savings.py (3187 lines)"}, "properties": {"repobilityId": "6582e193b46751a2", "scanner": "scanner-primary", "fingerprint": "ec7d85e5f7824225", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3cbd753cdd0ae345", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_grid.py (6638 lines)"}, "properties": {"repobilityId": "01c387463066d51b", "scanner": "scanner-primary", "fingerprint": "3cbd753cdd0ae345", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ab68678c2aa4eb5f", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_accounts.py (4847 lines)"}, "properties": {"repobilityId": "56b87b135b004d9a", "scanner": "scanner-primary", "fingerprint": "ab68678c2aa4eb5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0f43995d2560adef", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_auth.py (2723 lines)"}, "properties": {"repobilityId": "602026d81ad2c79a", "scanner": "scanner-primary", "fingerprint": "0f43995d2560adef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-028bd82484f140dd", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_investment.py (2228 lines)"}, "properties": {"repobilityId": "a93f2c76f04a13fe", "scanner": "scanner-primary", "fingerprint": "028bd82484f140dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-335e0d81c085b916", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_retirement.py (1757 lines)"}, "properties": {"repobilityId": "db0470b7a8e956db", "scanner": "scanner-primary", "fingerprint": "335e0d81c085b916", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ef76a74974e7cc5a", "level": "note", "message": {"text": "Very large file: tests/test_routes/test_templates.py (2004 lines)"}, "properties": {"repobilityId": "3b4c8b5559062ff4", "scanner": "scanner-primary", "fingerprint": "ef76a74974e7cc5a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0d08f7187da669e6", "level": "note", "message": {"text": "Very large file: tests/test_deploy/test_docker_secrets_and_env_hygiene.py (1749 lines)"}, "properties": {"repobilityId": "ed2ba4770f33cb2a", "scanner": "scanner-primary", "fingerprint": "0d08f7187da669e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-50ad9eb713c9a54b", "level": "note", "message": {"text": "Very large file: tests/test_schemas/test_validation.py (1448 lines)"}, "properties": {"repobilityId": "b5e2ed27bb28c553", "scanner": "scanner-primary", "fingerprint": "50ad9eb713c9a54b", "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": "4b59c3178488ee00", "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": "ba3bc27429f3d681", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "a70f4db6b3530714", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "d6cb97433f291c07", "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": "49418a6b8cdd2fdd", "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": "c81e24a84063ffbc", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e4a24af6f41ffbd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/deploy.md"}, "properties": {"repobilityId": "890ccb2b48e16d25", "scanner": "scanner-primary", "fingerprint": "8e4a24af6f41ffbd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/deploy.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-00fd91c98a58cba2", "level": "none", "message": {"text": "Commented-code block (6 lines) in gunicorn.conf.py:42"}, "properties": {"repobilityId": "320b937228f29acc", "scanner": "scanner-primary", "fingerprint": "00fd91c98a58cba2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-974ba3e7f99bbeb6", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/conftest.py:22"}, "properties": {"repobilityId": "385ff6dfa3925d39", "scanner": "scanner-primary", "fingerprint": "974ba3e7f99bbeb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-145f6b444f4d68b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_config.py:821"}, "properties": {"repobilityId": "94c55c5d5538f7b0", "scanner": "scanner-primary", "fingerprint": "145f6b444f4d68b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7af78b1beb7642d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/_test_helpers.py:124"}, "properties": {"repobilityId": "7177975a2ea1ac0e", "scanner": "scanner-primary", "fingerprint": "7af78b1beb7642d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c637dc0972fd71c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_adversarial/test_totp_replay.py:117"}, "properties": {"repobilityId": "1afcdb9b51e2165e", "scanner": "scanner-primary", "fingerprint": "c637dc0972fd71c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c763181928e1833", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_adversarial/test_session_protection.py:343"}, "properties": {"repobilityId": "da02bf2374629765", "scanner": "scanner-primary", "fingerprint": "9c763181928e1833", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59db4904bb8fa5d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_adversarial/test_secret_key_rotation.py:96"}, "properties": {"repobilityId": "3460b8482c7c5dc9", "scanner": "scanner-primary", "fingerprint": "59db4904bb8fa5d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a40e9943c840edb", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_adversarial/test_mfa_setup_secret.py:160"}, "properties": {"repobilityId": "5eae2abcf223c891", "scanner": "scanner-primary", "fingerprint": "3a40e9943c840edb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1ba3d44c76c1be5", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_adversarial/test_cache_control.py:227"}, "properties": {"repobilityId": "ed0ab9e96c3e7268", "scanner": "scanner-primary", "fingerprint": "f1ba3d44c76c1be5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5c4eff776d98a31", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_services/test_loan_resolver.py:926"}, "properties": {"repobilityId": "e49f57e66025c8f4", "scanner": "scanner-primary", "fingerprint": "c5c4eff776d98a31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97a0a54c96b67ef1", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_services/test_calendar_service.py:1277"}, "properties": {"repobilityId": "8f2714307dac800f", "scanner": "scanner-primary", "fingerprint": "97a0a54c96b67ef1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33001c908c046f69", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_services/test_year_end_summary_service.py:614"}, "properties": {"repobilityId": "b1e7ce16ea37d875", "scanner": "scanner-primary", "fingerprint": "33001c908c046f69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5a64ee364bbf8f2", "level": "note", "message": {"text": "Legacy-named symbol `test_payback_fields_match_legacy` in tests/test_services/test_entry_credit_workflow.py:374"}, "properties": {"repobilityId": "0735b7af6f43b3c3", "scanner": "scanner-primary", "fingerprint": "f5a64ee364bbf8f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e41093792434c49a", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_services/test_recurrence_engine.py:730"}, "properties": {"repobilityId": "9dd25d28f76b1df3", "scanner": "scanner-primary", "fingerprint": "e41093792434c49a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3766de0442f82293", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_services/test_savings_dashboard_service.py:1955"}, "properties": {"repobilityId": "f93c4ac4b9a22bb6", "scanner": "scanner-primary", "fingerprint": "3766de0442f82293", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-def64f50ad2684f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_services/test_balance_resolver.py:1243"}, "properties": {"repobilityId": "d526c615b00f792d", "scanner": "scanner-primary", "fingerprint": "def64f50ad2684f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a95c6b6e02f48851", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_services/test_balance_calculator_hysa.py:939"}, "properties": {"repobilityId": "45714b8dee066f39", "scanner": "scanner-primary", "fingerprint": "a95c6b6e02f48851", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f82da01882b0255e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_services/test_retirement_dashboard_service.py:79"}, "properties": {"repobilityId": "6cc0fb5dd5b0b896", "scanner": "scanner-primary", "fingerprint": "f82da01882b0255e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80535fb77663150e", "level": "note", "message": {"text": "Legacy-named symbol `test_encrypt_uses_primary_not_old` in tests/test_services/test_mfa_service.py:802"}, "properties": {"repobilityId": "171f55ce8e46bb50", "scanner": "scanner-primary", "fingerprint": "80535fb77663150e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7e61f965370755f6", "level": "note", "message": {"text": "Legacy-named symbol `test_all_uncleared_matches_legacy` in tests/test_services/test_balance_calculator_entries.py:1776"}, "properties": {"repobilityId": "a6dfaf5befd6e16f", "scanner": "scanner-primary", "fingerprint": "7e61f965370755f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-06d8796d2ad58a0a", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_services/test_loan_payment_service.py:65"}, "properties": {"repobilityId": "476ed4f0a2f5f17e", "scanner": "scanner-primary", "fingerprint": "06d8796d2ad58a0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1b2126c1821c966", "level": "note", "message": {"text": "Legacy-named symbol `test_change_password_new_equals_old` in tests/test_services/test_auth_service.py:658"}, "properties": {"repobilityId": "8268a338ea8fef0f", "scanner": "scanner-primary", "fingerprint": "e1b2126c1821c966", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fef28fd04dbec68d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_services/test_auth_service.py:1169"}, "properties": {"repobilityId": "5038bad9328a386d", "scanner": "scanner-primary", "fingerprint": "fef28fd04dbec68d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0fe6ebd9c452d59", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_services/test_companion_service.py:291"}, "properties": {"repobilityId": "c662127748cd25ea", "scanner": "scanner-primary", "fingerprint": "c0fe6ebd9c452d59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b9835aa75d94cb9", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_services/test_income_service.py:566"}, "properties": {"repobilityId": "b8564c3724b02f5c", "scanner": "scanner-primary", "fingerprint": "3b9835aa75d94cb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f69d1fc121ab404", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_services/test_amortization_engine.py:412"}, "properties": {"repobilityId": "4d55cd3ba4585d00", "scanner": "scanner-primary", "fingerprint": "4f69d1fc121ab404", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-304192a7adcab295", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_routes/test_base_navbar.py:19"}, "properties": {"repobilityId": "bf7ee1dd15bec237", "scanner": "scanner-primary", "fingerprint": "304192a7adcab295", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb8e0eb9a9d9b02b", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_routes/test_errors.py:67"}, "properties": {"repobilityId": "06da7e97a90aab17", "scanner": "scanner-primary", "fingerprint": "cb8e0eb9a9d9b02b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3bfe1ef0299c8fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_routes/test_c24_range_check_sweep.py:770"}, "properties": {"repobilityId": "ef66de3c8a571124", "scanner": "scanner-primary", "fingerprint": "a3bfe1ef0299c8fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cacaffb243c52a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_routes/test_loan.py:116"}, "properties": {"repobilityId": "4ed405490e176798", "scanner": "scanner-primary", "fingerprint": "9cacaffb243c52a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f6d99f185f62268", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_routes/test_c27_input_validation_sweep.py:531"}, "properties": {"repobilityId": "c0b39e5ceff3365a", "scanner": "scanner-primary", "fingerprint": "7f6d99f185f62268", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14549ff1c4dcfd2f", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_routes/test_c19_credit_payback_unique.py:907"}, "properties": {"repobilityId": "b5487d32b500e1c0", "scanner": "scanner-primary", "fingerprint": "14549ff1c4dcfd2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d852c65abe1c5e0c", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/test_routes/test_savings.py:399"}, "properties": {"repobilityId": "fa3ac9851e92f837", "scanner": "scanner-primary", "fingerprint": "d852c65abe1c5e0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-849f675a155e4e4d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_routes/test_grid.py:215"}, "properties": {"repobilityId": "ea14be1a864d54e8", "scanner": "scanner-primary", "fingerprint": "849f675a155e4e4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-720e509b3b2657e3", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_routes/test_recurrence_form_helpers.py:625"}, "properties": {"repobilityId": "ff0f7b9a22834eae", "scanner": "scanner-primary", "fingerprint": "720e509b3b2657e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6feaab8e8591faf3", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_routes/test_accounts.py:617"}, "properties": {"repobilityId": "516a06602961bcbf", "scanner": "scanner-primary", "fingerprint": "6feaab8e8591faf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea48d8aac70602e2", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_routes/test_auth.py:194"}, "properties": {"repobilityId": "ec1fd00ae2fa249c", "scanner": "scanner-primary", "fingerprint": "ea48d8aac70602e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b95883f20f09ea8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_routes/test_investment.py:663"}, "properties": {"repobilityId": "2f8b9e75a23435c1", "scanner": "scanner-primary", "fingerprint": "5b95883f20f09ea8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99b6ff31b475602e", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_routes/test_hysa.py:42"}, "properties": {"repobilityId": "6faec2c5c0d939e8", "scanner": "scanner-primary", "fingerprint": "99b6ff31b475602e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62abf3dd1fb9085b", "level": "note", "message": {"text": "Legacy-named symbol `project_requirements_v2` in tests/test_routes/test_grid_regression.py:4"}, "properties": {"repobilityId": "ed0e9544f5528d06", "scanner": "scanner-primary", "fingerprint": "62abf3dd1fb9085b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-481dd3ab7ce58e70", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/test_routes/test_grid_regression.py:360"}, "properties": {"repobilityId": "68f2c6e2f1b0700e", "scanner": "scanner-primary", "fingerprint": "481dd3ab7ce58e70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f0680029e84fb50", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_routes/test_templates.py:1444"}, "properties": {"repobilityId": "b93ed9b81771134f", "scanner": "scanner-primary", "fingerprint": "1f0680029e84fb50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a65690ec43b493e9", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_utils/test_balance_predicates.py:708"}, "properties": {"repobilityId": "9d85ebab9f057d74", "scanner": "scanner-primary", "fingerprint": "a65690ec43b493e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d93bcffe6725c13d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_utils/test_logging_config.py:134"}, "properties": {"repobilityId": "6dd5b4efe878902b", "scanner": "scanner-primary", "fingerprint": "d93bcffe6725c13d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b0d677b6638c57c", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_utils/test_session_helpers.py:288"}, "properties": {"repobilityId": "f23d4b2eb4c5251f", "scanner": "scanner-primary", "fingerprint": "6b0d677b6638c57c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b60a00eebb60189e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_container_hardening.py:381"}, "properties": {"repobilityId": "f495f1aad6eb1b2c", "scanner": "scanner-primary", "fingerprint": "b60a00eebb60189e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-053f3c30f7eab312", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_proxy_trust_and_headers.py:634"}, "properties": {"repobilityId": "ff3af77dae779850", "scanner": "scanner-primary", "fingerprint": "053f3c30f7eab312", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d740477339a57f09", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_seed_credential_hygiene.py:273"}, "properties": {"repobilityId": "6179d2da379a3e72", "scanner": "scanner-primary", "fingerprint": "d740477339a57f09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4798a4918f0b92b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_deploy_configs.py:183"}, "properties": {"repobilityId": "0a9b2a7a49c17da2", "scanner": "scanner-primary", "fingerprint": "4798a4918f0b92b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6f40959771d0e7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_deploy/test_internal_tls_and_access.py:752"}, "properties": {"repobilityId": "488120c0db48f368", "scanner": "scanner-primary", "fingerprint": "b6f40959771d0e7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17fdfb5125dd20c9", "level": "note", "message": {"text": "Legacy-named symbol `verify_backup` in tests/test_deploy/test_docker_secrets_and_env_hygiene.py:55"}, "properties": {"repobilityId": "f55f6577736ac74c", "scanner": "scanner-primary", "fingerprint": "17fdfb5125dd20c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ac27a2c3abb64086", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_deploy/test_docker_secrets_and_env_hygiene.py:57"}, "properties": {"repobilityId": "9c9f05d6993df7b5", "scanner": "scanner-primary", "fingerprint": "ac27a2c3abb64086", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21e77dc01dbda312", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_integration/test_loan_unified_figures.py:24"}, "properties": {"repobilityId": "e028e5e849e7e7bc", "scanner": "scanner-primary", "fingerprint": "21e77dc01dbda312", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78631618d081dff7", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_integration/test_workflows.py:109"}, "properties": {"repobilityId": "54f1fb81d0f997ba", "scanner": "scanner-primary", "fingerprint": "78631618d081dff7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da5d60d72d2666d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_integration/test_rate_limiter.py:108"}, "properties": {"repobilityId": "d15bd106ca694f99", "scanner": "scanner-primary", "fingerprint": "da5d60d72d2666d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09d52a84baa046d2", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_integration/test_security_headers.py:34"}, "properties": {"repobilityId": "943fe06a8da953be", "scanner": "scanner-primary", "fingerprint": "09d52a84baa046d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b6da0f4d6e23ba9", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_integration/test_cross_page_balance_equality.py:78"}, "properties": {"repobilityId": "d14756da1ccdf5b7", "scanner": "scanner-primary", "fingerprint": "5b6da0f4d6e23ba9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc5d456f233febcb", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_integration/test_loan_resolver_single_source.py:60"}, "properties": {"repobilityId": "f1fc9bbf0e8fddbf", "scanner": "scanner-primary", "fingerprint": "cc5d456f233febcb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc99847b3f2202ad", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_integration/test_template_no_money_arithmetic.py:36"}, "properties": {"repobilityId": "9bd544e9ba092e61", "scanner": "scanner-primary", "fingerprint": "dc99847b3f2202ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2158a7098816efe9", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_integration/test_loan_principal_settles.py:85"}, "properties": {"repobilityId": "b70569bc9c189f59", "scanner": "scanner-primary", "fingerprint": "2158a7098816efe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5997c1ba2a3c3b0b", "level": "none", "message": {"text": "Commented-code block (12 lines) in tests/test_performance/test_trigger_overhead.py:234"}, "properties": {"repobilityId": "f2ddf00e23c7057f", "scanner": "scanner-primary", "fingerprint": "5997c1ba2a3c3b0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9bee50c4a722122", "level": "note", "message": {"text": "Legacy-named symbol `_rename_constraint_if_legacy` in tests/test_models/test_c42_salary_indexes_and_fk_naming.py:37"}, "properties": {"repobilityId": "07e33e04d63e0f5b", "scanner": "scanner-primary", "fingerprint": "d9bee50c4a722122", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-862d456498084d83", "level": "none", "message": {"text": "Commented-code block (12 lines) in tests/test_models/test_c42_salary_indexes_and_fk_naming.py:52"}, "properties": {"repobilityId": "8a84815fde30188e", "scanner": "scanner-primary", "fingerprint": "862d456498084d83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-554ae661dae7a978", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_models/test_c40_account_id_backfill.py:23"}, "properties": {"repobilityId": "fea07c9dc8c09620", "scanner": "scanner-primary", "fingerprint": "554ae661dae7a978", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-608684d0f4b4c602", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_models/test_c25_column_invariants.py:38"}, "properties": {"repobilityId": "96bdd7d13c7b1e1e", "scanner": "scanner-primary", "fingerprint": "608684d0f4b4c602", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c4da6e717a9ab21", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_models/test_pay_schedule.py:61"}, "properties": {"repobilityId": "c19dae3449a6964d", "scanner": "scanner-primary", "fingerprint": "6c4da6e717a9ab21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82131a781dcb7ea3", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/test_models/test_c41_baseline_unique_migration.py:49"}, "properties": {"repobilityId": "9324c4a7530dba2c", "scanner": "scanner-primary", "fingerprint": "82131a781dcb7ea3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-703efb9da730439b", "level": "none", "message": {"text": "Commented-code block (17 lines) in tests/test_models/test_audit_migration.py:41"}, "properties": {"repobilityId": "66b68baa292f07fa", "scanner": "scanner-primary", "fingerprint": "703efb9da730439b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ecaeb0759748fbe", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/test_models/test_loan_anchor_backfill.py:377"}, "properties": {"repobilityId": "46ae133bc4727efc", "scanner": "scanner-primary", "fingerprint": "4ecaeb0759748fbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afae70e4bc27e6ae", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_models/test_loan_params_demoted.py:54"}, "properties": {"repobilityId": "a834cdca179c01b9", "scanner": "scanner-primary", "fingerprint": "afae70e4bc27e6ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20a32447ad28697d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_models/test_anchor_fk_deferrable.py:32"}, "properties": {"repobilityId": "b886fc657556b77b", "scanner": "scanner-primary", "fingerprint": "20a32447ad28697d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-517d159b6d80ff5f", "level": "none", "message": {"text": "Commented-code block (12 lines) in tests/test_models/test_c43_ondelete_and_naming_convention.py:84"}, "properties": {"repobilityId": "90e522723b9e0709", "scanner": "scanner-primary", "fingerprint": "517d159b6d80ff5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88b708f654ed72d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/manual/verify_mobile_grid_commit10.py:300"}, "properties": {"repobilityId": "df46c7d9c7f672a5", "scanner": "scanner-primary", "fingerprint": "88b708f654ed72d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-955488b9652acfab", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/manual/verify_mobile_grid_commit7.py:395"}, "properties": {"repobilityId": "4002c5acd9c84889", "scanner": "scanner-primary", "fingerprint": "955488b9652acfab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa3bbe9f67f4b334", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_scripts/test_integrity_check.py:326"}, "properties": {"repobilityId": "b660f5afb21de613", "scanner": "scanner-primary", "fingerprint": "aa3bbe9f67f4b334", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1bc3202c582149c", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_schemas/test_c25_boundary_inclusivity.py:183"}, "properties": {"repobilityId": "ce754c332b465f3e", "scanner": "scanner-primary", "fingerprint": "f1bc3202c582149c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01089cbd33f2e568", "level": "none", "message": {"text": "Commented-code block (12 lines) in scripts/init_database.py:45"}, "properties": {"repobilityId": "014d267db9695481", "scanner": "scanner-primary", "fingerprint": "01089cbd33f2e568", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-006f7477f3a65f38", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/rotate_totp_key.py:184"}, "properties": {"repobilityId": "fdc4a68d307568b5", "scanner": "scanner-primary", "fingerprint": "006f7477f3a65f38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54de36b99cf3829f", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed_companion.py:23"}, "properties": {"repobilityId": "183df02d58b90eed", "scanner": "scanner-primary", "fingerprint": "54de36b99cf3829f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b7bdaa69e7e454b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed_user.py:59"}, "properties": {"repobilityId": "4802850ab5203a7e", "scanner": "scanner-primary", "fingerprint": "2b7bdaa69e7e454b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04beba62ad7f4e3e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/seed_user.py:216"}, "properties": {"repobilityId": "ab2427642a6dbc8e", "scanner": "scanner-primary", "fingerprint": "04beba62ad7f4e3e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a2feb339c747b96", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/build_test_template.py:88"}, "properties": {"repobilityId": "4ff7fbd7086e9473", "scanner": "scanner-primary", "fingerprint": "2a2feb339c747b96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79a6b448acccc207", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed_ref_tables.py:23"}, "properties": {"repobilityId": "4a74ad70ea9ed8f1", "scanner": "scanner-primary", "fingerprint": "79a6b448acccc207", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a418d8752f538699", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/reset_mfa.py:56"}, "properties": {"repobilityId": "4932e07dbf607c5d", "scanner": "scanner-primary", "fingerprint": "a418d8752f538699", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b64602448a593e4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed_tax_brackets.py:20"}, "properties": {"repobilityId": "e14d84e737784495", "scanner": "scanner-primary", "fingerprint": "b64602448a593e4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5324688d2d348587", "level": "none", "message": {"text": "Commented-code block (11 lines) in scripts/audit_cleanup.py:44"}, "properties": {"repobilityId": "fe87afcd2db356a4", "scanner": "scanner-primary", "fingerprint": "5324688d2d348587", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76b9d8d592a380e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/rotate_sessions.py:70"}, "properties": {"repobilityId": "ac5bb982e84d8fcc", "scanner": "scanner-primary", "fingerprint": "76b9d8d592a380e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b649ef02854392d6", "level": "note", "message": {"text": "Legacy-named symbol `verify_backup` in scripts/integrity_check.py:9"}, "properties": {"repobilityId": "fd3c39433f4eaade", "scanner": "scanner-primary", "fingerprint": "b649ef02854392d6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e5b0157308bec293", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/integrity_check.py:462"}, "properties": {"repobilityId": "8cce4be27087c544", "scanner": "scanner-primary", "fingerprint": "e5b0157308bec293", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5387b3c56633cba9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/__init__.py:68"}, "properties": {"repobilityId": "f7e65af37084e357", "scanner": "scanner-primary", "fingerprint": "5387b3c56633cba9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5958cedd9e3ebc57", "level": "none", "message": {"text": "Commented-code block (19 lines) in app/audit_infrastructure.py:46"}, "properties": {"repobilityId": "7a6ddaf48052dda9", "scanner": "scanner-primary", "fingerprint": "5958cedd9e3ebc57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d524df3bd578077", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/ref_cache.py:96"}, "properties": {"repobilityId": "ecf2b2bc15044ed3", "scanner": "scanner-primary", "fingerprint": "5d524df3bd578077", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44a3e70034668049", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/config.py:18"}, "properties": {"repobilityId": "b6102836dfe30000", "scanner": "scanner-primary", "fingerprint": "44a3e70034668049", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdd10edc44efa46f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/ref_seeds.py:35"}, "properties": {"repobilityId": "59035ecfb61eb521", "scanner": "scanner-primary", "fingerprint": "cdd10edc44efa46f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a63d18f3ab97fd25", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/jinja_globals.py:50"}, "properties": {"repobilityId": "27029b9e0efc2d1f", "scanner": "scanner-primary", "fingerprint": "a63d18f3ab97fd25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67eaeb7fcf5a15af", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/jinja_filters.py:25"}, "properties": {"repobilityId": "af072af88cc3cce9", "scanner": "scanner-primary", "fingerprint": "67eaeb7fcf5a15af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c4a582c008fd2f5", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/extensions.py:21"}, "properties": {"repobilityId": "c76427e2695a24f8", "scanner": "scanner-primary", "fingerprint": "2c4a582c008fd2f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05da4be2ac2cbd88", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/models/savings_goal.py:80"}, "properties": {"repobilityId": "186c295b820b72cc", "scanner": "scanner-primary", "fingerprint": "05da4be2ac2cbd88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6085a31375eb2bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/models/account.py:49"}, "properties": {"repobilityId": "33e7aea4fd0e490c", "scanner": "scanner-primary", "fingerprint": "b6085a31375eb2bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17ee5d6b60640c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/models/__init__.py:61"}, "properties": {"repobilityId": "fa964f555a41e6bc", "scanner": "scanner-primary", "fingerprint": "17ee5d6b60640c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fb8a487b1baee4e", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/models/ref.py:117"}, "properties": {"repobilityId": "39d949a474265eb1", "scanner": "scanner-primary", "fingerprint": "3fb8a487b1baee4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0054b332a6e5053", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/models/loan_features.py:42"}, "properties": {"repobilityId": "fc1e97bf37638719", "scanner": "scanner-primary", "fingerprint": "b0054b332a6e5053", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4300f9eb07995eb5", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/models/interest_params.py:22"}, "properties": {"repobilityId": "30552c86d8dd3b8f", "scanner": "scanner-primary", "fingerprint": "4300f9eb07995eb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c71e18070f894216", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/models/transaction.py:52"}, "properties": {"repobilityId": "82a3e9ca850d9e40", "scanner": "scanner-primary", "fingerprint": "c71e18070f894216", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c8fd6a87012309f", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/models/investment_params.py:38"}, "properties": {"repobilityId": "60c799ca281459de", "scanner": "scanner-primary", "fingerprint": "1c8fd6a87012309f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3919ff40c0054d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/models/loan_anchor_event.py:80"}, "properties": {"repobilityId": "1bda7653ddc79a73", "scanner": "scanner-primary", "fingerprint": "c3919ff40c0054d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40c3925bda9abc31", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/models/pay_period.py:18"}, "properties": {"repobilityId": "cafed7d59cffbb8a", "scanner": "scanner-primary", "fingerprint": "40c3925bda9abc31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70ee29153897d61b", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/models/scenario.py:18"}, "properties": {"repobilityId": "4956acb40e72df01", "scanner": "scanner-primary", "fingerprint": "70ee29153897d61b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-124457277c25afae", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/models/transfer.py:50"}, "properties": {"repobilityId": "5eab2d6e665aa32e", "scanner": "scanner-primary", "fingerprint": "124457277c25afae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37205f7fc580fa12", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/models/salary_raise.py:59"}, "properties": {"repobilityId": "9a1a342a5fcc5d4a", "scanner": "scanner-primary", "fingerprint": "37205f7fc580fa12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a70a009becd7581", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/models/calibration_override.py:53"}, "properties": {"repobilityId": "ab02e9b3d3a805d2", "scanner": "scanner-primary", "fingerprint": "1a70a009becd7581", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-769463a261102660", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/models/paycheck_deduction.py:58"}, "properties": {"repobilityId": "9eae1025447c9bb5", "scanner": "scanner-primary", "fingerprint": "769463a261102660", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b803108966ddd74a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/models/transaction_template.py:48"}, "properties": {"repobilityId": "c7f8d4de40f141ef", "scanner": "scanner-primary", "fingerprint": "b803108966ddd74a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e20495d0ff7bffa", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/models/pension_profile.py:44"}, "properties": {"repobilityId": "329db40bf9d3406a", "scanner": "scanner-primary", "fingerprint": "7e20495d0ff7bffa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-710f4d411bb87650", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/models/tax_config.py:57"}, "properties": {"repobilityId": "52bef4e0e7b9bb46", "scanner": "scanner-primary", "fingerprint": "710f4d411bb87650", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d34f34b62636ad08", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/models/user.py:44"}, "properties": {"repobilityId": "e09c53e6723b4be4", "scanner": "scanner-primary", "fingerprint": "d34f34b62636ad08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bf6a289a2a1e07f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/models/loan_params.py:65"}, "properties": {"repobilityId": "faac0ec999b05cca", "scanner": "scanner-primary", "fingerprint": "2bf6a289a2a1e07f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84995584b8b27cbb", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/models/transfer_template.py:52"}, "properties": {"repobilityId": "1aa010fcda707568", "scanner": "scanner-primary", "fingerprint": "84995584b8b27cbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b4794e3426c601c", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/static/sw.js:20"}, "properties": {"repobilityId": "dcddb340a01d0169", "scanner": "scanner-primary", "fingerprint": "9b4794e3426c601c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcec7d60435d2465", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/static/sw.js:89"}, "properties": {"repobilityId": "c29b560dc36fcf42", "scanner": "scanner-primary", "fingerprint": "bcec7d60435d2465", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c3807f16896b7ea2", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/static/js/retirement_gap_chart.js:18"}, "properties": {"repobilityId": "c0eac3c668aee344", "scanner": "scanner-primary", "fingerprint": "c3807f16896b7ea2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-161b6728abe6edcd", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/static/js/mobile_grid.js:20"}, "properties": {"repobilityId": "5ae5ad5d91554367", "scanner": "scanner-primary", "fingerprint": "161b6728abe6edcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47ec51e622d53a18", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/static/js/progress_bar.js:62"}, "properties": {"repobilityId": "4f8a359e88388469", "scanner": "scanner-primary", "fingerprint": "47ec51e622d53a18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fab87cc3e6800e22", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/static/js/app.js:8"}, "properties": {"repobilityId": "de0b2ae6b20c496e", "scanner": "scanner-primary", "fingerprint": "fab87cc3e6800e22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b25e0b92eb188e6c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/static/js/grid_edit.js:16"}, "properties": {"repobilityId": "8dc0c6b5a5caaef4", "scanner": "scanner-primary", "fingerprint": "b25e0b92eb188e6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5ac9b16028d04ba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/static/js/grid_edit.js:348"}, "properties": {"repobilityId": "f74b678dcbba7af4", "scanner": "scanner-primary", "fingerprint": "a5ac9b16028d04ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-02f8b8b12ad4a58e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/static/js/categories.js:94"}, "properties": {"repobilityId": "3ff090fbb505438e", "scanner": "scanner-primary", "fingerprint": "02f8b8b12ad4a58e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13cfa054728477e4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/static/js/command_palette.js:83"}, "properties": {"repobilityId": "4b0731d15c720da2", "scanner": "scanner-primary", "fingerprint": "13cfa054728477e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c34bade1b97118ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/static/js/chart_variance.js:108"}, "properties": {"repobilityId": "b86dd72eff733d5a", "scanner": "scanner-primary", "fingerprint": "c34bade1b97118ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db3f63453ad306a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/static/js/calendar.js:23"}, "properties": {"repobilityId": "4b50f08e0c264ba4", "scanner": "scanner-primary", "fingerprint": "db3f63453ad306a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f337c30628a5069", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/utils/auth_helpers.py:444"}, "properties": {"repobilityId": "ee05f116ebcefe77", "scanner": "scanner-primary", "fingerprint": "3f337c30628a5069", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5698e3192f8aa33f", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/utils/dates.py:15"}, "properties": {"repobilityId": "6d5bcda51caa7085", "scanner": "scanner-primary", "fingerprint": "5698e3192f8aa33f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-889ba0eabe49f57d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/utils/session_helpers.py:131"}, "properties": {"repobilityId": "357fa0fca8c28e79", "scanner": "scanner-primary", "fingerprint": "889ba0eabe49f57d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7ee508e0969c9bd", "level": "note", "message": {"text": "Legacy-named symbol `totp_encryption_key_old` in app/utils/logging_config.py:260"}, "properties": {"repobilityId": "5bb5a2ddcd67e49f", "scanner": "scanner-primary", "fingerprint": "d7ee508e0969c9bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b0b9b2934aa90c1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/utils/logging_config.py:120"}, "properties": {"repobilityId": "83b2335844b0b7ea", "scanner": "scanner-primary", "fingerprint": "b0b9b2934aa90c1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ece40e2520a0938a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/utils/security_events.py:111"}, "properties": {"repobilityId": "f3334a829145e7a2", "scanner": "scanner-primary", "fingerprint": "ece40e2520a0938a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bf7a536ab68652f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/utils/account_validation.py:183"}, "properties": {"repobilityId": "633101521b6aa658", "scanner": "scanner-primary", "fingerprint": "5bf7a536ab68652f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a55bfa3ab73e8f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/debt_strategy.py:46"}, "properties": {"repobilityId": "79b541724e4d7453", "scanner": "scanner-primary", "fingerprint": "1a55bfa3ab73e8f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae8137f58a25a9bb", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/routes/entries.py:38"}, "properties": {"repobilityId": "bd8dd17f443d95d2", "scanner": "scanner-primary", "fingerprint": "ae8137f58a25a9bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9350b45e4072507d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/health.py:47"}, "properties": {"repobilityId": "c8666676e4406227", "scanner": "scanner-primary", "fingerprint": "9350b45e4072507d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c995fae1cbb828e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/_recurrence_form_helpers.py:221"}, "properties": {"repobilityId": "416ad3a32e0c6c53", "scanner": "scanner-primary", "fingerprint": "4c995fae1cbb828e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bc3c6c5e7af0aab", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/routes/grid.py:42"}, "properties": {"repobilityId": "e749dbc757ef3d0d", "scanner": "scanner-primary", "fingerprint": "9bc3c6c5e7af0aab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a5e4272c8255a67", "level": "none", "message": {"text": "Commented-code block (13 lines) in app/routes/analytics.py:233"}, "properties": {"repobilityId": "179601edcca0993b", "scanner": "scanner-primary", "fingerprint": "2a5e4272c8255a67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0449a840a3507c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/companion.py:108"}, "properties": {"repobilityId": "620ada7b1033fd6f", "scanner": "scanner-primary", "fingerprint": "e0449a840a3507c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b0ad09ff1a5eeef", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/routes/obligations.py:119"}, "properties": {"repobilityId": "a7673eae4ff9dbbe", "scanner": "scanner-primary", "fingerprint": "8b0ad09ff1a5eeef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cfd08ba8d1dba2e", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/routes/templates.py:57"}, "properties": {"repobilityId": "d4df42e6b590caab", "scanner": "scanner-primary", "fingerprint": "7cfd08ba8d1dba2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c504922e58834d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/investment.py:72"}, "properties": {"repobilityId": "a0f982a40a148672", "scanner": "scanner-primary", "fingerprint": "2c504922e58834d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1362a9d38652eee", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/routes/categories.py:97"}, "properties": {"repobilityId": "71bdb59021b87ebe", "scanner": "scanner-primary", "fingerprint": "f1362a9d38652eee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a49f72b0fc869af6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/retirement.py:45"}, "properties": {"repobilityId": "f09a5204bf7cd9d1", "scanner": "scanner-primary", "fingerprint": "a49f72b0fc869af6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf74afb5f227a8a0", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/routes/settings.py:45"}, "properties": {"repobilityId": "c87a261e712fd01a", "scanner": "scanner-primary", "fingerprint": "cf74afb5f227a8a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1326fe89ef156e21", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/static_pass.py:52"}, "properties": {"repobilityId": "e3b4fe8c20798cdf", "scanner": "scanner-primary", "fingerprint": "1326fe89ef156e21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54c19be4a91cfa26", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/routes/transactions/create.py:121"}, "properties": {"repobilityId": "e71efd0c8a659a22", "scanner": "scanner-primary", "fingerprint": "54c19be4a91cfa26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8564377cdcf8fc10", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/routes/transactions/carry_forward.py:119"}, "properties": {"repobilityId": "43142619a66370c6", "scanner": "scanner-primary", "fingerprint": "8564377cdcf8fc10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1e100c3d9742e93", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/routes/transactions/mutations.py:52"}, "properties": {"repobilityId": "80782a186739d4e1", "scanner": "scanner-primary", "fingerprint": "c1e100c3d9742e93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c96d9201b6cb66fc", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/routes/transactions/forms.py:96"}, "properties": {"repobilityId": "75806a04871661ee", "scanner": "scanner-primary", "fingerprint": "c96d9201b6cb66fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07088c94a9a60b7f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/transactions/_helpers.py:39"}, "properties": {"repobilityId": "0f1ea3bf890af9fd", "scanner": "scanner-primary", "fingerprint": "07088c94a9a60b7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33efee121532141e", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/routes/auth/mfa.py:124"}, "properties": {"repobilityId": "feb45812f459ade6", "scanner": "scanner-primary", "fingerprint": "33efee121532141e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48e3c273c3f42970", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/routes/auth/credentials.py:74"}, "properties": {"repobilityId": "cbc3f57b4f27c2c0", "scanner": "scanner-primary", "fingerprint": "48e3c273c3f42970", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50e98902d6cfbe81", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/auth/session_security.py:60"}, "properties": {"repobilityId": "b3011aac5d005553", "scanner": "scanner-primary", "fingerprint": "50e98902d6cfbe81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad9d22fc0d7ab70d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/auth/_helpers.py:61"}, "properties": {"repobilityId": "1e9dec0b6a11f2b8", "scanner": "scanner-primary", "fingerprint": "ad9d22fc0d7ab70d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6ee1459c30506e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/routes/accounts/__init__.py:43"}, "properties": {"repobilityId": "a2e6f714d45dd45a", "scanner": "scanner-primary", "fingerprint": "b6ee1459c30506e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1805462596ba0c72", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/routes/accounts/types.py:66"}, "properties": {"repobilityId": "40c20bf701bfa85a", "scanner": "scanner-primary", "fingerprint": "1805462596ba0c72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56b9f693c887b2f5", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/routes/accounts/anchor.py:95"}, "properties": {"repobilityId": "011ef0a5273dbdae", "scanner": "scanner-primary", "fingerprint": "56b9f693c887b2f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fe5c17e70378417", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/routes/accounts/crud.py:145"}, "properties": {"repobilityId": "639bb416ed9cda28", "scanner": "scanner-primary", "fingerprint": "6fe5c17e70378417", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd73f5b299588a1f", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/routes/accounts/detail.py:153"}, "properties": {"repobilityId": "cc5ee2295d8e9d07", "scanner": "scanner-primary", "fingerprint": "fd73f5b299588a1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27b04a03d0f5fd35", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/routes/loan/params.py:78"}, "properties": {"repobilityId": "e94c76fa0cf1c94f", "scanner": "scanner-primary", "fingerprint": "27b04a03d0f5fd35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fa51c10656c0cb9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/loan/payment_transfer.py:104"}, "properties": {"repobilityId": "bd3ddd9a8b9c070d", "scanner": "scanner-primary", "fingerprint": "3fa51c10656c0cb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d80aeaf1de9460ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/loan/dashboard.py:591"}, "properties": {"repobilityId": "b90360b0dd040402", "scanner": "scanner-primary", "fingerprint": "d80aeaf1de9460ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46447c8ebc53d752", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/routes/loan/_helpers.py:40"}, "properties": {"repobilityId": "4d96efac702e2cd2", "scanner": "scanner-primary", "fingerprint": "46447c8ebc53d752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48c499ff55c86177", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/routes/loan/escrow_rates.py:85"}, "properties": {"repobilityId": "2e3415696071e398", "scanner": "scanner-primary", "fingerprint": "48c499ff55c86177", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d888fc0b57bb08a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/loan/calculators.py:443"}, "properties": {"repobilityId": "3cb82849c56209b5", "scanner": "scanner-primary", "fingerprint": "6d888fc0b57bb08a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4469b79d980e1429", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/routes/transfers/templates.py:179"}, "properties": {"repobilityId": "b698a76d32bd59bf", "scanner": "scanner-primary", "fingerprint": "4469b79d980e1429", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a9b8f236e66d97c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/transfers/mutations.py:48"}, "properties": {"repobilityId": "ba93523cb9783504", "scanner": "scanner-primary", "fingerprint": "5a9b8f236e66d97c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fea23ce380d8ced", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/routes/salary/items.py:96"}, "properties": {"repobilityId": "1a21a8caaf73e2b0", "scanner": "scanner-primary", "fingerprint": "4fea23ce380d8ced", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d43b14068b1f5ea3", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/salary/calibration.py:140"}, "properties": {"repobilityId": "13d21fdec9151520", "scanner": "scanner-primary", "fingerprint": "d43b14068b1f5ea3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3d5918ce4c873d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/routes/salary/_helpers.py:70"}, "properties": {"repobilityId": "8f229957e6a3e73e", "scanner": "scanner-primary", "fingerprint": "f3d5918ce4c873d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7358b40115b9bd3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/routes/salary/profiles.py:230"}, "properties": {"repobilityId": "c2fed96579dffdb0", "scanner": "scanner-primary", "fingerprint": "7358b40115b9bd3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6710cae9b790f6df", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/routes/salary/tax_config.py:73"}, "properties": {"repobilityId": "fb7f9b6dedda00bc", "scanner": "scanner-primary", "fingerprint": "6710cae9b790f6df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68b7f423257678ea", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/services/dashboard_pulse_service.py:107"}, "properties": {"repobilityId": "09891285f95e83aa", "scanner": "scanner-primary", "fingerprint": "68b7f423257678ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9bdf790c70267b2", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/services/entry_service.py:203"}, "properties": {"repobilityId": "69086c548cc23869", "scanner": "scanner-primary", "fingerprint": "f9bdf790c70267b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e07b30cae223bfa7", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/dashboard_service.py:304"}, "properties": {"repobilityId": "0993ab90ab8ae2ed", "scanner": "scanner-primary", "fingerprint": "e07b30cae223bfa7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f94f61f0aa100888", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/transaction_service.py:117"}, "properties": {"repobilityId": "bcff819a8cbf0cbd", "scanner": "scanner-primary", "fingerprint": "f94f61f0aa100888", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1a9f1390a663ae9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/budget_variance_service.py:249"}, "properties": {"repobilityId": "9326b0444d579598", "scanner": "scanner-primary", "fingerprint": "f1a9f1390a663ae9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c853e2e0f7251eca", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/balance_calculator.py:377"}, "properties": {"repobilityId": "8ed3707679f7f27f", "scanner": "scanner-primary", "fingerprint": "c853e2e0f7251eca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fcb013c08aafaa1", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/companion_service.py:136"}, "properties": {"repobilityId": "257150fb11dc62ce", "scanner": "scanner-primary", "fingerprint": "9fcb013c08aafaa1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3db9528e6c367211", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/transfer_recurrence.py:59"}, "properties": {"repobilityId": "8b7ac8b177106dad", "scanner": "scanner-primary", "fingerprint": "3db9528e6c367211", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45923ebb517fc045", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/services/recurrence_engine.py:403"}, "properties": {"repobilityId": "a10dcd0b65c2e650", "scanner": "scanner-primary", "fingerprint": "45923ebb517fc045", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-326f1d782a4c259b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/auth_service.py:226"}, "properties": {"repobilityId": "39e952a977048e1d", "scanner": "scanner-primary", "fingerprint": "326f1d782a4c259b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b5bba1cc6d4e075", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/services/entry_credit_workflow.py:93"}, "properties": {"repobilityId": "59c0a175e24fe271", "scanner": "scanner-primary", "fingerprint": "0b5bba1cc6d4e075", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da117c96e1fa376c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/spending_trend_service.py:53"}, "properties": {"repobilityId": "bbf56b4ae79c1173", "scanner": "scanner-primary", "fingerprint": "da117c96e1fa376c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cdf4137d750ac51", "level": "none", "message": {"text": "Commented-code block (19 lines) in app/services/calendar_service.py:288"}, "properties": {"repobilityId": "bfd6ec7198187a78", "scanner": "scanner-primary", "fingerprint": "2cdf4137d750ac51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78f0baeb6c337772", "level": "none", "message": {"text": "Commented-code block (13 lines) in app/services/pay_period_admin.py:48"}, "properties": {"repobilityId": "bc0ac3b722cf8149", "scanner": "scanner-primary", "fingerprint": "78f0baeb6c337772", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5db7d7890b0bde0", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/services/retirement_dashboard_service.py:53"}, "properties": {"repobilityId": "377d9beaa99c9b06", "scanner": "scanner-primary", "fingerprint": "e5db7d7890b0bde0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cabd5c805483963", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/services/growth_engine.py:86"}, "properties": {"repobilityId": "2f09e0aa2f38bb45", "scanner": "scanner-primary", "fingerprint": "8cabd5c805483963", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e9c19bc4cee2dc9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/investment_dashboard_service.py:72"}, "properties": {"repobilityId": "292cef4c054ce97d", "scanner": "scanner-primary", "fingerprint": "8e9c19bc4cee2dc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-766c6e18f2fb9ac4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/credit_workflow.py:214"}, "properties": {"repobilityId": "e59803a9ef5cf663", "scanner": "scanner-primary", "fingerprint": "766c6e18f2fb9ac4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9fd900283ba6426", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/services/account_projection.py:99"}, "properties": {"repobilityId": "b8f974089056dadb", "scanner": "scanner-primary", "fingerprint": "a9fd900283ba6426", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e43fdc75fba9cca", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/pension_calculator.py:96"}, "properties": {"repobilityId": "c6dc97adfdc699ee", "scanner": "scanner-primary", "fingerprint": "8e43fdc75fba9cca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-858c72b198c40f9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/grid_view_service.py:129"}, "properties": {"repobilityId": "ad08fe072e3cc513", "scanner": "scanner-primary", "fingerprint": "858c72b198c40f9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50c7525b88791d6f", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/services/rate_period_engine.py:645"}, "properties": {"repobilityId": "78c5e488b7968804", "scanner": "scanner-primary", "fingerprint": "50c7525b88791d6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f37d7c352c61f93", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/services/mfa_service.py:23"}, "properties": {"repobilityId": "2458742ed60b1c9b", "scanner": "scanner-primary", "fingerprint": "2f37d7c352c61f93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5a2218b13519dc0", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/services/csv_export_service.py:26"}, "properties": {"repobilityId": "d4fe2ac9e4a27ac9", "scanner": "scanner-primary", "fingerprint": "f5a2218b13519dc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca39097ce1dc7301", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/obligations_aggregator.py:51"}, "properties": {"repobilityId": "98a7c8731d622cae", "scanner": "scanner-primary", "fingerprint": "ca39097ce1dc7301", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3db05ef1ec258c43", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/services/loan_payment_service.py:133"}, "properties": {"repobilityId": "d903a654b66df233", "scanner": "scanner-primary", "fingerprint": "3db05ef1ec258c43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-522ae400b23a0654", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/balance_resolver.py:235"}, "properties": {"repobilityId": "2f0a68deda519d3a", "scanner": "scanner-primary", "fingerprint": "522ae400b23a0654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31eb213f8a739ad1", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/income_service.py:230"}, "properties": {"repobilityId": "d3d5d07b9d325dd2", "scanner": "scanner-primary", "fingerprint": "31eb213f8a739ad1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-014c81a2ecb37eeb", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/account_service.py:173"}, "properties": {"repobilityId": "6dc9a227f39f5898", "scanner": "scanner-primary", "fingerprint": "014c81a2ecb37eeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c35668bbcd8844c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/state_machine.py:145"}, "properties": {"repobilityId": "35e939be40e0b6a0", "scanner": "scanner-primary", "fingerprint": "c35668bbcd8844c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59fd8a1333132e09", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/transfer_service.py:227"}, "properties": {"repobilityId": "213c4b48351854c4", "scanner": "scanner-primary", "fingerprint": "59fd8a1333132e09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6e2951608056391", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/anchor_service.py:120"}, "properties": {"repobilityId": "66d9d18ee22a8cdb", "scanner": "scanner-primary", "fingerprint": "d6e2951608056391", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21aa20da85d07b46", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/paycheck_calculator.py:220"}, "properties": {"repobilityId": "a9d57ae1d4669a3f", "scanner": "scanner-primary", "fingerprint": "21aa20da85d07b46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec8db35c42282967", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/services/pay_schedule_service.py:27"}, "properties": {"repobilityId": "dbf0973ea5130be7", "scanner": "scanner-primary", "fingerprint": "ec8db35c42282967", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b525ecc585b54ab0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/savings_dashboard_service/_orchestrator.py:109"}, "properties": {"repobilityId": "06e58a3db1476dea", "scanner": "scanner-primary", "fingerprint": "b525ecc585b54ab0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99e8fb0fbd495330", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/savings_dashboard_service/_goals.py:143"}, "properties": {"repobilityId": "254acf0786a41128", "scanner": "scanner-primary", "fingerprint": "99e8fb0fbd495330", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a2d17dadfc8d495", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/services/savings_dashboard_service/_projections.py:64"}, "properties": {"repobilityId": "7b0ffa2e07accc7d", "scanner": "scanner-primary", "fingerprint": "2a2d17dadfc8d495", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00b07ca3f928ea59", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/services/savings_dashboard_service/_data.py:69"}, "properties": {"repobilityId": "6618f385f06ede46", "scanner": "scanner-primary", "fingerprint": "00b07ca3f928ea59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7184948384968213", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/services/savings_dashboard_service/_metrics.py:82"}, "properties": {"repobilityId": "2f15daf5c2563d3a", "scanner": "scanner-primary", "fingerprint": "7184948384968213", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4a4720bd736d4fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/year_end_summary_service/_balances.py:168"}, "properties": {"repobilityId": "8ab0cc462394fb86", "scanner": "scanner-primary", "fingerprint": "e4a4720bd736d4fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a161a937cb1d02a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/year_end_summary_service/_savings.py:214"}, "properties": {"repobilityId": "4c378bbdcbf4f055", "scanner": "scanner-primary", "fingerprint": "a161a937cb1d02a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-092cf10966e60275", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/services/loan_resolver/_periods.py:34"}, "properties": {"repobilityId": "1171005314cf2f2e", "scanner": "scanner-primary", "fingerprint": "092cf10966e60275", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a57d75ec717f082a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/loan_resolver/_state.py:124"}, "properties": {"repobilityId": "e24cfae7c2e081c7", "scanner": "scanner-primary", "fingerprint": "a57d75ec717f082a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e4454cf42dca4df", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/services/loan_resolver/_payoff.py:171"}, "properties": {"repobilityId": "934c1d71eade325c", "scanner": "scanner-primary", "fingerprint": "0e4454cf42dca4df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82f3a4b8bb20a914", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/services/carry_forward_service/_execute.py:88"}, "properties": {"repobilityId": "2ecf2d17d115b509", "scanner": "scanner-primary", "fingerprint": "82f3a4b8bb20a914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f990d7a224379935", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/services/carry_forward_service/_preview.py:392"}, "properties": {"repobilityId": "b8fbb4f61be994de", "scanner": "scanner-primary", "fingerprint": "f990d7a224379935", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23c50944c936f672", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/services/carry_forward_service/_context.py:108"}, "properties": {"repobilityId": "ac3c58847b605fc1", "scanner": "scanner-primary", "fingerprint": "23c50944c936f672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d875a73685c6614d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/schemas/validation/loans.py:189"}, "properties": {"repobilityId": "16012046d15ba2d9", "scanner": "scanner-primary", "fingerprint": "d875a73685c6614d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-434b80e97871c9c8", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/schemas/validation/salary.py:138"}, "properties": {"repobilityId": "159d08eafc5d186f", "scanner": "scanner-primary", "fingerprint": "434b80e97871c9c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27735ce1aed68c02", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/schemas/validation/savings.py:122"}, "properties": {"repobilityId": "0aaf0c914dc89cfd", "scanner": "scanner-primary", "fingerprint": "27735ce1aed68c02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3569dcf2a842a894", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/schemas/validation/transactions.py:52"}, "properties": {"repobilityId": "5ea48ec370f7c180", "scanner": "scanner-primary", "fingerprint": "3569dcf2a842a894", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a10389d610970cf2", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/schemas/validation/auth.py:22"}, "properties": {"repobilityId": "0d7952f7fe218a85", "scanner": "scanner-primary", "fingerprint": "a10389d610970cf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c636aa414b3217ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/schemas/validation/investments.py:90"}, "properties": {"repobilityId": "a459d860e63f0eef", "scanner": "scanner-primary", "fingerprint": "c636aa414b3217ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02a781b79cc886e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/schemas/validation/_helpers.py:24"}, "properties": {"repobilityId": "f5b93ffcb1681dbb", "scanner": "scanner-primary", "fingerprint": "02a781b79cc886e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c0d9c13ad94340e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/pylint/shekel_checkers.py:64"}, "properties": {"repobilityId": "be59da8200d07f6f", "scanner": "scanner-primary", "fingerprint": "2c0d9c13ad94340e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3cd6f6e439f670f", "level": "none", "message": {"text": "Commented-code block (7 lines) in migrations/env.py:57"}, "properties": {"repobilityId": "09cb0b66353dd3f3", "scanner": "scanner-primary", "fingerprint": "e3cd6f6e439f670f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b61df1c0edf9155", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/versions/d477228fee56_c28_account_types_user_id_multi_tenant_.py:139"}, "properties": {"repobilityId": "1bbad79e8e0d1afe", "scanner": "scanner-primary", "fingerprint": "1b61df1c0edf9155", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-263319e31c335382", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/versions/0dfd2537fecb_make_low_balance_threshold_not_null_.py:61"}, "properties": {"repobilityId": "e39d0014af534658", "scanner": "scanner-primary", "fingerprint": "263319e31c335382", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2652a08fe5c4ff75", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/versions/b4b588a49a0c_c43_fk_ondelete_restrict_and_naming_.py:166"}, "properties": {"repobilityId": "b568e8b040cdec7b", "scanner": "scanner-primary", "fingerprint": "2652a08fe5c4ff75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-519ac5a5f0b97ab5", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/versions/efffcf647644_add_account_id_column_to_transactions.py:54"}, "properties": {"repobilityId": "4a3ef7c4cad93675", "scanner": "scanner-primary", "fingerprint": "519ac5a5f0b97ab5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b39a4985a326365", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/versions/b7d2f4a619c5_drop_loan_params_interest_rate_dh56.py:144"}, "properties": {"repobilityId": "77ad1223135874c2", "scanner": "scanner-primary", "fingerprint": "3b39a4985a326365", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b552b144a0a0df8", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/versions/c5d20b701a4e_c25_boolean_notnull_and_server_default_sweep.py:102"}, "properties": {"repobilityId": "5f5d1296672a7e7b", "scanner": "scanner-primary", "fingerprint": "7b552b144a0a0df8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18eca51bd3433f66", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/versions/cfb15e782f86_backfill_account_anchor_and_tighten_.py:73"}, "properties": {"repobilityId": "bd8e3e94fbd3c7bf", "scanner": "scanner-primary", "fingerprint": "18eca51bd3433f66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5d3c1fad74cf595", "level": "none", "message": {"text": "Commented-code block (7 lines) in migrations/versions/b71c4a8f5d3e_c24_marshmallow_range_check_sweep.py:98"}, "properties": {"repobilityId": "72971b48af14893e", "scanner": "scanner-primary", "fingerprint": "c5d3c1fad74cf595", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e495e85b2347df2", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/versions/f96f26f326e4_add_security_event_columns_to_auth_.py:66"}, "properties": {"repobilityId": "e688691d1b93ea39", "scanner": "scanner-primary", "fingerprint": "8e495e85b2347df2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79ea9e0c77252971", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/versions/a6c122211261_add_version_id_to_mutable_models_for_.py:69"}, "properties": {"repobilityId": "44e268bfa2353534", "scanner": "scanner-primary", "fingerprint": "79ea9e0c77252971", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe4d4c75821fcafd", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/versions/e8b14f3a7c22_c22_idempotency_uniqueness_constraints.py:144"}, "properties": {"repobilityId": "f169dddecc52ff93", "scanner": "scanner-primary", "fingerprint": "fe4d4c75821fcafd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f06713e3e5e36de7", "level": "none", "message": {"text": "Commented-code block (7 lines) in migrations/versions/c7e3a2f9b104_add_is_cleared_to_transaction_entries.py:39"}, "properties": {"repobilityId": "9f120ad260dff327", "scanner": "scanner-primary", "fingerprint": "f06713e3e5e36de7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a970587a212d4ec5", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/versions/22b3dd9d9ed3_add_salary_schema_tables.py:54"}, "properties": {"repobilityId": "12a8c63735dcb2e6", "scanner": "scanner-primary", "fingerprint": "a970587a212d4ec5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61c29a912481b801", "level": "note", "message": {"text": "Legacy-named symbol `_rename_constraint_if_legacy` in migrations/versions/c42b1d9a4e8f_c42_repair_salary_indexes_and_fk_naming.py:341"}, "properties": {"repobilityId": "aa11688d6ff7e619", "scanner": "scanner-primary", "fingerprint": "61c29a912481b801", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7c0d8c32de132865", "level": "none", "message": {"text": "Commented-code block (8 lines) in migrations/versions/c42b1d9a4e8f_c42_repair_salary_indexes_and_fk_naming.py:114"}, "properties": {"repobilityId": "962b3e0daa70f60a", "scanner": "scanner-primary", "fingerprint": "7c0d8c32de132865", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-510fc5add1043320", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/versions/44893a9dbcc3_finish_hysa_to_interest_params_rename.py:104"}, "properties": {"repobilityId": "95799ddfe79d7666", "scanner": "scanner-primary", "fingerprint": "510fc5add1043320", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad5b6a2515fc1cdb", "level": "none", "message": {"text": "Commented-code block (9 lines) in migrations/versions/af8254074bef_phase1_create_budget_pay_schedule_.py:75"}, "properties": {"repobilityId": "fe0d5b472013cffe", "scanner": "scanner-primary", "fingerprint": "ad5b6a2515fc1cdb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c9c913b25611748", "level": "none", "message": {"text": "Commented-code block (8 lines) in migrations/versions/a3b9c2d40e15_c23_salary_raise_deduction_uniqueness.py:102"}, "properties": {"repobilityId": "e8a69b7bc92c527f", "scanner": "scanner-primary", "fingerprint": "0c9c913b25611748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ff0547a3ad4bd5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/versions/d3d25212504b_create_loan_anchor_events_table_for_.py:156"}, "properties": {"repobilityId": "9d7f8f0a6401997d", "scanner": "scanner-primary", "fingerprint": "1ff0547a3ad4bd5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-030da566069872e9", "level": "note", "message": {"text": "15 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "0519c1c0e8c1f8e4", "scanner": "scanner-primary", "fingerprint": "030da566069872e9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "397074fd1393a42e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "ff364202df14056c", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b55f2c534f8689bc", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b2d50dd591ef2798", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0cb954a9b23c4de0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "379854c4afaaf9c0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "51357fbb68f178cc", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ebaad4f6f36d6cd2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3c5bf952ee72759e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0c89eeda4cf0c3fa", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "c53d86480f268164", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "6ccc616c63f0b79f", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "75b80061b6c65ee7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "a93d4bdf0e423711", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ca42d317c65b5f63", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b0fa9eb1567dc3fc", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "6727e3d75adc0cad", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2939fd8f44968858", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "35330ffe4b147114", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0993d20242aca0d8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ad460b84b0b56beb", "level": "note", "message": {"text": "Unused endpoint: ANY /debt-strategy"}, "properties": {"repobilityId": "24da8128efb2325d", "scanner": "scanner-primary", "fingerprint": "ad460b84b0b56beb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e9401db6ab87e03", "level": "note", "message": {"text": "Unused endpoint: ANY /debt-strategy/calculate"}, "properties": {"repobilityId": "986f7e46d30e1435", "scanner": "scanner-primary", "fingerprint": "8e9401db6ab87e03", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ad17821395f7cb75", "level": "note", "message": {"text": "Unused endpoint: ANY /transactions/<int:txn_id>/entries"}, "properties": {"repobilityId": "ed731dc3470cb1cf", "scanner": "scanner-primary", "fingerprint": "ad17821395f7cb75", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-db146b9b57e10104", "level": "note", "message": {"text": "Unused endpoint: ANY /transactions/<int:txn_id>/entries/<int:entry_id>"}, "properties": {"repobilityId": "78f4a3f56b3af8f4", "scanner": "scanner-primary", "fingerprint": "db146b9b57e10104", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-924567157ef920ce", "level": "note", "message": {"text": "Unused endpoint: ANY /transactions/<int:txn_id>/entries/<int:entry_id>/cleared"}, "properties": {"repobilityId": "81121f754caa8f17", "scanner": "scanner-primary", "fingerprint": "924567157ef920ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3bf9fda4897f8353", "level": "note", "message": {"text": "Unused endpoint: ANY /grid"}, "properties": {"repobilityId": "e2471ce8ffa9e5b2", "scanner": "scanner-primary", "fingerprint": "3bf9fda4897f8353", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e9c7d336eea80185", "level": "note", "message": {"text": "Unused endpoint: ANY /create-baseline"}, "properties": {"repobilityId": "603efcac3bf3ad0f", "scanner": "scanner-primary", "fingerprint": "e9c7d336eea80185", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-57007103115d8fe4", "level": "note", "message": {"text": "Unused endpoint: ANY /grid/balance-row"}, "properties": {"repobilityId": "2c1ce31f2aa61bf5", "scanner": "scanner-primary", "fingerprint": "57007103115d8fe4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-823fd2082a62f697", "level": "note", "message": {"text": "Unused endpoint: ANY /grid/subtotal-rows"}, "properties": {"repobilityId": "7f17fe7abbd5dead", "scanner": "scanner-primary", "fingerprint": "823fd2082a62f697", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bb7d35928ac63460", "level": "note", "message": {"text": "Unused endpoint: ANY /grid/this-period-summary"}, "properties": {"repobilityId": "8c4772132527d45d", "scanner": "scanner-primary", "fingerprint": "bb7d35928ac63460", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-711265116ba1d387", "level": "note", "message": {"text": "Unused endpoint: ANY /savings"}, "properties": {"repobilityId": "ed34e2c4cafa47df", "scanner": "scanner-primary", "fingerprint": "711265116ba1d387", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99e782750c19e161", "level": "note", "message": {"text": "Unused endpoint: ANY /savings/goals/new"}, "properties": {"repobilityId": "48d803e6569f543a", "scanner": "scanner-primary", "fingerprint": "99e782750c19e161", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3e917618a01ab6ee", "level": "note", "message": {"text": "Unused endpoint: ANY /savings/goals"}, "properties": {"repobilityId": "6724fe694c386df3", "scanner": "scanner-primary", "fingerprint": "3e917618a01ab6ee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b531fbb62a29998", "level": "note", "message": {"text": "Unused endpoint: ANY /savings/goals/<int:goal_id>/edit"}, "properties": {"repobilityId": "5c345f9366f2bb79", "scanner": "scanner-primary", "fingerprint": "6b531fbb62a29998", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-997691701e3ab9cb", "level": "note", "message": {"text": "Unused endpoint: ANY /savings/goals/<int:goal_id>"}, "properties": {"repobilityId": "2f4c07d15e5273ed", "scanner": "scanner-primary", "fingerprint": "997691701e3ab9cb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d53f578d0a2c02f3", "level": "note", "message": {"text": "Unused endpoint: ANY /savings/goals/<int:goal_id>/delete"}, "properties": {"repobilityId": "aede8d5b5edc4ecd", "scanner": "scanner-primary", "fingerprint": "d53f578d0a2c02f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "5fb177371839867d", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8877994083ed2902", "level": "note", "message": {"text": "Unused endpoint: ANY /dashboard"}, "properties": {"repobilityId": "662d556a4ddae5e8", "scanner": "scanner-primary", "fingerprint": "8877994083ed2902", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d6f457cc8febcd8e", "level": "note", "message": {"text": "Unused endpoint: ANY /dashboard/pulse"}, "properties": {"repobilityId": "344512ac1888e58a", "scanner": "scanner-primary", "fingerprint": "d6f457cc8febcd8e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-84a6780fe523fc28", "level": "note", "message": {"text": "Unused endpoint: ANY /dashboard/balance"}, "properties": {"repobilityId": "3f76c6ff7f666cf4", "scanner": "scanner-primary", "fingerprint": "84a6780fe523fc28", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7f5b53c03c8b8d42", "level": "note", "message": {"text": "Unused endpoint: ANY /analytics"}, "properties": {"repobilityId": "557560448cf66e97", "scanner": "scanner-primary", "fingerprint": "7f5b53c03c8b8d42", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-de4e7991bc92808a", "level": "note", "message": {"text": "Unused endpoint: ANY /analytics/calendar"}, "properties": {"repobilityId": "4665508399610aa7", "scanner": "scanner-primary", "fingerprint": "de4e7991bc92808a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09a9f9b476e0b0a3", "level": "note", "message": {"text": "Unused endpoint: ANY /analytics/year-end"}, "properties": {"repobilityId": "068a0186f46e7d45", "scanner": "scanner-primary", "fingerprint": "09a9f9b476e0b0a3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-709a3d35f22b71b6", "level": "note", "message": {"text": "Unused endpoint: ANY /analytics/variance"}, "properties": {"repobilityId": "706f11d639d651b9", "scanner": "scanner-primary", "fingerprint": "709a3d35f22b71b6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c2b9a6f542c2a83b", "level": "note", "message": {"text": "Unused endpoint: ANY /analytics/trends"}, "properties": {"repobilityId": "6f88e27cf7cf603f", "scanner": "scanner-primary", "fingerprint": "c2b9a6f542c2a83b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c85e6b63932966fd", "level": "note", "message": {"text": "Unused endpoint: ANY /period/<int:period_id>"}, "properties": {"repobilityId": "03c180ec032bdbdb", "scanner": "scanner-primary", "fingerprint": "c85e6b63932966fd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-51a9e0923383dc9e", "level": "note", "message": {"text": "Unused endpoint: ANY /obligations"}, "properties": {"repobilityId": "274f6ba9ba6eda5a", "scanner": "scanner-primary", "fingerprint": "51a9e0923383dc9e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c0243df83b8fba34", "level": "note", "message": {"text": "Unused endpoint: ANY /templates"}, "properties": {"repobilityId": "32364ff57c86aa5d", "scanner": "scanner-primary", "fingerprint": "c0243df83b8fba34", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d46cbe7b228fec46", "level": "note", "message": {"text": "Unused endpoint: ANY /templates/new"}, "properties": {"repobilityId": "997d8d6e28cf86e3", "scanner": "scanner-primary", "fingerprint": "d46cbe7b228fec46", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b2105d1f6b215613", "level": "note", "message": {"text": "Unused endpoint: ANY /templates/<int:template_id>/edit"}, "properties": {"repobilityId": "5c07deda88d1c71d", "scanner": "scanner-primary", "fingerprint": "b2105d1f6b215613", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dc2bc52d95132bd6", "level": "note", "message": {"text": "Unused endpoint: ANY /templates/<int:template_id>"}, "properties": {"repobilityId": "09ae2dbecaa3a50c", "scanner": "scanner-primary", "fingerprint": "dc2bc52d95132bd6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5643e59703e7f36a", "level": "note", "message": {"text": "Unused endpoint: ANY /templates/<int:template_id>/archive"}, "properties": {"repobilityId": "3f04edda08092c66", "scanner": "scanner-primary", "fingerprint": "5643e59703e7f36a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c3af0f6a7b397f96", "level": "note", "message": {"text": "Unused endpoint: ANY /templates/<int:template_id>/unarchive"}, "properties": {"repobilityId": "0169b22f97749453", "scanner": "scanner-primary", "fingerprint": "c3af0f6a7b397f96", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c7e133ea965295c2", "level": "note", "message": {"text": "Unused endpoint: ANY /templates/<int:template_id>/hard-delete"}, "properties": {"repobilityId": "40e79045f6b6c0ba", "scanner": "scanner-primary", "fingerprint": "c7e133ea965295c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0f4ed7d516d83479", "level": "note", "message": {"text": "Unused endpoint: ANY /templates/preview-recurrence"}, "properties": {"repobilityId": "20de7f65e572000d", "scanner": "scanner-primary", "fingerprint": "0f4ed7d516d83479", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a1d5747f370918eb", "level": "note", "message": {"text": "Unused endpoint: ANY /pay-periods/generate"}, "properties": {"repobilityId": "06068b6d306ca0b2", "scanner": "scanner-primary", "fingerprint": "a1d5747f370918eb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6866fc0b92bb0bb6", "level": "note", "message": {"text": "Unused endpoint: ANY /pay-periods/extend"}, "properties": {"repobilityId": "2cb1bcb19d4fa0f4", "scanner": "scanner-primary", "fingerprint": "6866fc0b92bb0bb6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d23e0a7e4c09ae25", "level": "note", "message": {"text": "Unused endpoint: ANY /pay-periods/truncate"}, "properties": {"repobilityId": "e600eabdf462490e", "scanner": "scanner-primary", "fingerprint": "d23e0a7e4c09ae25", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-62b7455b1730815b", "level": "note", "message": {"text": "Unused endpoint: ANY /pay-periods/regenerate"}, "properties": {"repobilityId": "71b5b5ab95ff1557", "scanner": "scanner-primary", "fingerprint": "62b7455b1730815b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6bb7b9918f40f3b1", "level": "note", "message": {"text": "Unused endpoint: ANY /pay-periods/reset"}, "properties": {"repobilityId": "3adf610e8907a7da", "scanner": "scanner-primary", "fingerprint": "6bb7b9918f40f3b1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8ce7dbf47a233b12", "level": "note", "message": {"text": "Unused endpoint: ANY /pay-periods/schedule"}, "properties": {"repobilityId": "e8dd873a2abcddf6", "scanner": "scanner-primary", "fingerprint": "8ce7dbf47a233b12", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a92252d93ecefc30", "level": "note", "message": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment"}, "properties": {"repobilityId": "12cb0f2e3d96aa34", "scanner": "scanner-primary", "fingerprint": "a92252d93ecefc30", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d830eb9b11a6b60d", "level": "note", "message": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment/growth-chart"}, "properties": {"repobilityId": "8e628f96c0a6629c", "scanner": "scanner-primary", "fingerprint": "d830eb9b11a6b60d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-03420796b9c8fc7e", "level": "note", "message": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment/create-contribution-transfer"}, "properties": {"repobilityId": "01ae8471d3c8622c", "scanner": "scanner-primary", "fingerprint": "03420796b9c8fc7e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a2536ffe9d13baf7", "level": "note", "message": {"text": "Unused endpoint: ANY /accounts/<int:account_id>/investment/params"}, "properties": {"repobilityId": "1e6d893d4fa423e8", "scanner": "scanner-primary", "fingerprint": "a2536ffe9d13baf7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e0f2b2fa1aec030b", "level": "note", "message": {"text": "Unused endpoint: ANY /categories"}, "properties": {"repobilityId": "4ba728e8c0442ba8", "scanner": "scanner-primary", "fingerprint": "e0f2b2fa1aec030b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-51895557aa5cb44f", "level": "note", "message": {"text": "Unused endpoint: ANY /categories/<int:category_id>/edit"}, "properties": {"repobilityId": "47d8231367d7fbc7", "scanner": "scanner-primary", "fingerprint": "51895557aa5cb44f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09a939a1a34f0ddc", "level": "note", "message": {"text": "Unused endpoint: ANY /categories/<int:category_id>/archive"}, "properties": {"repobilityId": "3427e8340316b359", "scanner": "scanner-primary", "fingerprint": "09a939a1a34f0ddc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b2ae9f5f689a68df", "level": "note", "message": {"text": "Unused endpoint: ANY /categories/<int:category_id>/unarchive"}, "properties": {"repobilityId": "ca4f84288eb930e7", "scanner": "scanner-primary", "fingerprint": "b2ae9f5f689a68df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3864180cad810a7e", "level": "note", "message": {"text": "Unused endpoint: ANY /categories/<int:category_id>/delete"}, "properties": {"repobilityId": "642d8503756b6599", "scanner": "scanner-primary", "fingerprint": "3864180cad810a7e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}