{"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": "foundry_unresolved_feedback", "name": "Foundry mined unresolved feedback: voratadev-cmd/Base-Repository", "shortDescription": {"text": "Foundry mined unresolved feedback: voratadev-cmd/Base-Repository"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: voratadev-cmd/Base-Repository#1\nRepo: voratadev-cmd/Base-Repository\nIssue/PR number: 1\nGraph consistency label: needs_more_evidence\nNodes: 24\nEdges: 64\nNode types: {'pr_file': 12, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: voratadev-cmd/Base-Repository", "shortDescription": {"text": "Foundry mined docs only runtime fix: voratadev-cmd/Base-Repository"}, "fullDescription": {"text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: voratadev-cmd/Base-Repository#1\nRepo: voratadev-cmd/Base-Repository\nIssue/PR number: 1\nGraph consistency label: needs_more_evidence\nNodes: 24\nEdges: 64\nNode types: {'pr_file': 12, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, '"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: voratadev-cmd/Base-Repository", "shortDescription": {"text": "Foundry mined bad chains: voratadev-cmd/Base-Repository"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: voratadev-cmd/Base-Repository#1\nRepo: voratadev-cmd/Base-Repository\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 12\nLabels: {'agent_instruction_gap': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 12}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-60f85e082beb9d98\",\n    \"kind\": \"pull_request_body\",\n    \"label\":"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "scanner-93f5bbfaf73f80ee", "name": "Possibly dead Python function: verify_vps_secret", "shortDescription": {"text": "Possibly dead Python function: verify_vps_secret"}, "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-0ba1c30fb0335393", "name": "Possibly dead Python function: handler", "shortDescription": {"text": "Possibly dead Python function: handler"}, "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-c505f19d3fcaade9", "name": "Possibly dead Python function: handler", "shortDescription": {"text": "Possibly dead Python function: handler"}, "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-da222b762e0c5289", "name": "Possibly dead Python function: regenerar_sinteses", "shortDescription": {"text": "Possibly dead Python function: regenerar_sinteses"}, "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-d658edfd8666cc1f", "name": "Possibly dead Python function: handler", "shortDescription": {"text": "Possibly dead Python function: handler"}, "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-02e828de991c1076", "name": "Possibly dead Python function: insert_row", "shortDescription": {"text": "Possibly dead Python function: insert_row"}, "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-6fdabd4a51b1e510", "name": "Possibly dead Python function: update_row", "shortDescription": {"text": "Possibly dead Python function: update_row"}, "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-2ad334aed540153b", "name": "Possibly dead Python function: fetch_rows", "shortDescription": {"text": "Possibly dead Python function: fetch_rows"}, "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-3ddcb97e7602ede7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/ui/chart.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/ui/chart.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d0721e6e0e3827a", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/rma/colecao.tsx:58", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/rma/colecao.tsx:58"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7196d50c344cfd4e", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/routes/_app/contracts/$contractId/desequ", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/routes/_app/contracts/$contractId/desequilibrio/gerador-claim.tsx:89"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-773dbb11490de160", "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-28b5a0085a7d7b39", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/ui/chart.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/ui/chart.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6034fa801632899c", "name": "Very large file: agent/agents/normalizacao/gate.py (872 lines)", "shortDescription": {"text": "Very large file: agent/agents/normalizacao/gate.py (872 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-dfebdc54724e87d2", "name": "Very large file: agent/agents/normalizacao/resolvers.py (2998 lines)", "shortDescription": {"text": "Very large file: agent/agents/normalizacao/resolvers.py (2998 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-07e32bca040d3429", "name": "Very large file: src/routeTree.gen.ts (1434 lines)", "shortDescription": {"text": "Very large file: src/routeTree.gen.ts (1434 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8542cc1ba3bbd18b", "name": "Very large file: src/lib/mocks/obras/types.ts (2822 lines)", "shortDescription": {"text": "Very large file: src/lib/mocks/obras/types.ts (2822 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-e998dcfbc94c5ce7", "name": "Very large file: src/lib/supabase/database.types.ts (3226 lines)", "shortDescription": {"text": "Very large file: src/lib/supabase/database.types.ts (3226 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-c0fda49910efe3ed", "name": "Very large file: src/routes/_app/contracts/$contractId/extracao.tsx (1530 lines)", "shortDescription": {"text": "Very large file: src/routes/_app/contracts/$contractId/extracao.tsx (1530 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "56 tests / 346 src (ratio 0.16)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6611ff22818b6a92", "name": "31 TODO/FIXME markers", "shortDescription": {"text": "31 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 78 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 75 placeholder/mock markers across 45 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd860745f4df0e96", "name": "Commented-code block (5 lines) in vite.config.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in vite.config.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-e4b722d11fab6feb", "name": "Commented-code block (7 lines) in agent/config.py:72", "shortDescription": {"text": "Commented-code block (7 lines) in agent/config.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-eab91b34a9e72b33", "name": "Commented-code block (6 lines) in agent/agents/extracao/cobertura.py:174", "shortDescription": {"text": "Commented-code block (6 lines) in agent/agents/extracao/cobertura.py:174"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eafcf9061070773c", "name": "Commented-code block (6 lines) in agent/agents/extracao/cells.py:247", "shortDescription": {"text": "Commented-code block (6 lines) in agent/agents/extracao/cells.py: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-67dcc69a48748ee7", "name": "Commented-code block (7 lines) in agent/agents/extracao/envelope.py:171", "shortDescription": {"text": "Commented-code block (7 lines) in agent/agents/extracao/envelope.py:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f62ca2195cd62db3", "name": "Legacy-named symbol `acumulada_v1` in agent/agents/normalizacao/test_faturamento.py:14", "shortDescription": {"text": "Legacy-named symbol `acumulada_v1` in agent/agents/normalizacao/test_faturamento.py:14"}, "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-66162cbdc19c6e65", "name": "Legacy-named symbol `cronograma_v1` in agent/agents/normalizacao/test_cronograma.py:19", "shortDescription": {"text": "Legacy-named symbol `cronograma_v1` in agent/agents/normalizacao/test_cronograma.py:19"}, "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-57032d11f753c142", "name": "Legacy-named symbol `ok_old` in agent/agents/normalizacao/test_workbook_recursos.py:160", "shortDescription": {"text": "Legacy-named symbol `ok_old` in agent/agents/normalizacao/test_workbook_recursos.py:160"}, "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-66c2edb201ffccb7", "name": "Legacy-named symbol `medicao_v1` in agent/agents/normalizacao/test_fatia1.py:15", "shortDescription": {"text": "Legacy-named symbol `medicao_v1` in agent/agents/normalizacao/test_fatia1.py:15"}, "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-44401d724925bd28", "name": "Legacy-named symbol `medicao_v1` in agent/agents/normalizacao/configs.py:69", "shortDescription": {"text": "Legacy-named symbol `medicao_v1` in agent/agents/normalizacao/configs.py:69"}, "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-c8b12788501fd696", "name": "Commented-code block (5 lines) in agent/agents/normalizacao/configs.py:73", "shortDescription": {"text": "Commented-code block (5 lines) in agent/agents/normalizacao/configs.py:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fce504bdb848a66b", "name": "Legacy-named symbol `cronograma_v1` in agent/agents/normalizacao/job.py:29", "shortDescription": {"text": "Legacy-named symbol `cronograma_v1` in agent/agents/normalizacao/job.py:29"}, "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-5354948c31b9c349", "name": "Commented-code block (5 lines) in agent/agents/normalizacao/resolvers.py:192", "shortDescription": {"text": "Commented-code block (5 lines) in agent/agents/normalizacao/resolvers.py:192"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2091f7ae6cd8cea", "name": "Legacy-named symbol `produtividade_v1` in worker/scripts/populate-produtividade.mjs:7", "shortDescription": {"text": "Legacy-named symbol `produtividade_v1` in worker/scripts/populate-produtividade.mjs:7"}, "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-7cedf215cbb604ab", "name": "Commented-code block (5 lines) in worker/scripts/gen-database-types.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in worker/scripts/gen-database-types.mjs: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-8421e578a493d6d0", "name": "Legacy-named symbol `insumos_v1` in worker/scripts/populate-insumos.mjs:7", "shortDescription": {"text": "Legacy-named symbol `insumos_v1` in worker/scripts/populate-insumos.mjs:7"}, "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-e643ff5ac3667861", "name": "Commented-code block (5 lines) in src/components/EmConstrucao.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/EmConstrucao.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-59c4780652eef8a4", "name": "Commented-code block (6 lines) in src/components/ds/FarolCard/FarolCard.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/ds/FarolCard/FarolCard.tsx: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-924606c094764492", "name": "Commented-code block (9 lines) in src/lib/rma/bridgeFaturamento.ts:123", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/rma/bridgeFaturamento.ts:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e201600ec0f881dc", "name": "Commented-code block (5 lines) in src/lib/rma/bridgePrazo.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/rma/bridgePrazo.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-d2e309a7fc8c7633", "name": "Commented-code block (5 lines) in src/lib/rma/calcIndicadores.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/rma/calcIndicadores.ts: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-f023f09b3398ea43", "name": "Commented-code block (6 lines) in src/lib/rma/bridgeIndicadores.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/rma/bridgeIndicadores.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-dc259d78b2019c7c", "name": "Commented-code block (6 lines) in src/lib/rma/bridgeVisaoGeral.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/rma/bridgeVisaoGeral.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-b88e8d2f3af919ad", "name": "Commented-code block (12 lines) in src/lib/rma/calcPrazo.ts:6", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/rma/calcPrazo.ts: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-bfe89ae51acf7b98", "name": "Commented-code block (5 lines) in src/lib/mocks/chat.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/mocks/chat.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-6fa43775f5d2b314", "name": "Commented-code block (5 lines) in src/lib/hooks/useInsumosView.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/hooks/useInsumosView.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-fa06bd9c371c9993", "name": "Commented-code block (6 lines) in src/lib/hooks/useObraRealtime.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/hooks/useObraRealtime.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-e07fd9d2b92fb70d", "name": "Commented-code block (6 lines) in src/lib/hooks/useValorAgregado.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/hooks/useValorAgregado.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-5f46ebd6f7e97940", "name": "Commented-code block (5 lines) in src/lib/hooks/useChecklist.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/hooks/useChecklist.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-16b280f2cb183913", "name": "Commented-code block (5 lines) in src/lib/hooks/useEncargosView.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/hooks/useEncargosView.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-7c4b0c44fcd70569", "name": "Commented-code block (7 lines) in src/lib/supabase/obraArquivos.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/supabase/obraArquivos.ts: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-885d54163858a4e4", "name": "Commented-code block (5 lines) in src/lib/supabase/mapaSegmentos.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/supabase/mapaSegmentos.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-10ebb274c0cea0d1", "name": "Commented-code block (5 lines) in src/lib/supabase/bdi.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/supabase/bdi.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-90aa11b19e088283", "name": "Commented-code block (5 lines) in src/lib/supabase/cronograma.ts:48", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/supabase/cronograma.ts:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3126f50f4e01e527", "name": "Commented-code block (5 lines) in src/lib/supabase/normalizacao.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/supabase/normalizacao.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-57bfe8554eeee938", "name": "Commented-code block (7 lines) in src/lib/supabase/faturamentoSecoes.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/supabase/faturamentoSecoes.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-e4c1a60b7247c9f7", "name": "Commented-code block (6 lines) in src/routes/_app.tsx:346", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/_app.tsx: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-f4979c9e400e70ab", "name": "Commented-code block (9 lines) in src/routes/_app/contracts/$contractId/normalizacao.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/routes/_app/contracts/$contractId/normalizacao.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-20a4535379dad244", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/produtividade.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/produtividade.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-9a6f516414a9acd0", "name": "Commented-code block (8 lines) in src/routes/_app/contracts/$contractId/rma/curvas.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/routes/_app/contracts/$contractId/rma/curvas.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-bced32035186ec62", "name": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/rma/insumos.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/rma/insumos.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-6e8155960dddea59", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/faturamento.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/faturamento.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-022ae71fc31461b4", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/chuvas.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/chuvas.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-3010f14ed020d4e9", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/recursos.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/recursos.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-644247cee51e3b8e", "name": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/gerador-claim.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/gerador-claim.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-4fe25b2d4ec37478", "name": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/pontuais.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/pontuais.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-29f0450c24b91eec", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/bdi.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/bdi.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-9781487d47447659", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/insumos.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/insumos.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-6309961280e13e85", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/index.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/index.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-258a080cd93f4566", "name": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/indiretos.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/indiretos.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-82dc23e6890b994a", "name": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/encargos.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/encargos.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-da1d0f37b2a89d60", "name": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/valor-agregado.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/valor-agregado.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-9a82cf7d16234d20", "name": "21 env vars used in code but missing from .env.example", "shortDescription": {"text": "21 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ANTHROPIC_API_KEY`, `DBPASS`, `DB_URL`, `EXTRACTOR_MODEL`, `EXTRACTOR_RECONCILE`, `INGEST_MAX_ROWS`, `INGEST_MAX_TOTAL_ROWS`, `MAPPER_MODEL` + 13 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:\nagent/agents/extracao/job.py:handler, agent/agents/normalizacao/job.py:handler\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:\nagent/agents/normalizacao/engine.py:fail, agent/agents/normalizacao/engine.py:fail, agent/agents/normalizacao/engine.py:fail, agent/agents/normalizacao/engine.py:fail\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-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nagent/agents/normalizacao/persist.py:upsert_cronograma, agent/agents/normalizacao/persist.py:upsert_faturamento_curva, agent/agents/normalizacao/persist.py:upsert_orcamento, agent/agents/normalizacao/persist.py:upsert_cronograma_tarefas\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nagent/agents/normalizacao/resolvers.py:extrair_chuvas, agent/agents/normalizacao/resolvers.py:extrair_curvas_frentes, agent/agents/normalizacao/resolvers.py:extrair_faturamento_frentes, agent/agents/normalizacao/resolvers.py:extrair_faturamento_frente_trecho\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-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`agent/main.py` declares `GET /api/health` 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-8e1fadad2500f063", "name": "Unused endpoint: POST /ask", "shortDescription": {"text": "Unused endpoint: POST /ask"}, "fullDescription": {"text": "`agent/agents/adm_contratual/router.py` declares `POST /ask` 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-a275fdf64e653107", "name": "Unused endpoint: POST /sinteses/regerar", "shortDescription": {"text": "Unused endpoint: POST /sinteses/regerar"}, "fullDescription": {"text": "`agent/agents/adm_contratual/router.py` declares `POST /sinteses/regerar` 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/22424"}, "properties": {"repository": "voratadev-cmd/Base-Repository", "repoUrl": "https://github.com/voratadev-cmd/Base-Repository", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: voratadev-cmd/Base-Repository"}, "properties": {"repobilityId": 467476, "scanner": "foundry_dataset", "fingerprint": "6f55159e8394107f201292bb11c3e4c820846a4d71553892e62fa327ae1ef81f", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"docs_or_claims": 12, "api_integration_gap": 1, "agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 64, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 12, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 12, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "voratadev-cmd/Base-Repository#1", "issue_number": "1", "quality_tiers": {"unresolved": 4}, "repo_full_name": "voratadev-cmd/Base-Repository", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-50fa0e85aceb4483", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"docs_or_claims": 60}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: voratadev-cmd/Base-Repository#1\nRepo: voratadev-cmd/Base-Repository\nIssue/PR number: 1\nGraph consistency label: needs_more_evidence\nNodes: 24\nEdges: 64\nNode types: {'pr_file': 12, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'docs_or_claims': 12, 'not_resolved_or_not_observed': 4, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'api_integration_gap': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/voratadev-cmd/Base-Repository", "source_id": "graph-query-motif_query-bc51b759521887f6", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "voratadev-cmd/Base-Repository", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: voratadev-cmd/Base-Repository"}, "properties": {"repobilityId": 450697, "scanner": "foundry_dataset", "fingerprint": "ab91b8ad8a6bc35d7a71126f15577e525732ada71afe14a2110269390f5cf9ca", "category": "practices", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Docs-only response to runtime or integration issue", "intent": "Assumption-check examples where docs or claims are not enough proof.", "labels": {"docs_or_claims": 12, "api_integration_gap": 1, "agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "docs_only_runtime_fix", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 64, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 12, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 12, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "voratadev-cmd/Base-Repository#1", "issue_number": "1", "quality_tiers": {"unresolved": 4}, "repo_full_name": "voratadev-cmd/Base-Repository", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-1e9b383305f13250", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"docs_or_claims": 60}}, "text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: voratadev-cmd/Base-Repository#1\nRepo: voratadev-cmd/Base-Repository\nIssue/PR number: 1\nGraph consistency label: needs_more_evidence\nNodes: 24\nEdges: 64\nNode types: {'pr_file': 12, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'docs_or_claims': 12, 'not_resolved_or_not_observed': 4, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'api_integration_gap': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train models to reject docs-only fixes for runtime, integration, data, or security failures.\n- Add paired examples where the correct fix changes executable paths and adds verification.\nAssumption checks:\n- Do changed files include executable code or only documentation/claims?\n- Does the complaint require runtime behavior that docs cannot prove?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/voratadev-cmd/Base-Repository", "source_id": "graph-query-motif_query-9666b91eabed8528", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/docs_only_runtime_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "voratadev-cmd/Base-Repository", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: voratadev-cmd/Base-Repository"}, "properties": {"repobilityId": 445161, "scanner": "foundry_dataset", "fingerprint": "5180d6866126691d31e28e0a9ff1c5295aa21343c70ce9f1175898b15eefa7dc", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "voratadev-cmd/Base-Repository#1", "human_labels": ["agent_instruction_gap", "api_integration_gap", "docs_or_claims"], "issue_number": "1", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "voratadev-cmd/Base-Repository", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-65c71f61a3fa151b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 3, "schemas": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 12, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 12}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: voratadev-cmd/Base-Repository\nThread: voratadev-cmd/Base-Repository#1\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: voratadev-cmd/Base-Repository#1\nRepo: voratadev-cmd/Base-Repository\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 12\nLabels: {'agent_instruction_gap': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 12}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-60f85e082beb9d98\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/voratadev-cmd/Base-Repository/pull/1\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: voratadev-cmd/Base-Repository\\nAuthor: voratadev-cmd (User)\\nURL: https://github.com/voratadev-cmd/Base-Repository/pull/1\\nTitle: docs(rma): novos docs SBSO maio/26\\nBody:\\n## Summary\\n- Adiciona 4 documentos novos da obra SBSO referentes a maio/2026, distribu\u00eddos em `documentos/{mensais,unicos}/` (fonte can\u00f4nica) + nas Tabs que consomem (organiza\u00e7\u00e3o por consumidor)\\n- Total: 4 arquivos \u00fanicos \u00b7 12 c\u00f3pias byte-id\u00eanticas \u00b7 ~9.6 MB\\n- Segue o padr\u00e3o estabelecido em `docs/rma/DOCUMENTOS REVISADOS/README.md` (Medi\u00e7\u00e3o alimenta Tabs 2/4/7; Relat\u00f3rio Semanal alimenta Tabs 3/4/7)\\n\\n## Arquivos\\n| Doc | Tamanho | C\u00f3pias |\\n|---|---:|---:|\\n| Medi\u00e7\u00e3o acumulada at\u00e9 31-05-26-r1.xlsx | 1.9 MB | 4 (mensais + Tabs 2, 4, 7) |\\n| Relat\u00f3rio Semanal SBSO 11-17/05.pdf | 76 KB | 4 (mensais + Tabs 3, 4, 7) |\\n| Of\u00edcio SBSO-ETC-INF-0002-2026 signed.pdf | 324 KB | 2 (unicos + Tab 7) |\\n| Solicita\u00e7\u00e3o de reajuste 2425.pdf | 548 KB | 2 (unicos + Tab 7) |\\n\\n## Test plan\\n- [x] md5 confere entre c\u00f3pias (todas byte-id\u00eanticas)\\n- [x] Distribui\u00e7\u00e3o por Tab bate com cat\u00e1logo do README\\n- [x] `tsc --noEmit` passa (hook de commit)\\n- [x] N\u00e3o viola `.gitig\"\n  },\n  {\n    \"id\": \"github-feedback-comment-f05cf64f11006b94\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/voratadev-cmd/Base-Repository/pull/1#issuecomment-4559750230\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: voratadev-cmd/Base-Repository\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/voratadev-cmd/Base-Repository/pull/1#issuecomment-4559750230\\nTitle: \\nBody:\\n[vc]: #drFmC8Bk4+b+enGQvIsn1lN8tCI2Vg+zeK3mjTo4TFQ=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHM\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/voratadev-cmd/Base-Repository", "source_id": "comment-chain-pattern-bad_chains-4ed1bb83653072d5", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "voratadev-cmd/Base-Repository", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "scanner-93f5bbfaf73f80ee", "level": "note", "message": {"text": "Possibly dead Python function: verify_vps_secret"}, "properties": {"repobilityId": "f7d10dcb7d284844", "scanner": "scanner-primary", "fingerprint": "93f5bbfaf73f80ee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/api/auth.py:16"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ba1c30fb0335393", "level": "note", "message": {"text": "Possibly dead Python function: handler"}, "properties": {"repobilityId": "bd219af3bd678eef", "scanner": "scanner-primary", "fingerprint": "0ba1c30fb0335393", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/agents/extracao/job.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c505f19d3fcaade9", "level": "note", "message": {"text": "Possibly dead Python function: handler"}, "properties": {"repobilityId": "bd219af3bd678eef", "scanner": "scanner-primary", "fingerprint": "c505f19d3fcaade9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/agents/mapeamento/job.py:42"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da222b762e0c5289", "level": "note", "message": {"text": "Possibly dead Python function: regenerar_sinteses"}, "properties": {"repobilityId": "0e7f5d7db11f8fe8", "scanner": "scanner-primary", "fingerprint": "da222b762e0c5289", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/agents/adm_contratual/sintese.py:144"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d658edfd8666cc1f", "level": "note", "message": {"text": "Possibly dead Python function: handler"}, "properties": {"repobilityId": "bd219af3bd678eef", "scanner": "scanner-primary", "fingerprint": "d658edfd8666cc1f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/agents/normalizacao/job.py:67"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-02e828de991c1076", "level": "note", "message": {"text": "Possibly dead Python function: insert_row"}, "properties": {"repobilityId": "ba7bc52e99535798", "scanner": "scanner-primary", "fingerprint": "02e828de991c1076", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/services/supabase_client.py:13"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6fdabd4a51b1e510", "level": "note", "message": {"text": "Possibly dead Python function: update_row"}, "properties": {"repobilityId": "355d18e9d068fe41", "scanner": "scanner-primary", "fingerprint": "6fdabd4a51b1e510", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/services/supabase_client.py:17"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ad334aed540153b", "level": "note", "message": {"text": "Possibly dead Python function: fetch_rows"}, "properties": {"repobilityId": "90703c5ea0ae442e", "scanner": "scanner-primary", "fingerprint": "2ad334aed540153b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/services/supabase_client.py:21"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ddcb97e7602ede7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/ui/chart.tsx:73"}, "properties": {"repobilityId": "b8c68f17a4018107", "scanner": "scanner-primary", "fingerprint": "3ddcb97e7602ede7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9d0721e6e0e3827a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/rma/colecao.tsx:58"}, "properties": {"repobilityId": "2ddc90e654dc95f2", "scanner": "scanner-primary", "fingerprint": "9d0721e6e0e3827a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7196d50c344cfd4e", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/routes/_app/contracts/$contractId/desequilibrio/gerador-claim.tsx:89"}, "properties": {"repobilityId": "a9c68974143a39f0", "scanner": "scanner-primary", "fingerprint": "7196d50c344cfd4e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-773dbb11490de160", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "4aa6e69f5fbeed47", "scanner": "scanner-primary", "fingerprint": "773dbb11490de160", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/Dockerfile"}, "region": {"startLine": 6}}}]}, {"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-28b5a0085a7d7b39", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/ui/chart.tsx:73"}, "properties": {"repobilityId": "33f10636e53b4298", "scanner": "scanner-primary", "fingerprint": "28b5a0085a7d7b39", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/ui/chart.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6034fa801632899c", "level": "note", "message": {"text": "Very large file: agent/agents/normalizacao/gate.py (872 lines)"}, "properties": {"repobilityId": "71a25f3302ee7564", "scanner": "scanner-primary", "fingerprint": "6034fa801632899c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dfebdc54724e87d2", "level": "note", "message": {"text": "Very large file: agent/agents/normalizacao/resolvers.py (2998 lines)"}, "properties": {"repobilityId": "dd026a42883e4490", "scanner": "scanner-primary", "fingerprint": "dfebdc54724e87d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-07e32bca040d3429", "level": "note", "message": {"text": "Very large file: src/routeTree.gen.ts (1434 lines)"}, "properties": {"repobilityId": "4d6e2020462be5c7", "scanner": "scanner-primary", "fingerprint": "07e32bca040d3429", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8542cc1ba3bbd18b", "level": "note", "message": {"text": "Very large file: src/lib/mocks/obras/types.ts (2822 lines)"}, "properties": {"repobilityId": "3a7351bcf2af4193", "scanner": "scanner-primary", "fingerprint": "8542cc1ba3bbd18b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e998dcfbc94c5ce7", "level": "note", "message": {"text": "Very large file: src/lib/supabase/database.types.ts (3226 lines)"}, "properties": {"repobilityId": "c51b24ca1b48a39c", "scanner": "scanner-primary", "fingerprint": "e998dcfbc94c5ce7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c0fda49910efe3ed", "level": "note", "message": {"text": "Very large file: src/routes/_app/contracts/$contractId/extracao.tsx (1530 lines)"}, "properties": {"repobilityId": "c45d9eed02b0b8ac", "scanner": "scanner-primary", "fingerprint": "c0fda49910efe3ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-6611ff22818b6a92", "level": "note", "message": {"text": "31 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "6611ff22818b6a92", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "a80c839ee2bab990", "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": "effae294eb6f2afd", "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": "9448d394b63d6eb1", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "76ea079af9186e6d", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "a1357c641daa02e9", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "10459271eb693d15", "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": "71aa751b136dc9e4", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-cd860745f4df0e96", "level": "none", "message": {"text": "Commented-code block (5 lines) in vite.config.ts:1"}, "properties": {"repobilityId": "8be405a86a690f1c", "scanner": "scanner-primary", "fingerprint": "cd860745f4df0e96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4b722d11fab6feb", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent/config.py:72"}, "properties": {"repobilityId": "7a033f80151504a0", "scanner": "scanner-primary", "fingerprint": "e4b722d11fab6feb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eab91b34a9e72b33", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent/agents/extracao/cobertura.py:174"}, "properties": {"repobilityId": "7ccec220f7feabcf", "scanner": "scanner-primary", "fingerprint": "eab91b34a9e72b33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eafcf9061070773c", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent/agents/extracao/cells.py:247"}, "properties": {"repobilityId": "6545cccaed6e8e0e", "scanner": "scanner-primary", "fingerprint": "eafcf9061070773c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67dcc69a48748ee7", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent/agents/extracao/envelope.py:171"}, "properties": {"repobilityId": "c22658b8a959fe12", "scanner": "scanner-primary", "fingerprint": "67dcc69a48748ee7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f62ca2195cd62db3", "level": "note", "message": {"text": "Legacy-named symbol `acumulada_v1` in agent/agents/normalizacao/test_faturamento.py:14"}, "properties": {"repobilityId": "ae0c7a2db22f616c", "scanner": "scanner-primary", "fingerprint": "f62ca2195cd62db3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-66162cbdc19c6e65", "level": "note", "message": {"text": "Legacy-named symbol `cronograma_v1` in agent/agents/normalizacao/test_cronograma.py:19"}, "properties": {"repobilityId": "0e7afd889ff1b015", "scanner": "scanner-primary", "fingerprint": "66162cbdc19c6e65", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-57032d11f753c142", "level": "note", "message": {"text": "Legacy-named symbol `ok_old` in agent/agents/normalizacao/test_workbook_recursos.py:160"}, "properties": {"repobilityId": "8bae58cb2dd310ea", "scanner": "scanner-primary", "fingerprint": "57032d11f753c142", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-66c2edb201ffccb7", "level": "note", "message": {"text": "Legacy-named symbol `medicao_v1` in agent/agents/normalizacao/test_fatia1.py:15"}, "properties": {"repobilityId": "4ac67fca3c442983", "scanner": "scanner-primary", "fingerprint": "66c2edb201ffccb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-44401d724925bd28", "level": "note", "message": {"text": "Legacy-named symbol `medicao_v1` in agent/agents/normalizacao/configs.py:69"}, "properties": {"repobilityId": "e5245a67ef0b7ccc", "scanner": "scanner-primary", "fingerprint": "44401d724925bd28", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c8b12788501fd696", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/agents/normalizacao/configs.py:73"}, "properties": {"repobilityId": "ce140ac921402ab0", "scanner": "scanner-primary", "fingerprint": "c8b12788501fd696", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fce504bdb848a66b", "level": "note", "message": {"text": "Legacy-named symbol `cronograma_v1` in agent/agents/normalizacao/job.py:29"}, "properties": {"repobilityId": "12acf4f8cc947012", "scanner": "scanner-primary", "fingerprint": "fce504bdb848a66b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5354948c31b9c349", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/agents/normalizacao/resolvers.py:192"}, "properties": {"repobilityId": "b3772ef88463b6d6", "scanner": "scanner-primary", "fingerprint": "5354948c31b9c349", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2091f7ae6cd8cea", "level": "note", "message": {"text": "Legacy-named symbol `produtividade_v1` in worker/scripts/populate-produtividade.mjs:7"}, "properties": {"repobilityId": "76e7cf0835168e88", "scanner": "scanner-primary", "fingerprint": "f2091f7ae6cd8cea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7cedf215cbb604ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/scripts/gen-database-types.mjs:1"}, "properties": {"repobilityId": "10bbf7e64bb25eee", "scanner": "scanner-primary", "fingerprint": "7cedf215cbb604ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8421e578a493d6d0", "level": "note", "message": {"text": "Legacy-named symbol `insumos_v1` in worker/scripts/populate-insumos.mjs:7"}, "properties": {"repobilityId": "087445ac8504391f", "scanner": "scanner-primary", "fingerprint": "8421e578a493d6d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e643ff5ac3667861", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/EmConstrucao.tsx:1"}, "properties": {"repobilityId": "4c0b450e5432073d", "scanner": "scanner-primary", "fingerprint": "e643ff5ac3667861", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59c4780652eef8a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/ds/FarolCard/FarolCard.tsx:8"}, "properties": {"repobilityId": "0ad890b26c970b89", "scanner": "scanner-primary", "fingerprint": "59c4780652eef8a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-924606c094764492", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/rma/bridgeFaturamento.ts:123"}, "properties": {"repobilityId": "3472209661d058b0", "scanner": "scanner-primary", "fingerprint": "924606c094764492", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e201600ec0f881dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/rma/bridgePrazo.ts:1"}, "properties": {"repobilityId": "2dbbf9cfabf8af4a", "scanner": "scanner-primary", "fingerprint": "e201600ec0f881dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2e309a7fc8c7633", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/rma/calcIndicadores.ts:6"}, "properties": {"repobilityId": "26f4cf07a91cce3b", "scanner": "scanner-primary", "fingerprint": "d2e309a7fc8c7633", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f023f09b3398ea43", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/rma/bridgeIndicadores.ts:1"}, "properties": {"repobilityId": "8e19bc6202999e45", "scanner": "scanner-primary", "fingerprint": "f023f09b3398ea43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc259d78b2019c7c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/rma/bridgeVisaoGeral.ts:1"}, "properties": {"repobilityId": "8c8d304e497ed3d6", "scanner": "scanner-primary", "fingerprint": "dc259d78b2019c7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b88e8d2f3af919ad", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/rma/calcPrazo.ts:6"}, "properties": {"repobilityId": "79fda71c8af220a6", "scanner": "scanner-primary", "fingerprint": "b88e8d2f3af919ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfe89ae51acf7b98", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/mocks/chat.ts:1"}, "properties": {"repobilityId": "f13de84b02f9c35e", "scanner": "scanner-primary", "fingerprint": "bfe89ae51acf7b98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fa43775f5d2b314", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/hooks/useInsumosView.ts:1"}, "properties": {"repobilityId": "9e96f23ef33d9557", "scanner": "scanner-primary", "fingerprint": "6fa43775f5d2b314", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa06bd9c371c9993", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/hooks/useObraRealtime.ts:5"}, "properties": {"repobilityId": "1c522f497feff8a6", "scanner": "scanner-primary", "fingerprint": "fa06bd9c371c9993", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e07fd9d2b92fb70d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/hooks/useValorAgregado.ts:1"}, "properties": {"repobilityId": "521ae99b70f7ca2a", "scanner": "scanner-primary", "fingerprint": "e07fd9d2b92fb70d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f46ebd6f7e97940", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/hooks/useChecklist.ts:1"}, "properties": {"repobilityId": "041747d3990daca0", "scanner": "scanner-primary", "fingerprint": "5f46ebd6f7e97940", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16b280f2cb183913", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/hooks/useEncargosView.ts:1"}, "properties": {"repobilityId": "8d08d342d9cb101e", "scanner": "scanner-primary", "fingerprint": "16b280f2cb183913", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c4b0c44fcd70569", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/supabase/obraArquivos.ts:4"}, "properties": {"repobilityId": "d1f6c12d5434c55f", "scanner": "scanner-primary", "fingerprint": "7c4b0c44fcd70569", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-885d54163858a4e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/supabase/mapaSegmentos.ts:1"}, "properties": {"repobilityId": "8489ddb3cf877450", "scanner": "scanner-primary", "fingerprint": "885d54163858a4e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10ebb274c0cea0d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/supabase/bdi.ts:1"}, "properties": {"repobilityId": "8ac56275428ea2ef", "scanner": "scanner-primary", "fingerprint": "10ebb274c0cea0d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90aa11b19e088283", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/supabase/cronograma.ts:48"}, "properties": {"repobilityId": "a5dc1d6582c79a33", "scanner": "scanner-primary", "fingerprint": "90aa11b19e088283", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3126f50f4e01e527", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/supabase/normalizacao.ts:1"}, "properties": {"repobilityId": "0ca6cf3332c94c3a", "scanner": "scanner-primary", "fingerprint": "3126f50f4e01e527", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57bfe8554eeee938", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/supabase/faturamentoSecoes.ts:1"}, "properties": {"repobilityId": "5f71544b4836173d", "scanner": "scanner-primary", "fingerprint": "57bfe8554eeee938", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4c1a60b7247c9f7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/_app.tsx:346"}, "properties": {"repobilityId": "89e534311d96242c", "scanner": "scanner-primary", "fingerprint": "e4c1a60b7247c9f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4979c9e400e70ab", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/routes/_app/contracts/$contractId/normalizacao.tsx:1"}, "properties": {"repobilityId": "c82080cabb61463a", "scanner": "scanner-primary", "fingerprint": "f4979c9e400e70ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20a4535379dad244", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/produtividade.tsx:1"}, "properties": {"repobilityId": "61df17a925098022", "scanner": "scanner-primary", "fingerprint": "20a4535379dad244", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a6f516414a9acd0", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/routes/_app/contracts/$contractId/rma/curvas.tsx:1"}, "properties": {"repobilityId": "a991b81336b3063f", "scanner": "scanner-primary", "fingerprint": "9a6f516414a9acd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bced32035186ec62", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/rma/insumos.tsx:1"}, "properties": {"repobilityId": "da6e38acb1e19682", "scanner": "scanner-primary", "fingerprint": "bced32035186ec62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e8155960dddea59", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/faturamento.tsx:1"}, "properties": {"repobilityId": "76e48d7f6888e306", "scanner": "scanner-primary", "fingerprint": "6e8155960dddea59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-022ae71fc31461b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/chuvas.tsx:1"}, "properties": {"repobilityId": "161c85680fd982f9", "scanner": "scanner-primary", "fingerprint": "022ae71fc31461b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3010f14ed020d4e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/rma/recursos.tsx:1"}, "properties": {"repobilityId": "0f178b8b7f6083c8", "scanner": "scanner-primary", "fingerprint": "3010f14ed020d4e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-644247cee51e3b8e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/gerador-claim.tsx:1"}, "properties": {"repobilityId": "17000f6f4a17f037", "scanner": "scanner-primary", "fingerprint": "644247cee51e3b8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fe25b2d4ec37478", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/pontuais.tsx:1"}, "properties": {"repobilityId": "00a9af899d131e86", "scanner": "scanner-primary", "fingerprint": "4fe25b2d4ec37478", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29f0450c24b91eec", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/bdi.tsx:1"}, "properties": {"repobilityId": "2417571d7d17284f", "scanner": "scanner-primary", "fingerprint": "29f0450c24b91eec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9781487d47447659", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/insumos.tsx:1"}, "properties": {"repobilityId": "321877d0a8beac7a", "scanner": "scanner-primary", "fingerprint": "9781487d47447659", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6309961280e13e85", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/index.tsx:1"}, "properties": {"repobilityId": "11c6df966023eaec", "scanner": "scanner-primary", "fingerprint": "6309961280e13e85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-258a080cd93f4566", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/_app/contracts/$contractId/desequilibrio/indiretos.tsx:1"}, "properties": {"repobilityId": "8358ac619091fdf3", "scanner": "scanner-primary", "fingerprint": "258a080cd93f4566", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82dc23e6890b994a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/encargos.tsx:1"}, "properties": {"repobilityId": "a9c3b584f9a4f3e3", "scanner": "scanner-primary", "fingerprint": "82dc23e6890b994a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da1d0f37b2a89d60", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/_app/contracts/$contractId/desequilibrio/valor-agregado.tsx:1"}, "properties": {"repobilityId": "b27b177b1da4afac", "scanner": "scanner-primary", "fingerprint": "da1d0f37b2a89d60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a82cf7d16234d20", "level": "note", "message": {"text": "21 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "2fad2cbef136ee78", "scanner": "scanner-primary", "fingerprint": "9a82cf7d16234d20", "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": "56881bcc54b3d907", "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": "aa2728ebcb43c05b", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "b1462411b612ba57", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "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": "e4ccd493bf895cc5", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "85aa29499e0791a1", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "bbc2f1367046c69d", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e1fadad2500f063", "level": "note", "message": {"text": "Unused endpoint: POST /ask"}, "properties": {"repobilityId": "e44bf39ecde56a3d", "scanner": "scanner-primary", "fingerprint": "8e1fadad2500f063", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a275fdf64e653107", "level": "note", "message": {"text": "Unused endpoint: POST /sinteses/regerar"}, "properties": {"repobilityId": "dad738f288b103c6", "scanner": "scanner-primary", "fingerprint": "a275fdf64e653107", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}