{"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-0276bbe589130b8e", "name": "Possibly dead Python function: set_verify", "shortDescription": {"text": "Possibly dead Python function: set_verify"}, "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-0dd85d35bab7bd5a", "name": "Possibly dead Python function: require_company_from_query", "shortDescription": {"text": "Possibly dead Python function: require_company_from_query"}, "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-097a7f14615f65d7", "name": "Possibly dead Python function: resolve_company_optional", "shortDescription": {"text": "Possibly dead Python function: resolve_company_optional"}, "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-29e8661c8af046f5", "name": "Possibly dead Python function: cmd_init_db", "shortDescription": {"text": "Possibly dead Python function: cmd_init_db"}, "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-0bef76b1e2546300", "name": "Possibly dead Python function: cmd_show_brief", "shortDescription": {"text": "Possibly dead Python function: cmd_show_brief"}, "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-3b460cfeed1f3421", "name": "Possibly dead Python function: cmd_generate_brief", "shortDescription": {"text": "Possibly dead Python function: cmd_generate_brief"}, "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-a70562bbf9fc7015", "name": "Possibly dead Python function: csv_to_md", "shortDescription": {"text": "Possibly dead Python function: csv_to_md"}, "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-b4989b0c83a652fb", "name": "Possibly dead Python function: guarded_redirect_hook", "shortDescription": {"text": "Possibly dead Python function: guarded_redirect_hook"}, "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-15a588c379b24d2b", "name": "Possibly dead Python function: format_brief_message", "shortDescription": {"text": "Possibly dead Python function: format_brief_message"}, "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-fb7ef9c2280129e6", "name": "Possibly dead Python function: refresh_user_token", "shortDescription": {"text": "Possibly dead Python function: refresh_user_token"}, "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-75c16849b8c89653", "name": "Possibly dead Python function: model_post_init", "shortDescription": {"text": "Possibly dead Python function: model_post_init"}, "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-81bedae97b22c449", "name": "Possibly dead Python function: scrape_multiple", "shortDescription": {"text": "Possibly dead Python function: scrape_multiple"}, "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-d422a0e678572c63", "name": "Possibly dead Python function: generate_technical_design_sync", "shortDescription": {"text": "Possibly dead Python function: generate_technical_design_sync"}, "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-5bd40fdd2da918d6", "name": "Possibly dead Python function: generate_traceability_matrix_sync", "shortDescription": {"text": "Possibly dead Python function: generate_traceability_matrix_sync"}, "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-a1ebb1f571bd0514", "name": "Possibly dead Python function: generate_risk_analysis_sync", "shortDescription": {"text": "Possibly dead Python function: generate_risk_analysis_sync"}, "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-b199ccc081a93e54", "name": "Possibly dead Python function: upsert_entity", "shortDescription": {"text": "Possibly dead Python function: upsert_entity"}, "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-142a11ba6366b217", "name": "Possibly dead Python function: upsert_relationship", "shortDescription": {"text": "Possibly dead Python function: upsert_relationship"}, "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-e3837a21324eae6c", "name": "Possibly dead Python function: clear_entities", "shortDescription": {"text": "Possibly dead Python function: clear_entities"}, "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-6be4338f588e7a1a", "name": "Possibly dead Python function: is_valid_id", "shortDescription": {"text": "Possibly dead Python function: is_valid_id"}, "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-257a3e51a0ad26b0", "name": "Possibly dead Python function: gc", "shortDescription": {"text": "Possibly dead Python function: gc"}, "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-586b652accec335e", "name": "Icon-only button without accessible name \u2014 web/app/components/screens/app/TicketsScreen.tsx:157", "shortDescription": {"text": "Icon-only button without accessible name \u2014 web/app/components/screens/app/TicketsScreen.tsx:157"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3eec641efbf6fd2a", "name": "Icon-only button without accessible name \u2014 web/public/sprntly.js:111", "shortDescription": {"text": "Icon-only button without accessible name \u2014 web/public/sprntly.js:111"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f66ad88286ca30a", "name": "Dockerfile runs as root: backend/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: backend/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cd20d539467d2c5", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eab32cfbb489c1f9", "name": "Insecure pattern 'exec_used' in web/app/components/shared/PrdPanelContent.tsx:69", "shortDescription": {"text": "Insecure pattern 'exec_used' in web/app/components/shared/PrdPanelContent.tsx:69"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aba06313c9a20d6e", "name": "Insecure pattern 'direct_innerhtml_assignment' in web/app/components/shared/PrdPanelContent.tsx:298", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/app/components/shared/PrdPanelContent.tsx:298"}, "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-1ea867406428369d", "name": "Insecure pattern 'exec_used' in web/app/components/screens/app/PrdScreen.tsx:418", "shortDescription": {"text": "Insecure pattern 'exec_used' in web/app/components/screens/app/PrdScreen.tsx:418"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c906667aeb90c59", "name": "Insecure pattern 'direct_innerhtml_assignment' in web/app/components/screens/app/PrdScreen.tsx:136", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/app/components/screens/app/PrdScreen.tsx:136"}, "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-4b16570cbce29c89", "name": "Insecure pattern 'direct_innerhtml_assignment' in web/public/sprntly.js:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/public/sprntly.js:22"}, "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-d854debaa806f038", "name": "Insecure pattern 'direct_innerhtml_assignment' in ds-agent/ds_agent/server/static/app.js:125", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ds-agent/ds_agent/server/static/app.js:125"}, "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-09b62f2e973d45ef", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "appleboy/ssh-action@v1.0.3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d7e8d370403d6cd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "appleboy/ssh-action@v1.0.3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-163bf0657d3160c3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "appleboy/ssh-action@v1.0.3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c8fbbaf032492b9", "name": "Very large file: web/app/components/shared/ContentPanel.tsx (1239 lines)", "shortDescription": {"text": "Very large file: web/app/components/shared/ContentPanel.tsx (1239 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-46f8034730afa029", "name": "Very large file: web/app/components/shared/BriefChat.tsx (1715 lines)", "shortDescription": {"text": "Very large file: web/app/components/shared/BriefChat.tsx (1715 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-b1db54de1e61b82a", "name": "Very large file: web/app/components/screens/app/ChatScreen.tsx (1198 lines)", "shortDescription": {"text": "Very large file: web/app/components/screens/app/ChatScreen.tsx (1198 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-648049c6caf47d03", "name": "Very large file: web/app/components/design-agent/PostGenerationResult.tsx (1689 lines)", "shortDescription": {"text": "Very large file: web/app/components/design-agent/PostGenerationResult.tsx (1689 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-68a244a828b84986", "name": "Very large file: web/app/lib/api.ts (1557 lines)", "shortDescription": {"text": "Very large file: web/app/lib/api.ts (1557 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-18647d75a177260c", "name": "Very large file: backend/tests/test_design_agent_storage.py (1255 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_design_agent_storage.py (1255 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-5a2394c0318bb654", "name": "Very large file: backend/tests/test_codebase_map_recreate.py (1825 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_codebase_map_recreate.py (1825 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-bed95a72ab62f8d0", "name": "Very large file: backend/tests/test_design_system_figma_gather.py (1534 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_design_system_figma_gather.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-7f58cb177be9b222", "name": "Very large file: backend/tests/test_design_agent_routes.py (1258 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_design_agent_routes.py (1258 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-c60c02a2304410d4", "name": "Very large file: backend/app/routes/connectors.py (1978 lines)", "shortDescription": {"text": "Very large file: backend/app/routes/connectors.py (1978 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-d8c46d512beaf11f", "name": "Very large file: backend/app/routes/design_agent.py (3416 lines)", "shortDescription": {"text": "Very large file: backend/app/routes/design_agent.py (3416 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-bca58da3ba61de63", "name": "Very large file: backend/app/design_agent/prompts.py (961 lines)", "shortDescription": {"text": "Very large file: backend/app/design_agent/prompts.py (961 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-593f61cb6927f982", "name": "Very large file: backend/app/design_agent/storage.py (1144 lines)", "shortDescription": {"text": "Very large file: backend/app/design_agent/storage.py (1144 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-b655ecdf45b005ad", "name": "Very large file: backend/app/design_agent/runner.py (1865 lines)", "shortDescription": {"text": "Very large file: backend/app/design_agent/runner.py (1865 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-fce14bbc9d6939b7", "name": "Very large file: backend/app/design_agent/codebase_map/recreate.py (1742 lines)", "shortDescription": {"text": "Very large file: backend/app/design_agent/codebase_map/recreate.py (1742 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-8c982c3cef0877c4", "name": "Very large file: backend/app/design_agent/design_system/adapters.py (1189 lines)", "shortDescription": {"text": "Very large file: backend/app/design_agent/design_system/adapters.py (1189 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 31 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 187 placeholder/mock markers across 87 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-ca65e446b17c18a6", "name": "Agent authority lacks a verifier contract: backend/skills/saas-metrics-diagnosis/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: backend/skills/saas-metrics-diagnosis/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e8a2b813de83cb2", "name": "Agent authority lacks a verifier contract: backend/skills/negotiation-prep/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: backend/skills/negotiation-prep/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f46c25928f9021b", "name": "Agent authority lacks a verifier contract: backend/skills/stakeholder-update/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: backend/skills/stakeholder-update/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b3db905dca00ecf", "name": "Commented-code block (5 lines) in web/app/p/resolveToken.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/p/resolveToken.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6cce4f40435af65e", "name": "Commented-code block (8 lines) in web/app/p/shareTokenFromPathname.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in web/app/p/shareTokenFromPathname.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0667567900f81c9a", "name": "Commented-code block (8 lines) in web/app/p/PublicTokenViewer.tsx:2", "shortDescription": {"text": "Commented-code block (8 lines) in web/app/p/PublicTokenViewer.tsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cf2aaefa70f47fa", "name": "Commented-code block (11 lines) in web/app/p/layout.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in web/app/p/layout.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fe0d80c8e76ef2e", "name": "Commented-code block (6 lines) in web/app/p/PasscodeGate.tsx:2", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/p/PasscodeGate.tsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf7ac43859102e53", "name": "Commented-code block (8 lines) in web/app/p/__tests__/page.test.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in web/app/p/__tests__/page.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a73302cfdc8d7eb8", "name": "Commented-code block (7 lines) in web/app/p/__tests__/shareTokenFromPathname.test.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/p/__tests__/shareTokenFromPathname.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba930b8b89dd187d", "name": "Commented-code block (9 lines) in web/app/p/__tests__/public-token-states.test.tsx:3", "shortDescription": {"text": "Commented-code block (9 lines) in web/app/p/__tests__/public-token-states.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f61f6e92d670b55e", "name": "Commented-code block (6 lines) in web/app/p/__tests__/public-no-view-grant.test.ts:42", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/p/__tests__/public-no-view-grant.test.ts: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-bd27c5be2c287f3c", "name": "Commented-code block (5 lines) in web/app/p/[slug]/LegacyTokenRedirect.tsx:2", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/p/[slug]/LegacyTokenRedirect.tsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abc4c3a84d15f4b6", "name": "Commented-code block (5 lines) in web/app/p/[slug]/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/p/[slug]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d2efb2254e57fca", "name": "Commented-code block (5 lines) in web/app/p/[slug]/[token]/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/p/[slug]/[token]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ee814d2c663f305", "name": "Commented-code block (7 lines) in web/app/components/connectors/__tests__/ConnectorConnectModal.newtab.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/connectors/__tests__/ConnectorConnectModal.newtab.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a399b8d0bb7d445", "name": "Commented-code block (5 lines) in web/app/components/shared/ApproveModal.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/shared/ApproveModal.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c0a14cd7b473617", "name": "Commented-code block (5 lines) in web/app/components/shared/BriefChat.tsx:390", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/shared/BriefChat.tsx:390"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb281150e00b1cdb", "name": "Commented-code block (9 lines) in web/app/components/shared/__tests__/BriefChat.test.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in web/app/components/shared/__tests__/BriefChat.test.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46e89718ad043d7d", "name": "Commented-code block (8 lines) in web/app/components/shared/__tests__/ApproveModal.test.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in web/app/components/shared/__tests__/ApproveModal.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7341d0b20468b19b", "name": "Commented-code block (6 lines) in web/app/components/shared/__tests__/PrdSections-design.test.tsx:14", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/shared/__tests__/PrdSections-design.test.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-555bb721801e68ec", "name": "Commented-code block (5 lines) in web/app/components/shared/__tests__/PrdRightRail.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/shared/__tests__/PrdRightRail.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bef2a0acc91de73", "name": "Commented-code block (5 lines) in web/app/components/shared/__tests__/BriefChat.generating.dom.test.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/shared/__tests__/BriefChat.generating.dom.test.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff860e6947e4722b", "name": "Commented-code block (6 lines) in web/app/components/screens/app/SettingsScreen.tsx:26", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/SettingsScreen.tsx: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-c29477d053be49fa", "name": "Commented-code block (6 lines) in web/app/components/screens/app/ChatScreen.tsx:475", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/ChatScreen.tsx:475"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cf4b3309f1cc013", "name": "Commented-code block (7 lines) in web/app/components/screens/app/ChatsScreen.tsx:124", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/screens/app/ChatsScreen.tsx: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-09cb500adc0de522", "name": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in web/app/components/screens/app/settings/TeamSettings.tsx:4", "shortDescription": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in web/app/components/screens/app/settings/TeamSettings.tsx: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-be175d86c994bd56", "name": "Commented-code block (6 lines) in web/app/components/screens/app/settings/StrategicSettings.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/settings/StrategicSettings.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73d50dcbf2bac4be", "name": "Commented-code block (7 lines) in web/app/components/screens/app/__tests__/ChatScreen.parallel-chats.test.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/screens/app/__tests__/ChatScreen.parallel-chats.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40e2c2f070f6bd36", "name": "Commented-code block (15 lines) in web/app/components/screens/app/__tests__/ChatScreen.concurrent-asks.test.tsx:3", "shortDescription": {"text": "Commented-code block (15 lines) in web/app/components/screens/app/__tests__/ChatScreen.concurrent-asks.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba505caccb405693", "name": "Commented-code block (6 lines) in web/app/components/screens/app/__tests__/BacklogScreen.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/__tests__/BacklogScreen.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51d7d66c95bc703b", "name": "Commented-code block (5 lines) in web/app/components/screens/app/__tests__/ArtifactsView.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/screens/app/__tests__/ArtifactsView.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb0334e464f46c02", "name": "Commented-code block (6 lines) in web/app/components/screens/onboarding/Metrics.tsx:370", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/screens/onboarding/Metrics.tsx:370"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd4a6cc455b2d335", "name": "Commented-code block (5 lines) in web/app/components/screens/onboarding/FirstBrief.tsx:171", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/screens/onboarding/FirstBrief.tsx: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-cb3c43edd91970b5", "name": "Commented-code block (11 lines) in web/app/components/screens/onboarding/__tests__/FirstBrief.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (11 lines) in web/app/components/screens/onboarding/__tests__/FirstBrief.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a9fbd75e65ed90e", "name": "Commented-code block (6 lines) in web/app/components/screens/onboarding/__tests__/Metrics.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/screens/onboarding/__tests__/Metrics.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e74a0a1ac8231849", "name": "Commented-code block (12 lines) in web/app/components/screens/onboarding/__tests__/Connectors.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (12 lines) in web/app/components/screens/onboarding/__tests__/Connectors.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04838f2850f7623a", "name": "Commented-code block (6 lines) in web/app/components/screens/onboarding/__tests__/Analyzing.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/screens/onboarding/__tests__/Analyzing.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0287aae39616b7b", "name": "Commented-code block (9 lines) in web/app/components/screens/onboarding/__tests__/Coworkers.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (9 lines) in web/app/components/screens/onboarding/__tests__/Coworkers.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a414df4270252d48", "name": "Commented-code block (7 lines) in web/app/components/screens/onboarding/__tests__/BusinessInfo.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/screens/onboarding/__tests__/BusinessInfo.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0acb7c61b7223288", "name": "Commented-code block (5 lines) in web/app/components/onboarding/__tests__/InterviewLayout.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/onboarding/__tests__/InterviewLayout.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d445133cdc141aab", "name": "Commented-code block (5 lines) in web/app/components/onboarding/__tests__/OnboardingFlowOrder.test.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/onboarding/__tests__/OnboardingFlowOrder.test.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a55e990b5b06cc62", "name": "Commented-code block (5 lines) in web/app/components/design-agent/DesignAgentLauncher.tsx:212", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/DesignAgentLauncher.tsx:212"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bfecff9e2eab2f89", "name": "Commented-code block (6 lines) in web/app/components/design-agent/useIterateRun.ts:153", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/useIterateRun.ts:153"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd0caaaabd8440d4", "name": "Commented-code block (6 lines) in web/app/components/design-agent/CommentsPanel.tsx:41", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/CommentsPanel.tsx: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-02119ccc011cc214", "name": "Commented-code block (7 lines) in web/app/components/design-agent/DesignAgentDrawer.tsx:363", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/DesignAgentDrawer.tsx:363"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fe4f4564557c897", "name": "Commented-code block (5 lines) in web/app/components/design-agent/GenerateModal.tsx:104", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/GenerateModal.tsx: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-1e649ee74bbb9756", "name": "Commented-code block (9 lines) in web/app/components/design-agent/PrototypeViewer.tsx:7", "shortDescription": {"text": "Commented-code block (9 lines) in web/app/components/design-agent/PrototypeViewer.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2f250ca451618ee", "name": "Commented-code block (6 lines) in web/app/components/design-agent/PrototypePreviewCard.tsx:80", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/PrototypePreviewCard.tsx: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-1a9ea1a1e87c2670", "name": "Commented-code block (6 lines) in web/app/components/design-agent/PostGenerationResult.tsx:32", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/PostGenerationResult.tsx: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-c5c6a7c30f0d7beb", "name": "Commented-code block (8 lines) in web/app/components/design-agent/useViewGrant.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in web/app/components/design-agent/useViewGrant.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f61b38ba6479cfa", "name": "Commented-code block (5 lines) in web/app/components/design-agent/usePinMarking.ts:189", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/usePinMarking.ts: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-9a0670a640bd99c4", "name": "Commented-code block (5 lines) in web/app/components/design-agent/IterateComposer.tsx:429", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/IterateComposer.tsx:429"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0841ba8b785d36d", "name": "Commented-code block (11 lines) in web/app/components/design-agent/notificationStore.ts:102", "shortDescription": {"text": "Commented-code block (11 lines) in web/app/components/design-agent/notificationStore.ts: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-9c602fb210e310e4", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrdPatchBanner.test.tsx:111", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrdPatchBanner.test.tsx: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-f55ad9af57948973", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/ShareMenu.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/ShareMenu.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-500825f68763e3a5", "name": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/CompletionBar.test.tsx:250", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/CompletionBar.test.tsx:250"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fa281742a034adc", "name": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/CostEstimateModal.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/CostEstimateModal.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6d1e50a04c2e1f6", "name": "Legacy-named symbol `test_collect_edits_drops_noop_when_new_equals_old` in web/app/components/design-agent/__tests__/Man", "shortDescription": {"text": "Legacy-named symbol `test_collect_edits_drops_noop_when_new_equals_old` in web/app/components/design-agent/__tests__/ManualEditOverlay.test.tsx:161"}, "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-5dec9abf93d1d0f0", "name": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/ManualEditOverlay.test.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/ManualEditOverlay.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e392300c1c41f3a", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrototypeMarkLayer.test.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrototypeMarkLayer.test.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a69aac0fb8dc88d9", "name": "Commented-code block (10 lines) in web/app/components/design-agent/__tests__/useViewGrant.test.tsx:5", "shortDescription": {"text": "Commented-code block (10 lines) in web/app/components/design-agent/__tests__/useViewGrant.test.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45e6b362366ea047", "name": "Commented-code block (9 lines) in web/app/components/design-agent/__tests__/design-agent-css.test.tsx:3", "shortDescription": {"text": "Commented-code block (9 lines) in web/app/components/design-agent/__tests__/design-agent-css.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41fe54e990d0c8b6", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PostGenerationResult-mount.test.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PostGenerationResult-mount.test.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f59ae2ff35c50cf", "name": "Commented-code block (8 lines) in web/app/components/design-agent/__tests__/usePinMarking.test.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in web/app/components/design-agent/__tests__/usePinMarking.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24b2650ec6f34ff7", "name": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/PrototypePreviewCard.test.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/PrototypePreviewCard.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6b7c3fdfa720247", "name": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/briefCard-prototype-affordances.test.tsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/briefCard-prototype-affordances.test.tsx: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-e40bf943ea4f0980", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/IterateComposer.test.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/IterateComposer.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ee663cd3ff2c38d", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/DesignAgentLauncher.test.tsx:437", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/DesignAgentLauncher.test.tsx:437"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f9f3fd66bfa34a2", "name": "Commented-code block (10 lines) in web/app/components/design-agent/__tests__/ClarifyingQuestionSurface.test.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in web/app/components/design-agent/__tests__/ClarifyingQuestionSurface.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44e07b2df5d3c70f", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/GenerationLoadingScreen.test.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/GenerationLoadingScreen.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9ba3fa98c9f259b", "name": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/PostGenerationResult.grant.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/PostGenerationResult.grant.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db17ca075a6d5545", "name": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/useIterateRun.test.tsx:168", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/useIterateRun.test.tsx: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-cf8229b09c7b742e", "name": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/PostGenerationResult.test.tsx:70", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/PostGenerationResult.test.tsx: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-46ca029bb2b9bacd", "name": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/LocateConfirmView.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/LocateConfirmView.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce139f919fbacfd6", "name": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/DesignAgentNotificationReplay.test.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/DesignAgentNotificationReplay.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64289495dea7743d", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/ShareMenu.test.tsx:32", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/ShareMenu.test.tsx: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-1db2014d871f761a", "name": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/CommentsPanel.test.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/CommentsPanel.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7b6656f3d216b37", "name": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrototypeViewer.test.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrototypeViewer.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3341c8a02bddc197", "name": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/canvas-route.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/canvas-route.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da40f39341e87c4b", "name": "Commented-code block (5 lines) in web/app/lib/api.ts:830", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/api.ts:830"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c72d682098c17b01", "name": "`fetch()` without try/.catch or AbortSignal \u2014 web/app/lib/api.ts:1010", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web/app/lib/api.ts:1010"}, "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-f785ec26b75e3af8", "name": "Commented-code block (7 lines) in web/app/lib/runPrdGeneration.ts:26", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/lib/runPrdGeneration.ts: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-6ecf3d2b5daa647a", "name": "Commented-code block (5 lines) in web/app/lib/connectorsCatalog.ts:101", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/connectorsCatalog.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bf185e53806906a", "name": "Commented-code block (6 lines) in web/app/lib/chatAskState.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/lib/chatAskState.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c23fc49f102b05af", "name": "Commented-code block (6 lines) in web/app/lib/chatPersistence.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/lib/chatPersistence.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7393eee8e0cad633", "name": "Commented-code block (5 lines) in web/app/lib/prd-adapter.ts:349", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/prd-adapter.ts:349"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-924a4d61315e8829", "name": "Commented-code block (6 lines) in web/app/lib/connectorsOauth.ts:29", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/lib/connectorsOauth.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e336d1bfa39bf242", "name": "Commented-code block (5 lines) in web/app/lib/brief-v2-adapter.ts:247", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/brief-v2-adapter.ts:247"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92f9056db2dccbca", "name": "Commented-code block (5 lines) in web/app/lib/connectorRowState.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/connectorRowState.ts: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-b4683e8f32d3e053", "name": "Commented-code block (6 lines) in web/app/lib/__tests__/api-auth-retry.test.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/lib/__tests__/api-auth-retry.test.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e34f48ab4fa77954", "name": "Commented-code block (5 lines) in web/app/lib/__tests__/routes.test.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/__tests__/routes.test.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99f58f44857ae0c5", "name": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/stepRenumber.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/stepRenumber.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99d012ccb882b482", "name": "Commented-code block (6 lines) in web/app/lib/onboarding/__tests__/slugRouting.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/lib/onboarding/__tests__/slugRouting.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6468b734a9c8ee23", "name": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/analyzeWebsite.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/analyzeWebsite.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2ac220e5b61b25b", "name": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/store.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/store.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-763cab3ea963368d", "name": "Commented-code block (7 lines) in web/app/lib/supabase/client.ts:80", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/lib/supabase/client.ts: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-7b02bb2793193cb1", "name": "Commented-code block (7 lines) in web/app/onboard/page.tsx:62", "shortDescription": {"text": "Commented-code block (7 lines) in web/app/onboard/page.tsx: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-1c02827a2370a761", "name": "Commented-code block (5 lines) in web/app/(app)/prototype/PrototypeRoute.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/(app)/prototype/PrototypeRoute.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70d73b36b5d87a8f", "name": "Commented-code block (6 lines) in web/app/(app)/prototype/page.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/(app)/prototype/page.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bced5c441de7e257", "name": "Commented-code block (6 lines) in web/app/(app)/prototype/__tests__/prototype-route.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in web/app/(app)/prototype/__tests__/prototype-route.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cdcb5d2c65147754", "name": "Commented-code block (5 lines) in web/app/(app)/onboarding/__tests__/onboarding-layout.dom.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/(app)/onboarding/__tests__/onboarding-layout.dom.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36cfcc29e8c23030", "name": "Commented-code block (5 lines) in web/app/context/NavigationContext.tsx:172", "shortDescription": {"text": "Commented-code block (5 lines) in web/app/context/NavigationContext.tsx:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ba2afdfd09cefab", "name": "Commented-code block (6 lines) in backend/tests/test_meta_integration_discipline.py:15", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_meta_integration_discipline.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-1f387ca3cd04f268", "name": "Commented-code block (7 lines) in backend/tests/test_design_agent_bundle_proxy.py:92", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/test_design_agent_bundle_proxy.py:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f94290833efce54", "name": "Commented-code block (5 lines) in backend/tests/test_db_prototype_comments.py:28", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_db_prototype_comments.py:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2a679569ccc61c3", "name": "Commented-code block (5 lines) in backend/tests/test_team_reads.py:66", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_team_reads.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-6c559a86c8054373", "name": "Commented-code block (11 lines) in backend/tests/conftest.py:36", "shortDescription": {"text": "Commented-code block (11 lines) in backend/tests/conftest.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-c58a7f3b4cfbecf7", "name": "Commented-code block (6 lines) in backend/tests/test_design_agent_orphan_reattach.py:346", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_orphan_reattach.py:346"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ad489925d8f77d4", "name": "Commented-code block (8 lines) in backend/tests/test_design_agent_prompts.py:46", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/test_design_agent_prompts.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-026530d848709cee", "name": "Commented-code block (5 lines) in backend/tests/test_legacy_routes_tenant_isolation.py:182", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_legacy_routes_tenant_isolation.py:182"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa270ff812b25d8c", "name": "Commented-code block (5 lines) in backend/tests/test_design_agent_lifecycle.py:39", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_lifecycle.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-679e6eadcf494217", "name": "Commented-code block (5 lines) in backend/tests/test_team_invite_email.py:37", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_team_invite_email.py:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f039733c9c4549a1", "name": "Commented-code block (5 lines) in backend/tests/test_design_agent_storage.py:748", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_storage.py:748"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-867a2668e7a6d971", "name": "Commented-code block (5 lines) in backend/tests/test_design_agent_comment_routes.py:44", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_comment_routes.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-db9367d029c765ea", "name": "Legacy-named symbol `pid_v2` in backend/tests/test_db_prototypes.py:290", "shortDescription": {"text": "Legacy-named symbol `pid_v2` in backend/tests/test_db_prototypes.py:290"}, "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-7de96a065ed115e5", "name": "Commented-code block (5 lines) in backend/tests/test_codebase_map_recreate.py:156", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_codebase_map_recreate.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-97d44d5daa0ae38b", "name": "Commented-code block (8 lines) in backend/tests/test_design_agent_public_hardening.py:396", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/test_design_agent_public_hardening.py:396"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-defeb3d64594de25", "name": "Legacy-named symbol `hubspot_env_v1` in backend/tests/test_routes_connectors_hubspot.py:57", "shortDescription": {"text": "Legacy-named symbol `hubspot_env_v1` in backend/tests/test_routes_connectors_hubspot.py:57"}, "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-060a75e6e2a1385a", "name": "Commented-code block (7 lines) in backend/tests/test_brief_runner.py:26", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/test_brief_runner.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-7fd55f4a6e518d2c", "name": "Legacy-named symbol `test_get_installation_for_company_rejects_foreign_and_legacy` in backend/tests/test_github_tenant_s", "shortDescription": {"text": "Legacy-named symbol `test_get_installation_for_company_rejects_foreign_and_legacy` in backend/tests/test_github_tenant_scope.py:133"}, "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-13ce05fa40af0bd9", "name": "Commented-code block (7 lines) in backend/tests/test_github_tenant_scope.py:389", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/test_github_tenant_scope.py:389"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42bd846fa8a85efe", "name": "Legacy-named symbol `prd_v2` in backend/tests/test_design_agent_brief_prototype_map.py:235", "shortDescription": {"text": "Legacy-named symbol `prd_v2` in backend/tests/test_design_agent_brief_prototype_map.py:235"}, "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-be4ef2cca42314bf", "name": "Commented-code block (6 lines) in backend/tests/test_design_agent_public_routes.py:307", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_public_routes.py:307"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-542c2cf48a6c548f", "name": "Commented-code block (5 lines) in backend/tests/test_design_agent_p4_e2e.py:72", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_p4_e2e.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-0d2314aae543e7dc", "name": "Commented-code block (6 lines) in backend/tests/test_routes_agent_chat_with_tools.py:29", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_routes_agent_chat_with_tools.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-349bba0823652bbb", "name": "Commented-code block (6 lines) in backend/tests/test_design_agent_manual_edit.py:103", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_manual_edit.py:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e23014eb230ef01d", "name": "Commented-code block (5 lines) in backend/tests/test_design_agent_prd_patch_routes.py:38", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_prd_patch_routes.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-781fe42ba6ab7484", "name": "Commented-code block (7 lines) in backend/tests/test_design_agent_p3_smoke.py:241", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/test_design_agent_p3_smoke.py:241"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc1d75bcff9f9f74", "name": "Commented-code block (5 lines) in backend/tests/test_design_agent_design_source_selection.py:259", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_design_source_selection.py:259"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eec7b45ebb76ec53", "name": "Commented-code block (13 lines) in backend/tests/test_design_agent_prd_patches.py:601", "shortDescription": {"text": "Commented-code block (13 lines) in backend/tests/test_design_agent_prd_patches.py:601"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29c018d9a3434bea", "name": "Commented-code block (5 lines) in backend/tests/_fake_supabase.py:270", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/_fake_supabase.py:270"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-106a9d8cdb47757d", "name": "Commented-code block (5 lines) in backend/tests/test_design_agent_checkpoint_chain.py:310", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_checkpoint_chain.py:310"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2644163873fde6c5", "name": "Commented-code block (8 lines) in backend/tests/test_design_agent_clarifying_question.py:522", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/test_design_agent_clarifying_question.py:522"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d0801cf50c77fc6", "name": "Commented-code block (6 lines) in backend/tests/test_design_agent_smoke.py:394", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_smoke.py:394"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c60bcc83679b0b05", "name": "Commented-code block (6 lines) in backend/tests/test_design_agent_routes.py:751", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_routes.py:751"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f20ba3400a04aaea", "name": "Commented-code block (18 lines) in backend/app/prompts.py:8", "shortDescription": {"text": "Commented-code block (18 lines) in backend/app/prompts.py: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-fe3c22af56710a56", "name": "Commented-code block (6 lines) in backend/app/brief_schedule.py:38", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/brief_schedule.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-c219f2bfbd4c01bf", "name": "Commented-code block (5 lines) in backend/app/datasets.py:161", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/datasets.py:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eaded2ff685c1fe3", "name": "Commented-code block (8 lines) in backend/app/config.py:17", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/config.py:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0f22168e17ac219", "name": "Commented-code block (8 lines) in backend/app/auth.py:305", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/auth.py:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-049498d96ef173cc", "name": "Commented-code block (5 lines) in backend/app/prd_runner.py:81", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/prd_runner.py:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5aa8295c2a9a5637", "name": "Commented-code block (7 lines) in backend/app/scheduler.py:36", "shortDescription": {"text": "Commented-code block (7 lines) in backend/app/scheduler.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-ec2c7cbc413696e7", "name": "Commented-code block (8 lines) in backend/app/llm.py:33", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/llm.py:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9234826f2dfb16e1", "name": "Commented-code block (5 lines) in backend/app/team_email.py:64", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/team_email.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-38dcaeb647c78622", "name": "Commented-code block (8 lines) in backend/app/main.py:7", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/main.py:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd140ace298134ca", "name": "Commented-code block (5 lines) in backend/app/pipeline.py:170", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/pipeline.py:170"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a03970ce0504493", "name": "Commented-code block (7 lines) in backend/app/brief_runner.py:33", "shortDescription": {"text": "Commented-code block (7 lines) in backend/app/brief_runner.py:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24b91dede3ecd74a", "name": "Commented-code block (5 lines) in backend/app/synthesis/convergence.py:64", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/synthesis/convergence.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-0754671ad5b7356d", "name": "Commented-code block (8 lines) in backend/app/connectors/google_oauth.py:21", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/connectors/google_oauth.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-95934f6863a7ceed", "name": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/hubspot_oauth.py:141", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/hubspot_oauth.py:141"}, "fullDescription": {"text": "`requests.post(...)` 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-375e54f1919f69b3", "name": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/connectors/fireflies_apikey.py:9", "shortDescription": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/connectors/fireflies_apikey.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-eaf531e59a153a72", "name": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/slack_oauth.py:300", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/slack_oauth.py:300"}, "fullDescription": {"text": "`requests.get(...)` 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-fb9516b42129df02", "name": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/github_app.py:115", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/github_app.py:115"}, "fullDescription": {"text": "`requests.post(...)` 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-a48ac34bcc166965", "name": "Commented-code block (21 lines) in backend/app/research/competitor.py:53", "shortDescription": {"text": "Commented-code block (21 lines) in backend/app/research/competitor.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-08148ea09a4f86b2", "name": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/routes/team.py:3", "shortDescription": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/routes/team.py:3"}, "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-f50083a66ba55be8", "name": "Commented-code block (5 lines) in backend/app/routes/datasets.py:81", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/routes/datasets.py:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ed85659cff9b811", "name": "Commented-code block (5 lines) in backend/app/routes/ask.py:32", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/routes/ask.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-2fc732c8811d08b5", "name": "Commented-code block (10 lines) in backend/app/routes/connectors.py:871", "shortDescription": {"text": "Commented-code block (10 lines) in backend/app/routes/connectors.py:871"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1d03a71733b82f2", "name": "Commented-code block (5 lines) in backend/app/routes/design_agent.py:129", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/routes/design_agent.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-4d5e14fd1fd6ee9d", "name": "Commented-code block (8 lines) in backend/app/routes/design_agent_bundle.py:78", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/routes/design_agent_bundle.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-e0cfb8f0c42798d8", "name": "Commented-code block (8 lines) in backend/app/design_agent/rate_limit.py:78", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/design_agent/rate_limit.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-7a422cb0ea41c0f6", "name": "Commented-code block (6 lines) in backend/app/design_agent/autofixer.js:121", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/design_agent/autofixer.js: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-afc07471a29328dd", "name": "Commented-code block (8 lines) in backend/app/design_agent/prompts.py:44", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/design_agent/prompts.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-b12e0ae3081293f3", "name": "Commented-code block (5 lines) in backend/app/design_agent/storage.py:60", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/design_agent/storage.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-50abf1169951f2e6", "name": "Network/subprocess call without timeout or try/except \u2014 backend/app/design_agent/storage.py:53", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/design_agent/storage.py:53"}, "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-f7694c7549d8c84d", "name": "Commented-code block (7 lines) in backend/app/design_agent/tools.py:332", "shortDescription": {"text": "Commented-code block (7 lines) in backend/app/design_agent/tools.py:332"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6770578b270797a4", "name": "Commented-code block (9 lines) in backend/app/design_agent/autofixer_data.py:21", "shortDescription": {"text": "Commented-code block (9 lines) in backend/app/design_agent/autofixer_data.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-5fbe1730e5138959", "name": "Commented-code block (5 lines) in backend/app/design_agent/export.py:158", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/design_agent/export.py:158"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-982b07f9131b47d2", "name": "Commented-code block (5 lines) in backend/app/design_agent/progress.py:135", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/design_agent/progress.py:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de4deb321a281f34", "name": "Commented-code block (7 lines) in backend/app/design_agent/runner.py:102", "shortDescription": {"text": "Commented-code block (7 lines) in backend/app/design_agent/runner.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-a32afaeebb02ac4a", "name": "Commented-code block (5 lines) in backend/app/design_agent/codebase_map/locate.py:39", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/design_agent/codebase_map/locate.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-e8c9b5691b29b7c3", "name": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/gate.py:28", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/gate.py:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a806eec93d68e6be", "name": "Commented-code block (5 lines) in backend/app/design_agent/codebase_map/types.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/design_agent/codebase_map/types.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-a3536e1b76a4abe7", "name": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/repo_reader.py:37", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/repo_reader.py:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f89afcb6047c74fa", "name": "Commented-code block (7 lines) in backend/app/design_agent/codebase_map/nodes.py:102", "shortDescription": {"text": "Commented-code block (7 lines) in backend/app/design_agent/codebase_map/nodes.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-483a07dfbda5f3fd", "name": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/edges.py:29", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/edges.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83bb30f7283eba8f", "name": "Commented-code block (11 lines) in backend/app/design_agent/codebase_map/recreate.py:440", "shortDescription": {"text": "Commented-code block (11 lines) in backend/app/design_agent/codebase_map/recreate.py:440"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9f5ebb0eb2453f9", "name": "Commented-code block (9 lines) in backend/app/design_agent/codebase_map/nav_probe.py:160", "shortDescription": {"text": "Commented-code block (9 lines) in backend/app/design_agent/codebase_map/nav_probe.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-74ed49cd443b2e4b", "name": "Commented-code block (6 lines) in backend/app/design_agent/design_system/figma_gather.py:228", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/design_agent/design_system/figma_gather.py:228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7c14adccc904bd8", "name": "Commented-code block (8 lines) in backend/app/design_agent/design_system/adapters.py:81", "shortDescription": {"text": "Commented-code block (8 lines) in backend/app/design_agent/design_system/adapters.py:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7558a68305d8bed1", "name": "Commented-code block (6 lines) in backend/app/design_agent/design_system/hardening.py:31", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/design_agent/design_system/hardening.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e98c1ca79e4c453e", "name": "Commented-code block (5 lines) in backend/app/design_agent/design_system/signals.py:93", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/design_agent/design_system/signals.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-76ad04d709484208", "name": "Commented-code block (13 lines) in backend/app/design_agent/scenarios/website.py:389", "shortDescription": {"text": "Commented-code block (13 lines) in backend/app/design_agent/scenarios/website.py:389"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7d66307e7f75809", "name": "Commented-code block (5 lines) in backend/app/db/connections.py:229", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/db/connections.py:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f9172edca5590e7", "name": "Commented-code block (5 lines) in backend/app/db/products.py:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/db/products.py:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b891d96be4699eeb", "name": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/db/team.py:3", "shortDescription": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/db/team.py:3"}, "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-d4a50a1d05cd3463", "name": "Commented-code block (7 lines) in backend/app/db/prototypes.py:424", "shortDescription": {"text": "Commented-code block (7 lines) in backend/app/db/prototypes.py:424"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-171a7033cf494899", "name": "Commented-code block (6 lines) in backend/app/graph/retrieval.py:254", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/graph/retrieval.py:254"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-719bc015277627e2", "name": "Commented-code block (6 lines) in backend/app/graph/gateway.py:38", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app/graph/gateway.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-9f53091c8173be89", "name": "Legacy-named symbol `metric_series_v1` in backend/app/graph/config_layers.py:114", "shortDescription": {"text": "Legacy-named symbol `metric_series_v1` in backend/app/graph/config_layers.py:114"}, "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-a85ee459d4401c57", "name": "Commented-code block (5 lines) in backend/app/graph/config_layers.py:68", "shortDescription": {"text": "Commented-code block (5 lines) in backend/app/graph/config_layers.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-4474e0089c4a482f", "name": "Commented-code block (7 lines) in prototype-runtime/test/base-relative-paths.test.ts:11", "shortDescription": {"text": "Commented-code block (7 lines) in prototype-runtime/test/base-relative-paths.test.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf3b14cb6857dc7d", "name": "Commented-code block (8 lines) in prototype-runtime/test/anchor-id-stability.test.ts:179", "shortDescription": {"text": "Commented-code block (8 lines) in prototype-runtime/test/anchor-id-stability.test.ts: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-68006d8fb179b4ee", "name": "Commented-code block (5 lines) in prototype-runtime/test/helpers/build-fixture.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in prototype-runtime/test/helpers/build-fixture.ts: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-689b361db02401ad", "name": "Commented-code block (5 lines) in ds-agent/ds_agent/server/chat.py:222", "shortDescription": {"text": "Commented-code block (5 lines) in ds-agent/ds_agent/server/chat.py:222"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37faba6df8b00ebc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 ds-agent/ds_agent/server/static/app.js:206", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ds-agent/ds_agent/server/static/app.js:206"}, "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-70fcae2d13c708b6", "name": "17 env vars used in code but missing from .env.example", "shortDescription": {"text": "17 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AGENT_COOKIE_SECRET`, `AGENT_EFFORT`, `AGENT_MAX_TOKENS`, `AGENT_MODEL`, `AGENT_PASSWORD`, `AGENT_UPLOAD_DIR`, `DESIGN_AGENT_ENABLED`, `DESIGN_AGENT_MAX_TOKENS` + 9 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:\nbackend/app/llm.py:call_json, backend/app/llm.py:call_md\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-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/app/connectors/hubspot_oauth.py:sign_oauth_state, backend/app/connectors/figma_oauth.py:sign_oauth_state, backend/app/connectors/github_app.py:sign_oauth_state, backend/app/connectors/clickup_oauth.py:sign_oauth_state\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:\nbackend/app/design_agent/codebase_map/stack.py:enumerate_nodes, backend/app/design_agent/codebase_map/stack.py:enumerate_nodes, backend/app/design_agent/codebase_map/stack.py:enumerate_nodes\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:\nbackend/app/design_agent/design_system/github_gather.py:detect, backend/app/design_agent/design_system/github_gather.py:detect, backend/app/design_agent/design_system/github_gather.py:detect, backend/app/design_agent/design_system/github_gather.py:detect\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-04f3f3e0da161c95", "name": "FastAPI POST `github_webhook` without auth dependency \u2014 backend/app/routes/connectors.py:1949", "shortDescription": {"text": "FastAPI POST `github_webhook` without auth dependency \u2014 backend/app/routes/connectors.py:1949"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4fbcd408e7b1325b", "name": "FastAPI POST `verify_passcode` without auth dependency \u2014 backend/app/routes/design_agent.py:1900", "shortDescription": {"text": "FastAPI POST `verify_passcode` without auth dependency \u2014 backend/app/routes/design_agent.py:1900"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ad50f0afcfd9e298", "name": "FastAPI POST `post_comment_public` without auth dependency \u2014 backend/app/routes/design_agent.py:2328", "shortDescription": {"text": "FastAPI POST `post_comment_public` without auth dependency \u2014 backend/app/routes/design_agent.py:2328"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-618721b912bad1c2", "name": "Unused endpoint: POST /login", "shortDescription": {"text": "Unused endpoint: POST /login"}, "fullDescription": {"text": "`backend/app/auth.py` declares `POST /login` 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-99fc36db98c134ce", "name": "Unused endpoint: POST /logout", "shortDescription": {"text": "Unused endpoint: POST /logout"}, "fullDescription": {"text": "`backend/app/auth.py` declares `POST /logout` 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-fd1dc91abf32142d", "name": "Unused endpoint: GET /me", "shortDescription": {"text": "Unused endpoint: GET /me"}, "fullDescription": {"text": "`backend/app/auth.py` declares `GET /me` 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-970eb92d6ec2bfaa", "name": "Unused endpoint: POST /generate", "shortDescription": {"text": "Unused endpoint: POST /generate"}, "fullDescription": {"text": "`backend/app/routes/evidence.py` declares `POST /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-aa0dfeac504ca171", "name": "Unused endpoint: GET /{evidence_id}", "shortDescription": {"text": "Unused endpoint: GET /{evidence_id}"}, "fullDescription": {"text": "`backend/app/routes/evidence.py` declares `GET /{evidence_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-7ce17d6b092a81ca", "name": "Unused endpoint: POST /refresh", "shortDescription": {"text": "Unused endpoint: POST /refresh"}, "fullDescription": {"text": "`backend/app/routes/metrics.py` declares `POST /refresh` 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-d0b1782e08140b20", "name": "Unused endpoint: GET /series", "shortDescription": {"text": "Unused endpoint: GET /series"}, "fullDescription": {"text": "`backend/app/routes/metrics.py` declares `GET /series` 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-e686634beeea0bb8", "name": "Unused endpoint: GET /export", "shortDescription": {"text": "Unused endpoint: GET /export"}, "fullDescription": {"text": "`backend/app/routes/metrics.py` declares `GET /export` 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-f3c4eb974e4684dd", "name": "Unused endpoint: POST /seed", "shortDescription": {"text": "Unused endpoint: POST /seed"}, "fullDescription": {"text": "`backend/app/routes/synthesis.py` declares `POST /seed` 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-fa23ae39a0cb7172", "name": "Unused endpoint: POST /brief", "shortDescription": {"text": "Unused endpoint: POST /brief"}, "fullDescription": {"text": "`backend/app/routes/synthesis.py` declares `POST /brief` 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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`backend/app/routes/backlog.py` declares `GET /` 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-53ef6ff67887838c", "name": "Unused endpoint: PATCH /{item_id}", "shortDescription": {"text": "Unused endpoint: PATCH /{item_id}"}, "fullDescription": {"text": "`backend/app/routes/backlog.py` declares `PATCH /{item_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-ed364e7ddc332d07", "name": "Unused endpoint: POST /lists", "shortDescription": {"text": "Unused endpoint: POST /lists"}, "fullDescription": {"text": "`backend/app/routes/stories.py` declares `POST /lists` 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-69faab573192e50b", "name": "Unused endpoint: POST /push", "shortDescription": {"text": "Unused endpoint: POST /push"}, "fullDescription": {"text": "`backend/app/routes/stories.py` declares `POST /push` 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-3e8a0a7b406443bc", "name": "Unused endpoint: GET /members", "shortDescription": {"text": "Unused endpoint: GET /members"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `GET /members` 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-5a436a81cf6d77eb", "name": "Unused endpoint: GET /invites", "shortDescription": {"text": "Unused endpoint: GET /invites"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `GET /invites` 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-c9451b66f68ffc25", "name": "Unused endpoint: POST /invites", "shortDescription": {"text": "Unused endpoint: POST /invites"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `POST /invites` 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-85d6ae9d0bfd7fad", "name": "Unused endpoint: DELETE /invites/{invite_id}", "shortDescription": {"text": "Unused endpoint: DELETE /invites/{invite_id}"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `DELETE /invites/{invite_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-59a7d997db7fb782", "name": "Unused endpoint: POST /invites/{invite_id}/resend", "shortDescription": {"text": "Unused endpoint: POST /invites/{invite_id}/resend"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `POST /invites/{invite_id}/resend` 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-fa40ed3706b16262", "name": "Unused endpoint: PATCH /members/{user_id}", "shortDescription": {"text": "Unused endpoint: PATCH /members/{user_id}"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `PATCH /members/{user_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-ffaa32944aee48b8", "name": "Unused endpoint: DELETE /members/{user_id}", "shortDescription": {"text": "Unused endpoint: DELETE /members/{user_id}"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `DELETE /members/{user_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-770d646c1fdaba28", "name": "Unused endpoint: POST /accept", "shortDescription": {"text": "Unused endpoint: POST /accept"}, "fullDescription": {"text": "`backend/app/routes/team.py` declares `POST /accept` 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-37157900d71c21d3", "name": "Unused endpoint: GET /latest", "shortDescription": {"text": "Unused endpoint: GET /latest"}, "fullDescription": {"text": "`backend/app/routes/prd.py` declares `GET /latest` 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-6b37ff2f97ca73bd", "name": "Unused endpoint: GET /{prd_id}", "shortDescription": {"text": "Unused endpoint: GET /{prd_id}"}, "fullDescription": {"text": "`backend/app/routes/prd.py` declares `GET /{prd_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-3d7917a245b8751d", "name": "Unused endpoint: PUT /{prd_id}", "shortDescription": {"text": "Unused endpoint: PUT /{prd_id}"}, "fullDescription": {"text": "`backend/app/routes/prd.py` declares `PUT /{prd_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-1247881c02401970", "name": "Unused endpoint: POST /{prd_id}/versions", "shortDescription": {"text": "Unused endpoint: POST /{prd_id}/versions"}, "fullDescription": {"text": "`backend/app/routes/prd.py` declares `POST /{prd_id}/versions` 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-8c5134a899dda8fc", "name": "Unused endpoint: GET /{prd_id}/versions", "shortDescription": {"text": "Unused endpoint: GET /{prd_id}/versions"}, "fullDescription": {"text": "`backend/app/routes/prd.py` declares `GET /{prd_id}/versions` 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-950d6b66ebc3e3cc", "name": "Unused endpoint: POST /{prd_id}/versions/{version_id}/restore", "shortDescription": {"text": "Unused endpoint: POST /{prd_id}/versions/{version_id}/restore"}, "fullDescription": {"text": "`backend/app/routes/prd.py` declares `POST /{prd_id}/versions/{version_id}/restore` 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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`backend/app/routes/datasets.py` declares `POST /` 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-62c61f73483d1932", "name": "Unused endpoint: POST /{slug}/files", "shortDescription": {"text": "Unused endpoint: POST /{slug}/files"}, "fullDescription": {"text": "`backend/app/routes/datasets.py` declares `POST /{slug}/files` 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-ae223c04f54e44d6", "name": "Unused endpoint: GET /{slug}/files", "shortDescription": {"text": "Unused endpoint: GET /{slug}/files"}, "fullDescription": {"text": "`backend/app/routes/datasets.py` declares `GET /{slug}/files` 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-1c748093e3ba32a9", "name": "Unused endpoint: DELETE /{slug}/files/{filename}", "shortDescription": {"text": "Unused endpoint: DELETE /{slug}/files/{filename}"}, "fullDescription": {"text": "`backend/app/routes/datasets.py` declares `DELETE /{slug}/files/{filename}` 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-2675664de77381fa", "name": "Unused endpoint: POST /{slug}/generate", "shortDescription": {"text": "Unused endpoint: POST /{slug}/generate"}, "fullDescription": {"text": "`backend/app/routes/datasets.py` declares `POST /{slug}/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-115736d40adf25ab", "name": "Unused endpoint: DELETE /{slug}", "shortDescription": {"text": "Unused endpoint: DELETE /{slug}"}, "fullDescription": {"text": "`backend/app/routes/datasets.py` declares `DELETE /{slug}` 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-5c5c6900e4670966", "name": "Unused endpoint: GET /skills", "shortDescription": {"text": "Unused endpoint: GET /skills"}, "fullDescription": {"text": "`backend/app/routes/ask.py` declares `GET /skills` 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-d467299d5c174fc0", "name": "Unused endpoint: GET /usage", "shortDescription": {"text": "Unused endpoint: GET /usage"}, "fullDescription": {"text": "`backend/app/routes/ask.py` declares `GET /usage` 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-8a38f52aeddc3aad", "name": "Unused endpoint: PATCH /{conversation_id}", "shortDescription": {"text": "Unused endpoint: PATCH /{conversation_id}"}, "fullDescription": {"text": "`backend/app/routes/conversations.py` declares `PATCH /{conversation_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-ad72d180247f16e2", "name": "Unused endpoint: DELETE /{conversation_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{conversation_id}"}, "fullDescription": {"text": "`backend/app/routes/conversations.py` declares `DELETE /{conversation_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-9daca9846d3ec945", "name": "Unused endpoint: GET /{conversation_id}/turns", "shortDescription": {"text": "Unused endpoint: GET /{conversation_id}/turns"}, "fullDescription": {"text": "`backend/app/routes/conversations.py` declares `GET /{conversation_id}/turns` 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-35c1326e364d45e4", "name": "Unused endpoint: POST /{conversation_id}/turns", "shortDescription": {"text": "Unused endpoint: POST /{conversation_id}/turns"}, "fullDescription": {"text": "`backend/app/routes/conversations.py` declares `POST /{conversation_id}/turns` 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-bad01ac2222e29f1", "name": "Unused endpoint: GET /{run_id}", "shortDescription": {"text": "Unused endpoint: GET /{run_id}"}, "fullDescription": {"text": "`backend/app/routes/multi_agent.py` declares `GET /{run_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-b1a6d8c78085d6ae", "name": "Unused endpoint: GET /{run_id}/docs", "shortDescription": {"text": "Unused endpoint: GET /{run_id}/docs"}, "fullDescription": {"text": "`backend/app/routes/multi_agent.py` declares `GET /{run_id}/docs` 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-5ed08c9bfebceea7", "name": "Unused endpoint: GET /doc/{doc_id}", "shortDescription": {"text": "Unused endpoint: GET /doc/{doc_id}"}, "fullDescription": {"text": "`backend/app/routes/multi_agent.py` declares `GET /doc/{doc_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-0b83a9ec8b31ccf9", "name": "Unused endpoint: GET /{ticket_key}/data", "shortDescription": {"text": "Unused endpoint: GET /{ticket_key}/data"}, "fullDescription": {"text": "`backend/app/routes/tickets.py` declares `GET /{ticket_key}/data` 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-ea4eebcde6f73e05", "name": "Unused endpoint: PUT /{ticket_key}/description", "shortDescription": {"text": "Unused endpoint: PUT /{ticket_key}/description"}, "fullDescription": {"text": "`backend/app/routes/tickets.py` declares `PUT /{ticket_key}/description` 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-9211c452b98f002d", "name": "Unused endpoint: POST /{ticket_key}/attachments", "shortDescription": {"text": "Unused endpoint: POST /{ticket_key}/attachments"}, "fullDescription": {"text": "`backend/app/routes/tickets.py` declares `POST /{ticket_key}/attachments` 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-3a6e4818d24963cb", "name": "Unused endpoint: DELETE /{ticket_key}/attachments/{attachment_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{ticket_key}/attachments/{attachment_id}"}, "fullDescription": {"text": "`backend/app/routes/tickets.py` declares `DELETE /{ticket_key}/attachments/{attachment_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-03840d056fb9df63", "name": "Unused endpoint: POST /{ticket_key}/comments", "shortDescription": {"text": "Unused endpoint: POST /{ticket_key}/comments"}, "fullDescription": {"text": "`backend/app/routes/tickets.py` declares `POST /{ticket_key}/comments` 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-3a7534d24fe68c23", "name": "Unused endpoint: DELETE /{ticket_key}/comments/{comment_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{ticket_key}/comments/{comment_id}"}, "fullDescription": {"text": "`backend/app/routes/tickets.py` declares `DELETE /{ticket_key}/comments/{comment_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-0e34f253d96333bc", "name": "Unused endpoint: POST /push-clickup", "shortDescription": {"text": "Unused endpoint: POST /push-clickup"}, "fullDescription": {"text": "`backend/app/routes/tickets.py` declares `POST /push-clickup` 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/20148"}, "properties": {"repository": "Sprntly/sprntly-app", "repoUrl": "https://github.com/Sprntly/sprntly-app", "branch": "main"}, "results": [{"ruleId": "scanner-0276bbe589130b8e", "level": "note", "message": {"text": "Possibly dead Python function: set_verify"}, "properties": {"repobilityId": "5343153f34415835", "scanner": "scanner-primary", "fingerprint": "0276bbe589130b8e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/qa_agent.py:58"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0dd85d35bab7bd5a", "level": "note", "message": {"text": "Possibly dead Python function: require_company_from_query"}, "properties": {"repobilityId": "84f35bdf6a8a7468", "scanner": "scanner-primary", "fingerprint": "0dd85d35bab7bd5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/auth.py:384"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-097a7f14615f65d7", "level": "note", "message": {"text": "Possibly dead Python function: resolve_company_optional"}, "properties": {"repobilityId": "1d85182c10e46fd3", "scanner": "scanner-primary", "fingerprint": "097a7f14615f65d7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/auth.py:397"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-29e8661c8af046f5", "level": "note", "message": {"text": "Possibly dead Python function: cmd_init_db"}, "properties": {"repobilityId": "c657b14a42354669", "scanner": "scanner-primary", "fingerprint": "29e8661c8af046f5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/cli.py:11"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0bef76b1e2546300", "level": "note", "message": {"text": "Possibly dead Python function: cmd_show_brief"}, "properties": {"repobilityId": "7c2889eeb3191dbd", "scanner": "scanner-primary", "fingerprint": "0bef76b1e2546300", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/cli.py:16"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3b460cfeed1f3421", "level": "note", "message": {"text": "Possibly dead Python function: cmd_generate_brief"}, "properties": {"repobilityId": "44c7148c8ccc3907", "scanner": "scanner-primary", "fingerprint": "3b460cfeed1f3421", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/cli.py:24"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a70562bbf9fc7015", "level": "note", "message": {"text": "Possibly dead Python function: csv_to_md"}, "properties": {"repobilityId": "3822b1bc40df1979", "scanner": "scanner-primary", "fingerprint": "a70562bbf9fc7015", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/ingest.py:101"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4989b0c83a652fb", "level": "note", "message": {"text": "Possibly dead Python function: guarded_redirect_hook"}, "properties": {"repobilityId": "ce286f647a384e84", "scanner": "scanner-primary", "fingerprint": "b4989b0c83a652fb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/net_guard.py:101"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-15a588c379b24d2b", "level": "note", "message": {"text": "Possibly dead Python function: format_brief_message"}, "properties": {"repobilityId": "c9bc2e90aff64a9c", "scanner": "scanner-primary", "fingerprint": "15a588c379b24d2b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/connectors/slack_oauth.py:344"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fb7ef9c2280129e6", "level": "note", "message": {"text": "Possibly dead Python function: refresh_user_token"}, "properties": {"repobilityId": "c90b6a360f9c130f", "scanner": "scanner-primary", "fingerprint": "fb7ef9c2280129e6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/connectors/github_app.py:139"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-75c16849b8c89653", "level": "note", "message": {"text": "Possibly dead Python function: model_post_init"}, "properties": {"repobilityId": "92fde611a57364a6", "scanner": "scanner-primary", "fingerprint": "75c16849b8c89653", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/routes/connectors.py:1763"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-81bedae97b22c449", "level": "note", "message": {"text": "Possibly dead Python function: scrape_multiple"}, "properties": {"repobilityId": "0c313c29daee0049", "scanner": "scanner-primary", "fingerprint": "81bedae97b22c449", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/agents/scraper.py:151"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d422a0e678572c63", "level": "note", "message": {"text": "Possibly dead Python function: generate_technical_design_sync"}, "properties": {"repobilityId": "77e108ce2f7f6063", "scanner": "scanner-primary", "fingerprint": "d422a0e678572c63", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/agents/technical_design.py:100"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5bd40fdd2da918d6", "level": "note", "message": {"text": "Possibly dead Python function: generate_traceability_matrix_sync"}, "properties": {"repobilityId": "81378e3d61535472", "scanner": "scanner-primary", "fingerprint": "5bd40fdd2da918d6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/agents/traceability_matrix.py:119"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1ebb1f571bd0514", "level": "note", "message": {"text": "Possibly dead Python function: generate_risk_analysis_sync"}, "properties": {"repobilityId": "36e44f2f2fc94750", "scanner": "scanner-primary", "fingerprint": "a1ebb1f571bd0514", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/agents/risk_analysis.py:119"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b199ccc081a93e54", "level": "note", "message": {"text": "Possibly dead Python function: upsert_entity"}, "properties": {"repobilityId": "f1180d35691ea848", "scanner": "scanner-primary", "fingerprint": "b199ccc081a93e54", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/db/knowledge.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-142a11ba6366b217", "level": "note", "message": {"text": "Possibly dead Python function: upsert_relationship"}, "properties": {"repobilityId": "49af23f7b14ffeca", "scanner": "scanner-primary", "fingerprint": "142a11ba6366b217", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/db/knowledge.py:34"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e3837a21324eae6c", "level": "note", "message": {"text": "Possibly dead Python function: clear_entities"}, "properties": {"repobilityId": "dd34d1c1fa85ae12", "scanner": "scanner-primary", "fingerprint": "e3837a21324eae6c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/db/knowledge.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6be4338f588e7a1a", "level": "note", "message": {"text": "Possibly dead Python function: is_valid_id"}, "properties": {"repobilityId": "4176922f8870b890", "scanner": "scanner-primary", "fingerprint": "6be4338f588e7a1a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ds-agent/ds_agent/server/agents.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-257a3e51a0ad26b0", "level": "note", "message": {"text": "Possibly dead Python function: gc"}, "properties": {"repobilityId": "2b5ec7959bd1585c", "scanner": "scanner-primary", "fingerprint": "257a3e51a0ad26b0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ds-agent/ds_agent/server/state.py:81"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-586b652accec335e", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 web/app/components/screens/app/TicketsScreen.tsx:157"}, "properties": {"repobilityId": "a9bff1b50f2788a3", "scanner": "scanner-primary", "fingerprint": "586b652accec335e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3eec641efbf6fd2a", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 web/public/sprntly.js:111"}, "properties": {"repobilityId": "94ef26a8ea839933", "scanner": "scanner-primary", "fingerprint": "3eec641efbf6fd2a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1f66ad88286ca30a", "level": "warning", "message": {"text": "Dockerfile runs as root: backend/Dockerfile"}, "properties": {"repobilityId": "7afd2b0e8a8c9eeb", "scanner": "scanner-primary", "fingerprint": "1f66ad88286ca30a", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-8cd20d539467d2c5", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "06b87ac9439092d6", "scanner": "scanner-primary", "fingerprint": "8cd20d539467d2c5", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/Dockerfile"}, "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-eab32cfbb489c1f9", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in web/app/components/shared/PrdPanelContent.tsx:69"}, "properties": {"repobilityId": "c76167c7e14415fa", "scanner": "scanner-primary", "fingerprint": "eab32cfbb489c1f9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/app/components/shared/PrdPanelContent.tsx"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-aba06313c9a20d6e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/app/components/shared/PrdPanelContent.tsx:298"}, "properties": {"repobilityId": "b8c8e7bd7483670f", "scanner": "scanner-primary", "fingerprint": "aba06313c9a20d6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/app/components/shared/PrdPanelContent.tsx"}, "region": {"startLine": 298}}}]}, {"ruleId": "scanner-1ea867406428369d", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in web/app/components/screens/app/PrdScreen.tsx:418"}, "properties": {"repobilityId": "50b369b64fda9bf7", "scanner": "scanner-primary", "fingerprint": "1ea867406428369d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/app/components/screens/app/PrdScreen.tsx"}, "region": {"startLine": 418}}}]}, {"ruleId": "scanner-2c906667aeb90c59", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/app/components/screens/app/PrdScreen.tsx:136"}, "properties": {"repobilityId": "6e2f94465fae619c", "scanner": "scanner-primary", "fingerprint": "2c906667aeb90c59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/app/components/screens/app/PrdScreen.tsx"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-4b16570cbce29c89", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/public/sprntly.js:22"}, "properties": {"repobilityId": "4bf4e8ffa5da4ce0", "scanner": "scanner-primary", "fingerprint": "4b16570cbce29c89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/public/sprntly.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-d854debaa806f038", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ds-agent/ds_agent/server/static/app.js:125"}, "properties": {"repobilityId": "a6dda9312ae1d565", "scanner": "scanner-primary", "fingerprint": "d854debaa806f038", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ds-agent/ds_agent/server/static/app.js"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-09b62f2e973d45ef", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "684197edb1870a09", "scanner": "scanner-primary", "fingerprint": "09b62f2e973d45ef", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/sync-backend-env.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-9d7e8d370403d6cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a1b412909e789150", "scanner": "scanner-primary", "fingerprint": "9d7e8d370403d6cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-backend.yml"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-163bf0657d3160c3", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "72bfd240b6314146", "scanner": "scanner-primary", "fingerprint": "163bf0657d3160c3", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-agent.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-2c8fbbaf032492b9", "level": "note", "message": {"text": "Very large file: web/app/components/shared/ContentPanel.tsx (1239 lines)"}, "properties": {"repobilityId": "f6a397f9b8d3b067", "scanner": "scanner-primary", "fingerprint": "2c8fbbaf032492b9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-46f8034730afa029", "level": "note", "message": {"text": "Very large file: web/app/components/shared/BriefChat.tsx (1715 lines)"}, "properties": {"repobilityId": "85d3eb847204e2bc", "scanner": "scanner-primary", "fingerprint": "46f8034730afa029", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b1db54de1e61b82a", "level": "note", "message": {"text": "Very large file: web/app/components/screens/app/ChatScreen.tsx (1198 lines)"}, "properties": {"repobilityId": "edfcd0c3a8595ff5", "scanner": "scanner-primary", "fingerprint": "b1db54de1e61b82a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-648049c6caf47d03", "level": "note", "message": {"text": "Very large file: web/app/components/design-agent/PostGenerationResult.tsx (1689 lines)"}, "properties": {"repobilityId": "5f2d846bfab8136e", "scanner": "scanner-primary", "fingerprint": "648049c6caf47d03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-68a244a828b84986", "level": "note", "message": {"text": "Very large file: web/app/lib/api.ts (1557 lines)"}, "properties": {"repobilityId": "c1289d769830c1ea", "scanner": "scanner-primary", "fingerprint": "68a244a828b84986", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-18647d75a177260c", "level": "note", "message": {"text": "Very large file: backend/tests/test_design_agent_storage.py (1255 lines)"}, "properties": {"repobilityId": "0bb81e590c007af1", "scanner": "scanner-primary", "fingerprint": "18647d75a177260c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5a2394c0318bb654", "level": "note", "message": {"text": "Very large file: backend/tests/test_codebase_map_recreate.py (1825 lines)"}, "properties": {"repobilityId": "0499b239f96d1ed7", "scanner": "scanner-primary", "fingerprint": "5a2394c0318bb654", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bed95a72ab62f8d0", "level": "note", "message": {"text": "Very large file: backend/tests/test_design_system_figma_gather.py (1534 lines)"}, "properties": {"repobilityId": "5259dc9d56c960da", "scanner": "scanner-primary", "fingerprint": "bed95a72ab62f8d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f58cb177be9b222", "level": "note", "message": {"text": "Very large file: backend/tests/test_design_agent_routes.py (1258 lines)"}, "properties": {"repobilityId": "7ffb2cb96aadd43e", "scanner": "scanner-primary", "fingerprint": "7f58cb177be9b222", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c60c02a2304410d4", "level": "note", "message": {"text": "Very large file: backend/app/routes/connectors.py (1978 lines)"}, "properties": {"repobilityId": "7bd4e5cecaec5b76", "scanner": "scanner-primary", "fingerprint": "c60c02a2304410d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d8c46d512beaf11f", "level": "note", "message": {"text": "Very large file: backend/app/routes/design_agent.py (3416 lines)"}, "properties": {"repobilityId": "6adbfa25039ef41e", "scanner": "scanner-primary", "fingerprint": "d8c46d512beaf11f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bca58da3ba61de63", "level": "note", "message": {"text": "Very large file: backend/app/design_agent/prompts.py (961 lines)"}, "properties": {"repobilityId": "921810ee443e5971", "scanner": "scanner-primary", "fingerprint": "bca58da3ba61de63", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-593f61cb6927f982", "level": "note", "message": {"text": "Very large file: backend/app/design_agent/storage.py (1144 lines)"}, "properties": {"repobilityId": "cb2b132763b622e7", "scanner": "scanner-primary", "fingerprint": "593f61cb6927f982", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b655ecdf45b005ad", "level": "note", "message": {"text": "Very large file: backend/app/design_agent/runner.py (1865 lines)"}, "properties": {"repobilityId": "2a034046c46baada", "scanner": "scanner-primary", "fingerprint": "b655ecdf45b005ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fce14bbc9d6939b7", "level": "note", "message": {"text": "Very large file: backend/app/design_agent/codebase_map/recreate.py (1742 lines)"}, "properties": {"repobilityId": "3857fc8e5c3efda3", "scanner": "scanner-primary", "fingerprint": "fce14bbc9d6939b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8c982c3cef0877c4", "level": "note", "message": {"text": "Very large file: backend/app/design_agent/design_system/adapters.py (1189 lines)"}, "properties": {"repobilityId": "51c0bf786d711ec0", "scanner": "scanner-primary", "fingerprint": "8c982c3cef0877c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "5864a3c3260a5793", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2e65b4b8482fd60f", "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": "97bf95bbf644997e", "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": "056ddbe672d75adc", "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": "447cd578cda09ae0", "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": "510ad37786ddbfa7", "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": "a33a51355808fbad", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-ca65e446b17c18a6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: backend/skills/saas-metrics-diagnosis/SKILL.md"}, "properties": {"repobilityId": "9476846f72e05676", "scanner": "scanner-primary", "fingerprint": "ca65e446b17c18a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/skills/saas-metrics-diagnosis/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e8a2b813de83cb2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: backend/skills/negotiation-prep/SKILL.md"}, "properties": {"repobilityId": "3187aab6ff5018fa", "scanner": "scanner-primary", "fingerprint": "7e8a2b813de83cb2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/skills/negotiation-prep/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f46c25928f9021b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: backend/skills/stakeholder-update/SKILL.md"}, "properties": {"repobilityId": "795e6790e1394d67", "scanner": "scanner-primary", "fingerprint": "9f46c25928f9021b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/skills/stakeholder-update/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8b3db905dca00ecf", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/p/resolveToken.ts:1"}, "properties": {"repobilityId": "959f8d81274bbb35", "scanner": "scanner-primary", "fingerprint": "8b3db905dca00ecf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cce4f40435af65e", "level": "none", "message": {"text": "Commented-code block (8 lines) in web/app/p/shareTokenFromPathname.ts:3"}, "properties": {"repobilityId": "b527f0558ce19b1d", "scanner": "scanner-primary", "fingerprint": "6cce4f40435af65e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0667567900f81c9a", "level": "none", "message": {"text": "Commented-code block (8 lines) in web/app/p/PublicTokenViewer.tsx:2"}, "properties": {"repobilityId": "38d80cde6eb5d9b0", "scanner": "scanner-primary", "fingerprint": "0667567900f81c9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1cf2aaefa70f47fa", "level": "none", "message": {"text": "Commented-code block (11 lines) in web/app/p/layout.tsx:1"}, "properties": {"repobilityId": "f828db4bff28104c", "scanner": "scanner-primary", "fingerprint": "1cf2aaefa70f47fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fe0d80c8e76ef2e", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/p/PasscodeGate.tsx:2"}, "properties": {"repobilityId": "0c8084bfe09c8b47", "scanner": "scanner-primary", "fingerprint": "8fe0d80c8e76ef2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf7ac43859102e53", "level": "none", "message": {"text": "Commented-code block (8 lines) in web/app/p/__tests__/page.test.tsx:1"}, "properties": {"repobilityId": "203c8f08b8c032f4", "scanner": "scanner-primary", "fingerprint": "cf7ac43859102e53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a73302cfdc8d7eb8", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/p/__tests__/shareTokenFromPathname.test.ts:3"}, "properties": {"repobilityId": "94a7851f81ed1e78", "scanner": "scanner-primary", "fingerprint": "a73302cfdc8d7eb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba930b8b89dd187d", "level": "none", "message": {"text": "Commented-code block (9 lines) in web/app/p/__tests__/public-token-states.test.tsx:3"}, "properties": {"repobilityId": "3d9054863c00cba7", "scanner": "scanner-primary", "fingerprint": "ba930b8b89dd187d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f61f6e92d670b55e", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/p/__tests__/public-no-view-grant.test.ts:42"}, "properties": {"repobilityId": "0c3f3d980840a894", "scanner": "scanner-primary", "fingerprint": "f61f6e92d670b55e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd27c5be2c287f3c", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/p/[slug]/LegacyTokenRedirect.tsx:2"}, "properties": {"repobilityId": "d77fdf2c950c453f", "scanner": "scanner-primary", "fingerprint": "bd27c5be2c287f3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abc4c3a84d15f4b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/p/[slug]/page.tsx:1"}, "properties": {"repobilityId": "f8df1aed9ff86ee0", "scanner": "scanner-primary", "fingerprint": "abc4c3a84d15f4b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d2efb2254e57fca", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/p/[slug]/[token]/page.tsx:1"}, "properties": {"repobilityId": "86d42f71280c018b", "scanner": "scanner-primary", "fingerprint": "9d2efb2254e57fca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ee814d2c663f305", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/connectors/__tests__/ConnectorConnectModal.newtab.dom.test.tsx:3"}, "properties": {"repobilityId": "b3ee9a288acf8087", "scanner": "scanner-primary", "fingerprint": "7ee814d2c663f305", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a399b8d0bb7d445", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/shared/ApproveModal.tsx:3"}, "properties": {"repobilityId": "a9cd7f3a9bc8ab14", "scanner": "scanner-primary", "fingerprint": "4a399b8d0bb7d445", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c0a14cd7b473617", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/shared/BriefChat.tsx:390"}, "properties": {"repobilityId": "ec1a66017b6088e4", "scanner": "scanner-primary", "fingerprint": "4c0a14cd7b473617", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb281150e00b1cdb", "level": "none", "message": {"text": "Commented-code block (9 lines) in web/app/components/shared/__tests__/BriefChat.test.tsx:5"}, "properties": {"repobilityId": "2933cf846c385333", "scanner": "scanner-primary", "fingerprint": "eb281150e00b1cdb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46e89718ad043d7d", "level": "none", "message": {"text": "Commented-code block (8 lines) in web/app/components/shared/__tests__/ApproveModal.test.tsx:3"}, "properties": {"repobilityId": "d1f67b09acd0a437", "scanner": "scanner-primary", "fingerprint": "46e89718ad043d7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7341d0b20468b19b", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/shared/__tests__/PrdSections-design.test.tsx:14"}, "properties": {"repobilityId": "30a02353ab1bdce8", "scanner": "scanner-primary", "fingerprint": "7341d0b20468b19b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-555bb721801e68ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/shared/__tests__/PrdRightRail.dom.test.tsx:3"}, "properties": {"repobilityId": "598caad52d62e8d0", "scanner": "scanner-primary", "fingerprint": "555bb721801e68ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bef2a0acc91de73", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/shared/__tests__/BriefChat.generating.dom.test.tsx:5"}, "properties": {"repobilityId": "a0e4654b895d9666", "scanner": "scanner-primary", "fingerprint": "0bef2a0acc91de73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff860e6947e4722b", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/SettingsScreen.tsx:26"}, "properties": {"repobilityId": "a7e1bb0c8c01ec47", "scanner": "scanner-primary", "fingerprint": "ff860e6947e4722b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c29477d053be49fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/ChatScreen.tsx:475"}, "properties": {"repobilityId": "cb5fc711ac4dfb10", "scanner": "scanner-primary", "fingerprint": "c29477d053be49fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cf4b3309f1cc013", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/screens/app/ChatsScreen.tsx:124"}, "properties": {"repobilityId": "f3f252f5e5da51c7", "scanner": "scanner-primary", "fingerprint": "8cf4b3309f1cc013", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09cb500adc0de522", "level": "note", "message": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in web/app/components/screens/app/settings/TeamSettings.tsx:4"}, "properties": {"repobilityId": "58d3a85afcb683aa", "scanner": "scanner-primary", "fingerprint": "09cb500adc0de522", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be175d86c994bd56", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/settings/StrategicSettings.tsx:1"}, "properties": {"repobilityId": "a75067bdcf2cc28f", "scanner": "scanner-primary", "fingerprint": "be175d86c994bd56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73d50dcbf2bac4be", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/screens/app/__tests__/ChatScreen.parallel-chats.test.tsx:3"}, "properties": {"repobilityId": "38b82ba3f9b1b323", "scanner": "scanner-primary", "fingerprint": "73d50dcbf2bac4be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40e2c2f070f6bd36", "level": "none", "message": {"text": "Commented-code block (15 lines) in web/app/components/screens/app/__tests__/ChatScreen.concurrent-asks.test.tsx:3"}, "properties": {"repobilityId": "d8b074a112b5e9f6", "scanner": "scanner-primary", "fingerprint": "40e2c2f070f6bd36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba505caccb405693", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/screens/app/__tests__/BacklogScreen.dom.test.tsx:3"}, "properties": {"repobilityId": "30684a7aff390e67", "scanner": "scanner-primary", "fingerprint": "ba505caccb405693", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51d7d66c95bc703b", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/screens/app/__tests__/ArtifactsView.test.tsx:3"}, "properties": {"repobilityId": "7d58fe915cbcfb92", "scanner": "scanner-primary", "fingerprint": "51d7d66c95bc703b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb0334e464f46c02", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/screens/onboarding/Metrics.tsx:370"}, "properties": {"repobilityId": "b6bbfe7d1aa06cc5", "scanner": "scanner-primary", "fingerprint": "cb0334e464f46c02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd4a6cc455b2d335", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/screens/onboarding/FirstBrief.tsx:171"}, "properties": {"repobilityId": "dd954532d300eb57", "scanner": "scanner-primary", "fingerprint": "bd4a6cc455b2d335", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb3c43edd91970b5", "level": "none", "message": {"text": "Commented-code block (11 lines) in web/app/components/screens/onboarding/__tests__/FirstBrief.dom.test.tsx:3"}, "properties": {"repobilityId": "5dd44ca37dfcee41", "scanner": "scanner-primary", "fingerprint": "cb3c43edd91970b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a9fbd75e65ed90e", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/screens/onboarding/__tests__/Metrics.dom.test.tsx:3"}, "properties": {"repobilityId": "fcc1f19b491a855b", "scanner": "scanner-primary", "fingerprint": "3a9fbd75e65ed90e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e74a0a1ac8231849", "level": "none", "message": {"text": "Commented-code block (12 lines) in web/app/components/screens/onboarding/__tests__/Connectors.dom.test.tsx:3"}, "properties": {"repobilityId": "81932d9777be99c1", "scanner": "scanner-primary", "fingerprint": "e74a0a1ac8231849", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04838f2850f7623a", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/screens/onboarding/__tests__/Analyzing.dom.test.tsx:3"}, "properties": {"repobilityId": "6958631aa82d2a27", "scanner": "scanner-primary", "fingerprint": "04838f2850f7623a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0287aae39616b7b", "level": "none", "message": {"text": "Commented-code block (9 lines) in web/app/components/screens/onboarding/__tests__/Coworkers.dom.test.tsx:3"}, "properties": {"repobilityId": "df05fd7599ea8d0b", "scanner": "scanner-primary", "fingerprint": "f0287aae39616b7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a414df4270252d48", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/screens/onboarding/__tests__/BusinessInfo.dom.test.tsx:3"}, "properties": {"repobilityId": "dc747e70b4ccc41c", "scanner": "scanner-primary", "fingerprint": "a414df4270252d48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0acb7c61b7223288", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/onboarding/__tests__/InterviewLayout.test.tsx:1"}, "properties": {"repobilityId": "64d908c924d34450", "scanner": "scanner-primary", "fingerprint": "0acb7c61b7223288", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d445133cdc141aab", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/onboarding/__tests__/OnboardingFlowOrder.test.tsx:6"}, "properties": {"repobilityId": "ef212e8585212371", "scanner": "scanner-primary", "fingerprint": "d445133cdc141aab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a55e990b5b06cc62", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/DesignAgentLauncher.tsx:212"}, "properties": {"repobilityId": "dd6f94b6068d2e88", "scanner": "scanner-primary", "fingerprint": "a55e990b5b06cc62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfecff9e2eab2f89", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/useIterateRun.ts:153"}, "properties": {"repobilityId": "a0b45356a6f9c617", "scanner": "scanner-primary", "fingerprint": "bfecff9e2eab2f89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd0caaaabd8440d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/CommentsPanel.tsx:41"}, "properties": {"repobilityId": "b5c1fb7e0423cda8", "scanner": "scanner-primary", "fingerprint": "dd0caaaabd8440d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02119ccc011cc214", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/DesignAgentDrawer.tsx:363"}, "properties": {"repobilityId": "906c01e29c1ac3a3", "scanner": "scanner-primary", "fingerprint": "02119ccc011cc214", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fe4f4564557c897", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/GenerateModal.tsx:104"}, "properties": {"repobilityId": "dae9735fc5762b09", "scanner": "scanner-primary", "fingerprint": "3fe4f4564557c897", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e649ee74bbb9756", "level": "none", "message": {"text": "Commented-code block (9 lines) in web/app/components/design-agent/PrototypeViewer.tsx:7"}, "properties": {"repobilityId": "44e4a194825ef913", "scanner": "scanner-primary", "fingerprint": "1e649ee74bbb9756", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2f250ca451618ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/PrototypePreviewCard.tsx:80"}, "properties": {"repobilityId": "7b294b0a71b6f1c6", "scanner": "scanner-primary", "fingerprint": "a2f250ca451618ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a9ea1a1e87c2670", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/PostGenerationResult.tsx:32"}, "properties": {"repobilityId": "29631f83eb21e714", "scanner": "scanner-primary", "fingerprint": "1a9ea1a1e87c2670", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5c6a7c30f0d7beb", "level": "none", "message": {"text": "Commented-code block (8 lines) in web/app/components/design-agent/useViewGrant.ts:5"}, "properties": {"repobilityId": "62dd155caac5c0a5", "scanner": "scanner-primary", "fingerprint": "c5c6a7c30f0d7beb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f61b38ba6479cfa", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/usePinMarking.ts:189"}, "properties": {"repobilityId": "47b22bc8a30de057", "scanner": "scanner-primary", "fingerprint": "5f61b38ba6479cfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a0670a640bd99c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/IterateComposer.tsx:429"}, "properties": {"repobilityId": "2af0af564aa9f421", "scanner": "scanner-primary", "fingerprint": "9a0670a640bd99c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0841ba8b785d36d", "level": "none", "message": {"text": "Commented-code block (11 lines) in web/app/components/design-agent/notificationStore.ts:102"}, "properties": {"repobilityId": "9dcd93f5a5d9de56", "scanner": "scanner-primary", "fingerprint": "c0841ba8b785d36d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c602fb210e310e4", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrdPatchBanner.test.tsx:111"}, "properties": {"repobilityId": "8e94486f73b45c68", "scanner": "scanner-primary", "fingerprint": "9c602fb210e310e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f55ad9af57948973", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/ShareMenu.dom.test.tsx:3"}, "properties": {"repobilityId": "0382a94cd32c1cd3", "scanner": "scanner-primary", "fingerprint": "f55ad9af57948973", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-500825f68763e3a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/CompletionBar.test.tsx:250"}, "properties": {"repobilityId": "65d01e1476ed5dbc", "scanner": "scanner-primary", "fingerprint": "500825f68763e3a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fa281742a034adc", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/CostEstimateModal.test.tsx:1"}, "properties": {"repobilityId": "2466f3bf4a86334a", "scanner": "scanner-primary", "fingerprint": "2fa281742a034adc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6d1e50a04c2e1f6", "level": "note", "message": {"text": "Legacy-named symbol `test_collect_edits_drops_noop_when_new_equals_old` in web/app/components/design-agent/__tests__/ManualEditOverlay.test.tsx:161"}, "properties": {"repobilityId": "7cf231aeae22bafc", "scanner": "scanner-primary", "fingerprint": "e6d1e50a04c2e1f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5dec9abf93d1d0f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/ManualEditOverlay.test.tsx:1"}, "properties": {"repobilityId": "3d1e2684ba637405", "scanner": "scanner-primary", "fingerprint": "5dec9abf93d1d0f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e392300c1c41f3a", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrototypeMarkLayer.test.tsx:5"}, "properties": {"repobilityId": "6230d95b58a074df", "scanner": "scanner-primary", "fingerprint": "5e392300c1c41f3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a69aac0fb8dc88d9", "level": "none", "message": {"text": "Commented-code block (10 lines) in web/app/components/design-agent/__tests__/useViewGrant.test.tsx:5"}, "properties": {"repobilityId": "7f373f23460b350c", "scanner": "scanner-primary", "fingerprint": "a69aac0fb8dc88d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45e6b362366ea047", "level": "none", "message": {"text": "Commented-code block (9 lines) in web/app/components/design-agent/__tests__/design-agent-css.test.tsx:3"}, "properties": {"repobilityId": "c5ff039b5e7f0a93", "scanner": "scanner-primary", "fingerprint": "45e6b362366ea047", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41fe54e990d0c8b6", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PostGenerationResult-mount.test.tsx:6"}, "properties": {"repobilityId": "c852db3c02973f1a", "scanner": "scanner-primary", "fingerprint": "41fe54e990d0c8b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f59ae2ff35c50cf", "level": "none", "message": {"text": "Commented-code block (8 lines) in web/app/components/design-agent/__tests__/usePinMarking.test.tsx:1"}, "properties": {"repobilityId": "6c614bc81d5d961a", "scanner": "scanner-primary", "fingerprint": "0f59ae2ff35c50cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24b2650ec6f34ff7", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/PrototypePreviewCard.test.tsx:1"}, "properties": {"repobilityId": "e6519da8c4da4bf4", "scanner": "scanner-primary", "fingerprint": "24b2650ec6f34ff7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6b7c3fdfa720247", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/briefCard-prototype-affordances.test.tsx:18"}, "properties": {"repobilityId": "aa6b8d7db2396ca0", "scanner": "scanner-primary", "fingerprint": "a6b7c3fdfa720247", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e40bf943ea4f0980", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/IterateComposer.test.tsx:1"}, "properties": {"repobilityId": "4a8e9e4c52344841", "scanner": "scanner-primary", "fingerprint": "e40bf943ea4f0980", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ee663cd3ff2c38d", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/DesignAgentLauncher.test.tsx:437"}, "properties": {"repobilityId": "3a9146c4c2a16c88", "scanner": "scanner-primary", "fingerprint": "5ee663cd3ff2c38d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f9f3fd66bfa34a2", "level": "none", "message": {"text": "Commented-code block (10 lines) in web/app/components/design-agent/__tests__/ClarifyingQuestionSurface.test.tsx:1"}, "properties": {"repobilityId": "18365dbd41585181", "scanner": "scanner-primary", "fingerprint": "8f9f3fd66bfa34a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44e07b2df5d3c70f", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/GenerationLoadingScreen.test.tsx:3"}, "properties": {"repobilityId": "33b303c413716b09", "scanner": "scanner-primary", "fingerprint": "44e07b2df5d3c70f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9ba3fa98c9f259b", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/PostGenerationResult.grant.dom.test.tsx:3"}, "properties": {"repobilityId": "49ea0245d06e2acb", "scanner": "scanner-primary", "fingerprint": "b9ba3fa98c9f259b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db17ca075a6d5545", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/useIterateRun.test.tsx:168"}, "properties": {"repobilityId": "8be09cd76fe560cf", "scanner": "scanner-primary", "fingerprint": "db17ca075a6d5545", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf8229b09c7b742e", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/PostGenerationResult.test.tsx:70"}, "properties": {"repobilityId": "aed22845cc3736a9", "scanner": "scanner-primary", "fingerprint": "cf8229b09c7b742e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46ca029bb2b9bacd", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/components/design-agent/__tests__/LocateConfirmView.test.tsx:1"}, "properties": {"repobilityId": "bfdddc61eabd0aec", "scanner": "scanner-primary", "fingerprint": "46ca029bb2b9bacd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce139f919fbacfd6", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/DesignAgentNotificationReplay.test.tsx:1"}, "properties": {"repobilityId": "d674b3cb1d20c34b", "scanner": "scanner-primary", "fingerprint": "ce139f919fbacfd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64289495dea7743d", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/ShareMenu.test.tsx:32"}, "properties": {"repobilityId": "2671a11dc331a4f8", "scanner": "scanner-primary", "fingerprint": "64289495dea7743d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1db2014d871f761a", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/CommentsPanel.test.tsx:1"}, "properties": {"repobilityId": "067b01afaf95c4d1", "scanner": "scanner-primary", "fingerprint": "1db2014d871f761a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7b6656f3d216b37", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/components/design-agent/__tests__/PrototypeViewer.test.tsx:3"}, "properties": {"repobilityId": "9bebdbc32215d653", "scanner": "scanner-primary", "fingerprint": "a7b6656f3d216b37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3341c8a02bddc197", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/components/design-agent/__tests__/canvas-route.test.tsx:3"}, "properties": {"repobilityId": "bd33864be1e5d0ff", "scanner": "scanner-primary", "fingerprint": "3341c8a02bddc197", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da40f39341e87c4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/api.ts:830"}, "properties": {"repobilityId": "f21585df591f40ec", "scanner": "scanner-primary", "fingerprint": "da40f39341e87c4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c72d682098c17b01", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web/app/lib/api.ts:1010"}, "properties": {"repobilityId": "9f2f67b50478eb0e", "scanner": "scanner-primary", "fingerprint": "c72d682098c17b01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f785ec26b75e3af8", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/lib/runPrdGeneration.ts:26"}, "properties": {"repobilityId": "0a074803b38c2434", "scanner": "scanner-primary", "fingerprint": "f785ec26b75e3af8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ecf3d2b5daa647a", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/connectorsCatalog.ts:101"}, "properties": {"repobilityId": "28c8b4b79ddbb211", "scanner": "scanner-primary", "fingerprint": "6ecf3d2b5daa647a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bf185e53806906a", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/lib/chatAskState.ts:3"}, "properties": {"repobilityId": "d9f35ef3088a3b7c", "scanner": "scanner-primary", "fingerprint": "5bf185e53806906a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c23fc49f102b05af", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/lib/chatPersistence.ts:3"}, "properties": {"repobilityId": "72c122a295b58930", "scanner": "scanner-primary", "fingerprint": "c23fc49f102b05af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7393eee8e0cad633", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/prd-adapter.ts:349"}, "properties": {"repobilityId": "cfa4172348d80a62", "scanner": "scanner-primary", "fingerprint": "7393eee8e0cad633", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-924a4d61315e8829", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/lib/connectorsOauth.ts:29"}, "properties": {"repobilityId": "d9763ca6e8367d82", "scanner": "scanner-primary", "fingerprint": "924a4d61315e8829", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e336d1bfa39bf242", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/brief-v2-adapter.ts:247"}, "properties": {"repobilityId": "5e87af8c765103fd", "scanner": "scanner-primary", "fingerprint": "e336d1bfa39bf242", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92f9056db2dccbca", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/connectorRowState.ts:47"}, "properties": {"repobilityId": "0768297382ffb76f", "scanner": "scanner-primary", "fingerprint": "92f9056db2dccbca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4683e8f32d3e053", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/lib/__tests__/api-auth-retry.test.ts:9"}, "properties": {"repobilityId": "5c30411cc3b88823", "scanner": "scanner-primary", "fingerprint": "b4683e8f32d3e053", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e34f48ab4fa77954", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/__tests__/routes.test.ts:20"}, "properties": {"repobilityId": "b27a75d02554820a", "scanner": "scanner-primary", "fingerprint": "e34f48ab4fa77954", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99f58f44857ae0c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/stepRenumber.test.ts:1"}, "properties": {"repobilityId": "d72bca44f1377f93", "scanner": "scanner-primary", "fingerprint": "99f58f44857ae0c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99d012ccb882b482", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/lib/onboarding/__tests__/slugRouting.test.ts:1"}, "properties": {"repobilityId": "71b728f7fa2f4082", "scanner": "scanner-primary", "fingerprint": "99d012ccb882b482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6468b734a9c8ee23", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/analyzeWebsite.test.ts:1"}, "properties": {"repobilityId": "84fac2827ccf1ace", "scanner": "scanner-primary", "fingerprint": "6468b734a9c8ee23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2ac220e5b61b25b", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/lib/onboarding/__tests__/store.test.ts:1"}, "properties": {"repobilityId": "9c7496793e1eb037", "scanner": "scanner-primary", "fingerprint": "d2ac220e5b61b25b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-763cab3ea963368d", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/lib/supabase/client.ts:80"}, "properties": {"repobilityId": "eb531f9149999255", "scanner": "scanner-primary", "fingerprint": "763cab3ea963368d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b02bb2793193cb1", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/app/onboard/page.tsx:62"}, "properties": {"repobilityId": "794e8fb1b0f39629", "scanner": "scanner-primary", "fingerprint": "7b02bb2793193cb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c02827a2370a761", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/(app)/prototype/PrototypeRoute.tsx:3"}, "properties": {"repobilityId": "6bee6589a0d950ee", "scanner": "scanner-primary", "fingerprint": "1c02827a2370a761", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70d73b36b5d87a8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/(app)/prototype/page.tsx:4"}, "properties": {"repobilityId": "291972bdb79998ec", "scanner": "scanner-primary", "fingerprint": "70d73b36b5d87a8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bced5c441de7e257", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/app/(app)/prototype/__tests__/prototype-route.test.tsx:3"}, "properties": {"repobilityId": "bff48bd95d6c7cdb", "scanner": "scanner-primary", "fingerprint": "bced5c441de7e257", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdcb5d2c65147754", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/(app)/onboarding/__tests__/onboarding-layout.dom.test.tsx:3"}, "properties": {"repobilityId": "157c7d4790d2bc96", "scanner": "scanner-primary", "fingerprint": "cdcb5d2c65147754", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36cfcc29e8c23030", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/app/context/NavigationContext.tsx:172"}, "properties": {"repobilityId": "6eb05d6ea0d3f930", "scanner": "scanner-primary", "fingerprint": "36cfcc29e8c23030", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ba2afdfd09cefab", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_meta_integration_discipline.py:15"}, "properties": {"repobilityId": "0d11a67d3e8ee4de", "scanner": "scanner-primary", "fingerprint": "8ba2afdfd09cefab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f387ca3cd04f268", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/test_design_agent_bundle_proxy.py:92"}, "properties": {"repobilityId": "16e1d3e148b3b270", "scanner": "scanner-primary", "fingerprint": "1f387ca3cd04f268", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f94290833efce54", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_db_prototype_comments.py:28"}, "properties": {"repobilityId": "50502dc6d84b3c86", "scanner": "scanner-primary", "fingerprint": "1f94290833efce54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2a679569ccc61c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_team_reads.py:66"}, "properties": {"repobilityId": "0a7e3167e9c4ecd1", "scanner": "scanner-primary", "fingerprint": "e2a679569ccc61c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c559a86c8054373", "level": "none", "message": {"text": "Commented-code block (11 lines) in backend/tests/conftest.py:36"}, "properties": {"repobilityId": "80e0604797b0af37", "scanner": "scanner-primary", "fingerprint": "6c559a86c8054373", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c58a7f3b4cfbecf7", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_orphan_reattach.py:346"}, "properties": {"repobilityId": "5db85e6e6b62e87d", "scanner": "scanner-primary", "fingerprint": "c58a7f3b4cfbecf7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ad489925d8f77d4", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/test_design_agent_prompts.py:46"}, "properties": {"repobilityId": "59024131726965eb", "scanner": "scanner-primary", "fingerprint": "5ad489925d8f77d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-026530d848709cee", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_legacy_routes_tenant_isolation.py:182"}, "properties": {"repobilityId": "7685e6c2b7440959", "scanner": "scanner-primary", "fingerprint": "026530d848709cee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa270ff812b25d8c", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_lifecycle.py:39"}, "properties": {"repobilityId": "1305a322a6d68ddc", "scanner": "scanner-primary", "fingerprint": "fa270ff812b25d8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-679e6eadcf494217", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_team_invite_email.py:37"}, "properties": {"repobilityId": "4e604c26b089b978", "scanner": "scanner-primary", "fingerprint": "679e6eadcf494217", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f039733c9c4549a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_storage.py:748"}, "properties": {"repobilityId": "bd5b10355b84b3d6", "scanner": "scanner-primary", "fingerprint": "f039733c9c4549a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-867a2668e7a6d971", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_comment_routes.py:44"}, "properties": {"repobilityId": "cd8cb838eacd3519", "scanner": "scanner-primary", "fingerprint": "867a2668e7a6d971", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db9367d029c765ea", "level": "note", "message": {"text": "Legacy-named symbol `pid_v2` in backend/tests/test_db_prototypes.py:290"}, "properties": {"repobilityId": "99c82f0939bf7c93", "scanner": "scanner-primary", "fingerprint": "db9367d029c765ea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7de96a065ed115e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_codebase_map_recreate.py:156"}, "properties": {"repobilityId": "c96e1e26a6c267fe", "scanner": "scanner-primary", "fingerprint": "7de96a065ed115e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97d44d5daa0ae38b", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/test_design_agent_public_hardening.py:396"}, "properties": {"repobilityId": "6c5799a7487d42fd", "scanner": "scanner-primary", "fingerprint": "97d44d5daa0ae38b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-defeb3d64594de25", "level": "note", "message": {"text": "Legacy-named symbol `hubspot_env_v1` in backend/tests/test_routes_connectors_hubspot.py:57"}, "properties": {"repobilityId": "6a745919c1d1f0ce", "scanner": "scanner-primary", "fingerprint": "defeb3d64594de25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-060a75e6e2a1385a", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/test_brief_runner.py:26"}, "properties": {"repobilityId": "83a55bcc9ef47c3b", "scanner": "scanner-primary", "fingerprint": "060a75e6e2a1385a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fd55f4a6e518d2c", "level": "note", "message": {"text": "Legacy-named symbol `test_get_installation_for_company_rejects_foreign_and_legacy` in backend/tests/test_github_tenant_scope.py:133"}, "properties": {"repobilityId": "a100f073e3ce3c18", "scanner": "scanner-primary", "fingerprint": "7fd55f4a6e518d2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-13ce05fa40af0bd9", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/test_github_tenant_scope.py:389"}, "properties": {"repobilityId": "4bc52f4957e70798", "scanner": "scanner-primary", "fingerprint": "13ce05fa40af0bd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42bd846fa8a85efe", "level": "note", "message": {"text": "Legacy-named symbol `prd_v2` in backend/tests/test_design_agent_brief_prototype_map.py:235"}, "properties": {"repobilityId": "52cfd7262323dedc", "scanner": "scanner-primary", "fingerprint": "42bd846fa8a85efe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be4ef2cca42314bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_public_routes.py:307"}, "properties": {"repobilityId": "c40d0594eb45400b", "scanner": "scanner-primary", "fingerprint": "be4ef2cca42314bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-542c2cf48a6c548f", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_p4_e2e.py:72"}, "properties": {"repobilityId": "e076f55c5ed5d0a9", "scanner": "scanner-primary", "fingerprint": "542c2cf48a6c548f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d2314aae543e7dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_routes_agent_chat_with_tools.py:29"}, "properties": {"repobilityId": "a90ec20b8b4bb03a", "scanner": "scanner-primary", "fingerprint": "0d2314aae543e7dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-349bba0823652bbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_manual_edit.py:103"}, "properties": {"repobilityId": "ad4cd830a349ab83", "scanner": "scanner-primary", "fingerprint": "349bba0823652bbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e23014eb230ef01d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_prd_patch_routes.py:38"}, "properties": {"repobilityId": "508dcc31cc3c7d9b", "scanner": "scanner-primary", "fingerprint": "e23014eb230ef01d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-781fe42ba6ab7484", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/test_design_agent_p3_smoke.py:241"}, "properties": {"repobilityId": "a3b40ebce353b1f1", "scanner": "scanner-primary", "fingerprint": "781fe42ba6ab7484", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc1d75bcff9f9f74", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_design_source_selection.py:259"}, "properties": {"repobilityId": "9afc68ccb6a72ed4", "scanner": "scanner-primary", "fingerprint": "bc1d75bcff9f9f74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eec7b45ebb76ec53", "level": "none", "message": {"text": "Commented-code block (13 lines) in backend/tests/test_design_agent_prd_patches.py:601"}, "properties": {"repobilityId": "7dd93e316246235b", "scanner": "scanner-primary", "fingerprint": "eec7b45ebb76ec53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29c018d9a3434bea", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/_fake_supabase.py:270"}, "properties": {"repobilityId": "089d29f8e30f624f", "scanner": "scanner-primary", "fingerprint": "29c018d9a3434bea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-106a9d8cdb47757d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_design_agent_checkpoint_chain.py:310"}, "properties": {"repobilityId": "cc31650006673b7d", "scanner": "scanner-primary", "fingerprint": "106a9d8cdb47757d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2644163873fde6c5", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/test_design_agent_clarifying_question.py:522"}, "properties": {"repobilityId": "b431abe41bdd01d0", "scanner": "scanner-primary", "fingerprint": "2644163873fde6c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d0801cf50c77fc6", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_smoke.py:394"}, "properties": {"repobilityId": "f29d21dcd4570f76", "scanner": "scanner-primary", "fingerprint": "9d0801cf50c77fc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c60bcc83679b0b05", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_design_agent_routes.py:751"}, "properties": {"repobilityId": "90d9aaa0275ae2b3", "scanner": "scanner-primary", "fingerprint": "c60bcc83679b0b05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f20ba3400a04aaea", "level": "none", "message": {"text": "Commented-code block (18 lines) in backend/app/prompts.py:8"}, "properties": {"repobilityId": "4de1ac7146c37a06", "scanner": "scanner-primary", "fingerprint": "f20ba3400a04aaea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe3c22af56710a56", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/brief_schedule.py:38"}, "properties": {"repobilityId": "372004a925adc36e", "scanner": "scanner-primary", "fingerprint": "fe3c22af56710a56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c219f2bfbd4c01bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/datasets.py:161"}, "properties": {"repobilityId": "ff620e8c92039f78", "scanner": "scanner-primary", "fingerprint": "c219f2bfbd4c01bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaded2ff685c1fe3", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/config.py:17"}, "properties": {"repobilityId": "879997d6eb8e4ea0", "scanner": "scanner-primary", "fingerprint": "eaded2ff685c1fe3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0f22168e17ac219", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/auth.py:305"}, "properties": {"repobilityId": "fec16714563a2842", "scanner": "scanner-primary", "fingerprint": "a0f22168e17ac219", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-049498d96ef173cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/prd_runner.py:81"}, "properties": {"repobilityId": "9dd9caa06fa1c53e", "scanner": "scanner-primary", "fingerprint": "049498d96ef173cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aa8295c2a9a5637", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/app/scheduler.py:36"}, "properties": {"repobilityId": "01041af826c25c0a", "scanner": "scanner-primary", "fingerprint": "5aa8295c2a9a5637", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec2c7cbc413696e7", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/llm.py:33"}, "properties": {"repobilityId": "8291e93041382c35", "scanner": "scanner-primary", "fingerprint": "ec2c7cbc413696e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9234826f2dfb16e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/team_email.py:64"}, "properties": {"repobilityId": "6d1911a44d318f1e", "scanner": "scanner-primary", "fingerprint": "9234826f2dfb16e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38dcaeb647c78622", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/main.py:7"}, "properties": {"repobilityId": "fd5bc9649dfcb01c", "scanner": "scanner-primary", "fingerprint": "38dcaeb647c78622", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd140ace298134ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/pipeline.py:170"}, "properties": {"repobilityId": "8934d74012e4e1f3", "scanner": "scanner-primary", "fingerprint": "bd140ace298134ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a03970ce0504493", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/app/brief_runner.py:33"}, "properties": {"repobilityId": "5f9317812a74e995", "scanner": "scanner-primary", "fingerprint": "6a03970ce0504493", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24b91dede3ecd74a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/synthesis/convergence.py:64"}, "properties": {"repobilityId": "b24c0c02de16acb8", "scanner": "scanner-primary", "fingerprint": "24b91dede3ecd74a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0754671ad5b7356d", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/connectors/google_oauth.py:21"}, "properties": {"repobilityId": "0f83bc52155485e9", "scanner": "scanner-primary", "fingerprint": "0754671ad5b7356d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95934f6863a7ceed", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/hubspot_oauth.py:141"}, "properties": {"repobilityId": "a6b01023bb95f024", "scanner": "scanner-primary", "fingerprint": "95934f6863a7ceed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-375e54f1919f69b3", "level": "note", "message": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/connectors/fireflies_apikey.py:9"}, "properties": {"repobilityId": "c594ea6acd127129", "scanner": "scanner-primary", "fingerprint": "375e54f1919f69b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eaf531e59a153a72", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/slack_oauth.py:300"}, "properties": {"repobilityId": "1bf70bbf9a1e23e8", "scanner": "scanner-primary", "fingerprint": "eaf531e59a153a72", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fb9516b42129df02", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/connectors/github_app.py:115"}, "properties": {"repobilityId": "0a555a1ea9745c4c", "scanner": "scanner-primary", "fingerprint": "fb9516b42129df02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a48ac34bcc166965", "level": "none", "message": {"text": "Commented-code block (21 lines) in backend/app/research/competitor.py:53"}, "properties": {"repobilityId": "97dface9f4844034", "scanner": "scanner-primary", "fingerprint": "a48ac34bcc166965", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08148ea09a4f86b2", "level": "note", "message": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/routes/team.py:3"}, "properties": {"repobilityId": "2650df6033683759", "scanner": "scanner-primary", "fingerprint": "08148ea09a4f86b2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f50083a66ba55be8", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/routes/datasets.py:81"}, "properties": {"repobilityId": "4773a0a3d69016e3", "scanner": "scanner-primary", "fingerprint": "f50083a66ba55be8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ed85659cff9b811", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/routes/ask.py:32"}, "properties": {"repobilityId": "bd490333392b6747", "scanner": "scanner-primary", "fingerprint": "9ed85659cff9b811", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fc732c8811d08b5", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/app/routes/connectors.py:871"}, "properties": {"repobilityId": "f6aefa98aade95fc", "scanner": "scanner-primary", "fingerprint": "2fc732c8811d08b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1d03a71733b82f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/routes/design_agent.py:129"}, "properties": {"repobilityId": "3c67649087503552", "scanner": "scanner-primary", "fingerprint": "f1d03a71733b82f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d5e14fd1fd6ee9d", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/routes/design_agent_bundle.py:78"}, "properties": {"repobilityId": "138b73a885d88f5c", "scanner": "scanner-primary", "fingerprint": "4d5e14fd1fd6ee9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0cfb8f0c42798d8", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/design_agent/rate_limit.py:78"}, "properties": {"repobilityId": "0ddf2139c5fe66b2", "scanner": "scanner-primary", "fingerprint": "e0cfb8f0c42798d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a422cb0ea41c0f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/design_agent/autofixer.js:121"}, "properties": {"repobilityId": "aaf5055114809c4a", "scanner": "scanner-primary", "fingerprint": "7a422cb0ea41c0f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afc07471a29328dd", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/design_agent/prompts.py:44"}, "properties": {"repobilityId": "da681339d4ec10c3", "scanner": "scanner-primary", "fingerprint": "afc07471a29328dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b12e0ae3081293f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/design_agent/storage.py:60"}, "properties": {"repobilityId": "8aaefa61ea8d3a82", "scanner": "scanner-primary", "fingerprint": "b12e0ae3081293f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50abf1169951f2e6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/app/design_agent/storage.py:53"}, "properties": {"repobilityId": "801b2d35f7b98795", "scanner": "scanner-primary", "fingerprint": "50abf1169951f2e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7694c7549d8c84d", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/app/design_agent/tools.py:332"}, "properties": {"repobilityId": "3e318c0a5925b634", "scanner": "scanner-primary", "fingerprint": "f7694c7549d8c84d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6770578b270797a4", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/app/design_agent/autofixer_data.py:21"}, "properties": {"repobilityId": "fa21ff495960f437", "scanner": "scanner-primary", "fingerprint": "6770578b270797a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fbe1730e5138959", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/design_agent/export.py:158"}, "properties": {"repobilityId": "861cab9bccc8ccdd", "scanner": "scanner-primary", "fingerprint": "5fbe1730e5138959", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-982b07f9131b47d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/design_agent/progress.py:135"}, "properties": {"repobilityId": "6dd3ce5a0020e759", "scanner": "scanner-primary", "fingerprint": "982b07f9131b47d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de4deb321a281f34", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/app/design_agent/runner.py:102"}, "properties": {"repobilityId": "31ad516038935daf", "scanner": "scanner-primary", "fingerprint": "de4deb321a281f34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a32afaeebb02ac4a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/design_agent/codebase_map/locate.py:39"}, "properties": {"repobilityId": "815f49e244612112", "scanner": "scanner-primary", "fingerprint": "a32afaeebb02ac4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8c9b5691b29b7c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/gate.py:28"}, "properties": {"repobilityId": "d401ae7ce5c7625f", "scanner": "scanner-primary", "fingerprint": "e8c9b5691b29b7c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a806eec93d68e6be", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/design_agent/codebase_map/types.py:22"}, "properties": {"repobilityId": "cdf0de161e1e50ab", "scanner": "scanner-primary", "fingerprint": "a806eec93d68e6be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3536e1b76a4abe7", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/repo_reader.py:37"}, "properties": {"repobilityId": "5716a5639e788429", "scanner": "scanner-primary", "fingerprint": "a3536e1b76a4abe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f89afcb6047c74fa", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/app/design_agent/codebase_map/nodes.py:102"}, "properties": {"repobilityId": "58ae55fd750bf1a4", "scanner": "scanner-primary", "fingerprint": "f89afcb6047c74fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-483a07dfbda5f3fd", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/design_agent/codebase_map/edges.py:29"}, "properties": {"repobilityId": "4962f1d0652b962f", "scanner": "scanner-primary", "fingerprint": "483a07dfbda5f3fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83bb30f7283eba8f", "level": "none", "message": {"text": "Commented-code block (11 lines) in backend/app/design_agent/codebase_map/recreate.py:440"}, "properties": {"repobilityId": "271c4c2f579c76f3", "scanner": "scanner-primary", "fingerprint": "83bb30f7283eba8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9f5ebb0eb2453f9", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/app/design_agent/codebase_map/nav_probe.py:160"}, "properties": {"repobilityId": "f1a035c842830fe8", "scanner": "scanner-primary", "fingerprint": "b9f5ebb0eb2453f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74ed49cd443b2e4b", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/design_agent/design_system/figma_gather.py:228"}, "properties": {"repobilityId": "f9d17b34cb048a40", "scanner": "scanner-primary", "fingerprint": "74ed49cd443b2e4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7c14adccc904bd8", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/app/design_agent/design_system/adapters.py:81"}, "properties": {"repobilityId": "7ab3ca7c5b3adb4f", "scanner": "scanner-primary", "fingerprint": "b7c14adccc904bd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7558a68305d8bed1", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/design_agent/design_system/hardening.py:31"}, "properties": {"repobilityId": "a1c824194200fcab", "scanner": "scanner-primary", "fingerprint": "7558a68305d8bed1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e98c1ca79e4c453e", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/design_agent/design_system/signals.py:93"}, "properties": {"repobilityId": "77e1cbc7eb821e86", "scanner": "scanner-primary", "fingerprint": "e98c1ca79e4c453e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76ad04d709484208", "level": "none", "message": {"text": "Commented-code block (13 lines) in backend/app/design_agent/scenarios/website.py:389"}, "properties": {"repobilityId": "c13cae1486b9100b", "scanner": "scanner-primary", "fingerprint": "76ad04d709484208", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7d66307e7f75809", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/db/connections.py:229"}, "properties": {"repobilityId": "380424a55dce4668", "scanner": "scanner-primary", "fingerprint": "e7d66307e7f75809", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f9172edca5590e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/db/products.py:1"}, "properties": {"repobilityId": "ce2e75754204112a", "scanner": "scanner-primary", "fingerprint": "4f9172edca5590e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b891d96be4699eeb", "level": "note", "message": {"text": "Legacy-named symbol `Sprntly_Onboarding_Flow_Spec_v1` in backend/app/db/team.py:3"}, "properties": {"repobilityId": "03c2a6316ece0c5f", "scanner": "scanner-primary", "fingerprint": "b891d96be4699eeb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d4a50a1d05cd3463", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/app/db/prototypes.py:424"}, "properties": {"repobilityId": "008646e09589f275", "scanner": "scanner-primary", "fingerprint": "d4a50a1d05cd3463", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-171a7033cf494899", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/graph/retrieval.py:254"}, "properties": {"repobilityId": "71b7e800889900d3", "scanner": "scanner-primary", "fingerprint": "171a7033cf494899", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-719bc015277627e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app/graph/gateway.py:38"}, "properties": {"repobilityId": "858058d7b69f87f2", "scanner": "scanner-primary", "fingerprint": "719bc015277627e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f53091c8173be89", "level": "note", "message": {"text": "Legacy-named symbol `metric_series_v1` in backend/app/graph/config_layers.py:114"}, "properties": {"repobilityId": "f79d6ad16e02c8a2", "scanner": "scanner-primary", "fingerprint": "9f53091c8173be89", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a85ee459d4401c57", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/app/graph/config_layers.py:68"}, "properties": {"repobilityId": "fb9ace0f310135b7", "scanner": "scanner-primary", "fingerprint": "a85ee459d4401c57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4474e0089c4a482f", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototype-runtime/test/base-relative-paths.test.ts:11"}, "properties": {"repobilityId": "eb98df53cd3e1bd6", "scanner": "scanner-primary", "fingerprint": "4474e0089c4a482f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf3b14cb6857dc7d", "level": "none", "message": {"text": "Commented-code block (8 lines) in prototype-runtime/test/anchor-id-stability.test.ts:179"}, "properties": {"repobilityId": "55afb73020d52aa3", "scanner": "scanner-primary", "fingerprint": "bf3b14cb6857dc7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68006d8fb179b4ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototype-runtime/test/helpers/build-fixture.ts:47"}, "properties": {"repobilityId": "e7cd3cecf4587229", "scanner": "scanner-primary", "fingerprint": "68006d8fb179b4ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-689b361db02401ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in ds-agent/ds_agent/server/chat.py:222"}, "properties": {"repobilityId": "8b7530500457173c", "scanner": "scanner-primary", "fingerprint": "689b361db02401ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37faba6df8b00ebc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ds-agent/ds_agent/server/static/app.js:206"}, "properties": {"repobilityId": "4b624863cadaa38e", "scanner": "scanner-primary", "fingerprint": "37faba6df8b00ebc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70fcae2d13c708b6", "level": "note", "message": {"text": "17 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "f21675bed249619c", "scanner": "scanner-primary", "fingerprint": "70fcae2d13c708b6", "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": "bb331db3fe62834d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "82743e4e05773288", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "0e099f5569dba3b3", "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": "9ef975f0179ea455", "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": "1b29036d7e9f72a1", "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": "ae0c7ccfb9f0e08e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "4f5e5e945bf97b3c", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "9993e4555077880e", "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": "4ca9d4ed8661c384", "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": "90dc6905014741fc", "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": "68787897635816d5", "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": "c8144999645b2b93", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "0028e337f16a74fe", "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": "16dc51876e178b7b", "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": "06617659e5ddb6af", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "fef6fda19852831b", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "b429a92e04028fa2", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "b6291b0410b7d6ac", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "e23061f99d30ecdc", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "2132d5dbb6a24aad", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-04f3f3e0da161c95", "level": "error", "message": {"text": "FastAPI POST `github_webhook` without auth dependency \u2014 backend/app/routes/connectors.py:1949"}, "properties": {"repobilityId": "dc651100a3fafd1a", "scanner": "scanner-primary", "fingerprint": "04f3f3e0da161c95", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/routes/connectors.py"}, "region": {"startLine": 1949}}}]}, {"ruleId": "scanner-4fbcd408e7b1325b", "level": "error", "message": {"text": "FastAPI POST `verify_passcode` without auth dependency \u2014 backend/app/routes/design_agent.py:1900"}, "properties": {"repobilityId": "3a46f68e2ef7280e", "scanner": "scanner-primary", "fingerprint": "4fbcd408e7b1325b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/routes/design_agent.py"}, "region": {"startLine": 1900}}}]}, {"ruleId": "scanner-ad50f0afcfd9e298", "level": "error", "message": {"text": "FastAPI POST `post_comment_public` without auth dependency \u2014 backend/app/routes/design_agent.py:2328"}, "properties": {"repobilityId": "dbcbc7894f56981b", "scanner": "scanner-primary", "fingerprint": "ad50f0afcfd9e298", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app/routes/design_agent.py"}, "region": {"startLine": 2328}}}]}, {"ruleId": "scanner-618721b912bad1c2", "level": "note", "message": {"text": "Unused endpoint: POST /login"}, "properties": {"repobilityId": "cdae7f4fdd92f563", "scanner": "scanner-primary", "fingerprint": "618721b912bad1c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99fc36db98c134ce", "level": "note", "message": {"text": "Unused endpoint: POST /logout"}, "properties": {"repobilityId": "775a8e196883b35e", "scanner": "scanner-primary", "fingerprint": "99fc36db98c134ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd1dc91abf32142d", "level": "note", "message": {"text": "Unused endpoint: GET /me"}, "properties": {"repobilityId": "30280e5346300d87", "scanner": "scanner-primary", "fingerprint": "fd1dc91abf32142d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-970eb92d6ec2bfaa", "level": "note", "message": {"text": "Unused endpoint: POST /generate"}, "properties": {"repobilityId": "585d09e031bcbd14", "scanner": "scanner-primary", "fingerprint": "970eb92d6ec2bfaa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aa0dfeac504ca171", "level": "note", "message": {"text": "Unused endpoint: GET /{evidence_id}"}, "properties": {"repobilityId": "1edec26c1e5f2dc4", "scanner": "scanner-primary", "fingerprint": "aa0dfeac504ca171", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7ce17d6b092a81ca", "level": "note", "message": {"text": "Unused endpoint: POST /refresh"}, "properties": {"repobilityId": "6f632f11c9e0f1fc", "scanner": "scanner-primary", "fingerprint": "7ce17d6b092a81ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d0b1782e08140b20", "level": "note", "message": {"text": "Unused endpoint: GET /series"}, "properties": {"repobilityId": "8bf5339bdb783a38", "scanner": "scanner-primary", "fingerprint": "d0b1782e08140b20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e686634beeea0bb8", "level": "note", "message": {"text": "Unused endpoint: GET /export"}, "properties": {"repobilityId": "91e788d81b4ccbf6", "scanner": "scanner-primary", "fingerprint": "e686634beeea0bb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f3c4eb974e4684dd", "level": "note", "message": {"text": "Unused endpoint: POST /seed"}, "properties": {"repobilityId": "b017951b1c6aa0d2", "scanner": "scanner-primary", "fingerprint": "f3c4eb974e4684dd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fa23ae39a0cb7172", "level": "note", "message": {"text": "Unused endpoint: POST /brief"}, "properties": {"repobilityId": "b92938c0be19e99c", "scanner": "scanner-primary", "fingerprint": "fa23ae39a0cb7172", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "a3d53ea38cae5356", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-53ef6ff67887838c", "level": "note", "message": {"text": "Unused endpoint: PATCH /{item_id}"}, "properties": {"repobilityId": "a17893eb611a3695", "scanner": "scanner-primary", "fingerprint": "53ef6ff67887838c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ed364e7ddc332d07", "level": "note", "message": {"text": "Unused endpoint: POST /lists"}, "properties": {"repobilityId": "b74e456cdc350d22", "scanner": "scanner-primary", "fingerprint": "ed364e7ddc332d07", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69faab573192e50b", "level": "note", "message": {"text": "Unused endpoint: POST /push"}, "properties": {"repobilityId": "b5c3cf894ca412df", "scanner": "scanner-primary", "fingerprint": "69faab573192e50b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3e8a0a7b406443bc", "level": "note", "message": {"text": "Unused endpoint: GET /members"}, "properties": {"repobilityId": "607c1f87c687d95c", "scanner": "scanner-primary", "fingerprint": "3e8a0a7b406443bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5a436a81cf6d77eb", "level": "note", "message": {"text": "Unused endpoint: GET /invites"}, "properties": {"repobilityId": "0b197852ef3aa0a6", "scanner": "scanner-primary", "fingerprint": "5a436a81cf6d77eb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c9451b66f68ffc25", "level": "note", "message": {"text": "Unused endpoint: POST /invites"}, "properties": {"repobilityId": "96284cad0aa5fd89", "scanner": "scanner-primary", "fingerprint": "c9451b66f68ffc25", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-85d6ae9d0bfd7fad", "level": "note", "message": {"text": "Unused endpoint: DELETE /invites/{invite_id}"}, "properties": {"repobilityId": "51d9500d0f7e2334", "scanner": "scanner-primary", "fingerprint": "85d6ae9d0bfd7fad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59a7d997db7fb782", "level": "note", "message": {"text": "Unused endpoint: POST /invites/{invite_id}/resend"}, "properties": {"repobilityId": "5d83d404255e61db", "scanner": "scanner-primary", "fingerprint": "59a7d997db7fb782", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fa40ed3706b16262", "level": "note", "message": {"text": "Unused endpoint: PATCH /members/{user_id}"}, "properties": {"repobilityId": "1b7606e004cd49d2", "scanner": "scanner-primary", "fingerprint": "fa40ed3706b16262", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ffaa32944aee48b8", "level": "note", "message": {"text": "Unused endpoint: DELETE /members/{user_id}"}, "properties": {"repobilityId": "101c6af927772e03", "scanner": "scanner-primary", "fingerprint": "ffaa32944aee48b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-770d646c1fdaba28", "level": "note", "message": {"text": "Unused endpoint: POST /accept"}, "properties": {"repobilityId": "8c9db0239f80ec45", "scanner": "scanner-primary", "fingerprint": "770d646c1fdaba28", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-37157900d71c21d3", "level": "note", "message": {"text": "Unused endpoint: GET /latest"}, "properties": {"repobilityId": "32424d76febbcbce", "scanner": "scanner-primary", "fingerprint": "37157900d71c21d3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b37ff2f97ca73bd", "level": "note", "message": {"text": "Unused endpoint: GET /{prd_id}"}, "properties": {"repobilityId": "a6179bac26ebcb72", "scanner": "scanner-primary", "fingerprint": "6b37ff2f97ca73bd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d7917a245b8751d", "level": "note", "message": {"text": "Unused endpoint: PUT /{prd_id}"}, "properties": {"repobilityId": "46c51fabba3c0408", "scanner": "scanner-primary", "fingerprint": "3d7917a245b8751d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1247881c02401970", "level": "note", "message": {"text": "Unused endpoint: POST /{prd_id}/versions"}, "properties": {"repobilityId": "07334f2219ef8a90", "scanner": "scanner-primary", "fingerprint": "1247881c02401970", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c5134a899dda8fc", "level": "note", "message": {"text": "Unused endpoint: GET /{prd_id}/versions"}, "properties": {"repobilityId": "9f2ff15307575477", "scanner": "scanner-primary", "fingerprint": "8c5134a899dda8fc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-950d6b66ebc3e3cc", "level": "note", "message": {"text": "Unused endpoint: POST /{prd_id}/versions/{version_id}/restore"}, "properties": {"repobilityId": "33cc2d61e8af69c8", "scanner": "scanner-primary", "fingerprint": "950d6b66ebc3e3cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "a94312ff2304c057", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-62c61f73483d1932", "level": "note", "message": {"text": "Unused endpoint: POST /{slug}/files"}, "properties": {"repobilityId": "a8e23dec01fe57e8", "scanner": "scanner-primary", "fingerprint": "62c61f73483d1932", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ae223c04f54e44d6", "level": "note", "message": {"text": "Unused endpoint: GET /{slug}/files"}, "properties": {"repobilityId": "9e04b10fb74cd9e9", "scanner": "scanner-primary", "fingerprint": "ae223c04f54e44d6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1c748093e3ba32a9", "level": "note", "message": {"text": "Unused endpoint: DELETE /{slug}/files/{filename}"}, "properties": {"repobilityId": "f16dd5db446f1e05", "scanner": "scanner-primary", "fingerprint": "1c748093e3ba32a9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2675664de77381fa", "level": "note", "message": {"text": "Unused endpoint: POST /{slug}/generate"}, "properties": {"repobilityId": "a380479c8446aeaf", "scanner": "scanner-primary", "fingerprint": "2675664de77381fa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-115736d40adf25ab", "level": "note", "message": {"text": "Unused endpoint: DELETE /{slug}"}, "properties": {"repobilityId": "c4db66b69821630a", "scanner": "scanner-primary", "fingerprint": "115736d40adf25ab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5c5c6900e4670966", "level": "note", "message": {"text": "Unused endpoint: GET /skills"}, "properties": {"repobilityId": "954970f2145841d7", "scanner": "scanner-primary", "fingerprint": "5c5c6900e4670966", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d467299d5c174fc0", "level": "note", "message": {"text": "Unused endpoint: GET /usage"}, "properties": {"repobilityId": "7c37cbd1ee477197", "scanner": "scanner-primary", "fingerprint": "d467299d5c174fc0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8a38f52aeddc3aad", "level": "note", "message": {"text": "Unused endpoint: PATCH /{conversation_id}"}, "properties": {"repobilityId": "8c8e27db9a2e7b5c", "scanner": "scanner-primary", "fingerprint": "8a38f52aeddc3aad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ad72d180247f16e2", "level": "note", "message": {"text": "Unused endpoint: DELETE /{conversation_id}"}, "properties": {"repobilityId": "9f1a671c9fd46881", "scanner": "scanner-primary", "fingerprint": "ad72d180247f16e2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9daca9846d3ec945", "level": "note", "message": {"text": "Unused endpoint: GET /{conversation_id}/turns"}, "properties": {"repobilityId": "926879521a5c1761", "scanner": "scanner-primary", "fingerprint": "9daca9846d3ec945", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35c1326e364d45e4", "level": "note", "message": {"text": "Unused endpoint: POST /{conversation_id}/turns"}, "properties": {"repobilityId": "c86e6e9d0527c6d4", "scanner": "scanner-primary", "fingerprint": "35c1326e364d45e4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bad01ac2222e29f1", "level": "note", "message": {"text": "Unused endpoint: GET /{run_id}"}, "properties": {"repobilityId": "8b282e016079ce92", "scanner": "scanner-primary", "fingerprint": "bad01ac2222e29f1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b1a6d8c78085d6ae", "level": "note", "message": {"text": "Unused endpoint: GET /{run_id}/docs"}, "properties": {"repobilityId": "eb5f4b955a8c33cc", "scanner": "scanner-primary", "fingerprint": "b1a6d8c78085d6ae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ed08c9bfebceea7", "level": "note", "message": {"text": "Unused endpoint: GET /doc/{doc_id}"}, "properties": {"repobilityId": "ac6218ccf71386c8", "scanner": "scanner-primary", "fingerprint": "5ed08c9bfebceea7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0b83a9ec8b31ccf9", "level": "note", "message": {"text": "Unused endpoint: GET /{ticket_key}/data"}, "properties": {"repobilityId": "d0b92de607abb071", "scanner": "scanner-primary", "fingerprint": "0b83a9ec8b31ccf9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea4eebcde6f73e05", "level": "note", "message": {"text": "Unused endpoint: PUT /{ticket_key}/description"}, "properties": {"repobilityId": "5385d4c1ce49a79f", "scanner": "scanner-primary", "fingerprint": "ea4eebcde6f73e05", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9211c452b98f002d", "level": "note", "message": {"text": "Unused endpoint: POST /{ticket_key}/attachments"}, "properties": {"repobilityId": "ec0cd4e27f984613", "scanner": "scanner-primary", "fingerprint": "9211c452b98f002d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3a6e4818d24963cb", "level": "note", "message": {"text": "Unused endpoint: DELETE /{ticket_key}/attachments/{attachment_id}"}, "properties": {"repobilityId": "5c65e451378f3b87", "scanner": "scanner-primary", "fingerprint": "3a6e4818d24963cb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-03840d056fb9df63", "level": "note", "message": {"text": "Unused endpoint: POST /{ticket_key}/comments"}, "properties": {"repobilityId": "021d6564bd481aca", "scanner": "scanner-primary", "fingerprint": "03840d056fb9df63", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3a7534d24fe68c23", "level": "note", "message": {"text": "Unused endpoint: DELETE /{ticket_key}/comments/{comment_id}"}, "properties": {"repobilityId": "a71ff513264b1366", "scanner": "scanner-primary", "fingerprint": "3a7534d24fe68c23", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0e34f253d96333bc", "level": "note", "message": {"text": "Unused endpoint: POST /push-clickup"}, "properties": {"repobilityId": "1182818b8046e97d", "scanner": "scanner-primary", "fingerprint": "0e34f253d96333bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}