{"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: tedthizzy/ai-bubble", "shortDescription": {"text": "Foundry mined unresolved feedback: tedthizzy/ai-bubble"}, "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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#4\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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#4\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#4\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 4\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: tedthizzy/ai-bubble", "shortDescription": {"text": "Foundry mined bad chains: tedthizzy/ai-bubble"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#4\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: tedthizzy/ai-bubble#4\nRepo: tedthizzy/ai-bubble\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6ecc793c9f41aede\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: tedthizzy/ai-bubble", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: tedthizzy/ai-bubble"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#3\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#3\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#3\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 3\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: "}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "scanner-d86614f9e352c3b0", "name": "Possibly dead Python function: progress", "shortDescription": {"text": "Possibly dead Python function: progress"}, "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-bd34db8afa3c5337", "name": "Possibly dead Python function: progress", "shortDescription": {"text": "Possibly dead Python function: progress"}, "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-fe6b04c40b8805cd", "name": "Possibly dead Python function: primary_counterparty", "shortDescription": {"text": "Possibly dead Python function: primary_counterparty"}, "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-6fcc45a477dd68a6", "name": "Possibly dead Python function: is_high_severity", "shortDescription": {"text": "Possibly dead Python function: is_high_severity"}, "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-577c9ebfcf3c10f4", "name": "Possibly dead Python function: with_human_override", "shortDescription": {"text": "Possibly dead Python function: with_human_override"}, "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-98bbc100dbed70d4", "name": "Possibly dead Python function: fetch_data", "shortDescription": {"text": "Possibly dead Python function: fetch_data"}, "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-2480020a44549cba", "name": "Possibly dead Python function: llm_extract", "shortDescription": {"text": "Possibly dead Python function: llm_extract"}, "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-64b8b6162975b4fd", "name": "Possibly dead Python function: decide", "shortDescription": {"text": "Possibly dead Python function: decide"}, "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-4d821290884cd496", "name": "Possibly dead Python function: run_edgar_extraction", "shortDescription": {"text": "Possibly dead Python function: run_edgar_extraction"}, "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-32b816d28741d12f", "name": "Possibly dead Python function: summarize_collateral_name_sanity", "shortDescription": {"text": "Possibly dead Python function: summarize_collateral_name_sanity"}, "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-38a3ae9904ebc1b7", "name": "Possibly dead Python function: queue_items_for", "shortDescription": {"text": "Possibly dead Python function: queue_items_for"}, "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-a1b66c500fa99860", "name": "Possibly dead Python function: permits_for", "shortDescription": {"text": "Possibly dead Python function: permits_for"}, "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-25a84689a75fdf6c", "name": "Possibly dead Python function: equipment_for", "shortDescription": {"text": "Possibly dead Python function: equipment_for"}, "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-3f035989a0b985a0", "name": "Possibly dead Python function: observations_for", "shortDescription": {"text": "Possibly dead Python function: observations_for"}, "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-f1a6a7c3c15c3d21", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "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-7abeb4dfcf7359f6", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "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-bb483dd22bdc439e", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "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-c60e5ba5f9c992a4", "name": "Possibly dead Python function: to_tranche_csv_row", "shortDescription": {"text": "Possibly dead Python function: to_tranche_csv_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-f9e3e616dd4077bd", "name": "Possibly dead Python function: is_ecosystem_deal", "shortDescription": {"text": "Possibly dead Python function: is_ecosystem_deal"}, "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-d52447edbbc11024", "name": "Possibly dead Python function: load_edges", "shortDescription": {"text": "Possibly dead Python function: load_edges"}, "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-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53850fe4cd778181", "name": "Possible secret in scripts/install_gds_neo4j_desktop.sh", "shortDescription": {"text": "Possible secret in scripts/install_gds_neo4j_desktop.sh"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-1f754e152a83e2c7", "name": "Insecure pattern 'direct_innerhtml_assignment' in viz/track_record.html:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in viz/track_record.html:102"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-92260c137c1b4413", "name": "Insecure pattern 'weak_hash' in viz/graph_data.json:1", "shortDescription": {"text": "Insecure pattern 'weak_hash' in viz/graph_data.json:1"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d215b1057fdf3561", "name": "Insecure pattern 'direct_innerhtml_assignment' in viz/index.html:197", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in viz/index.html:197"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "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": "astral-sh/setup-uv@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90582dcbededfc78", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/deploy-pages@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-a8f86925e678434c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2743e4c5f8c0307", "name": "Very large file: tests/analysis/test_materiality_adjudication.py (7658 lines)", "shortDescription": {"text": "Very large file: tests/analysis/test_materiality_adjudication.py (7658 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-dfa3263d1bc8c2c4", "name": "Very large file: scripts/generate_final_burry_report.py (5019 lines)", "shortDescription": {"text": "Very large file: scripts/generate_final_burry_report.py (5019 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-9285f85922b99e91", "name": "Very large file: src/bubble/ingestion/compute/edgar_extraction.py (1465 lines)", "shortDescription": {"text": "Very large file: src/bubble/ingestion/compute/edgar_extraction.py (1465 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-b387a9e288eedf04", "name": "Very large file: src/bubble/ingestion/edgar/document_acquisition.py (2539 lines)", "shortDescription": {"text": "Very large file: src/bubble/ingestion/edgar/document_acquisition.py (2539 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-6a65a2343af6dc8f", "name": "Very large file: src/bubble/analysis/materiality_adjudication_results.py (3809 lines)", "shortDescription": {"text": "Very large file: src/bubble/analysis/materiality_adjudication_results.py (3809 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-0b11bbe8c0c2e97a", "name": "Very large file: src/bubble/analysis/review_queue.py (1309 lines)", "shortDescription": {"text": "Very large file: src/bubble/analysis/review_queue.py (1309 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-48e74755c14d30fb", "name": "Very large file: src/bubble/analysis/capital_exposure_graph.py (2597 lines)", "shortDescription": {"text": "Very large file: src/bubble/analysis/capital_exposure_graph.py (2597 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 223 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-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c6aa3184c98825b", "name": "Commented-code block (6 lines) in tests/test_expectations_inversion.py:113", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_expectations_inversion.py:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf1a43ddd9dec40c", "name": "Commented-code block (5 lines) in tests/quality/test_claim_semantics.py:146", "shortDescription": {"text": "Commented-code block (5 lines) in tests/quality/test_claim_semantics.py:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bbace167fcefabf", "name": "Legacy-named symbol `explicit_debt_tranche_context_v1` in tests/ingestion/test_edgar_document_acquisition.py:413", "shortDescription": {"text": "Legacy-named symbol `explicit_debt_tranche_context_v1` in tests/ingestion/test_edgar_document_acquisition.py:413"}, "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-e97e966349c83e5b", "name": "Legacy-named symbol `deterministic_edgar_agreement_v1` in tests/analysis/test_capital_structure.py:203", "shortDescription": {"text": "Legacy-named symbol `deterministic_edgar_agreement_v1` in tests/analysis/test_capital_structure.py:203"}, "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-6c91c12e087218cc", "name": "Legacy-named symbol `deterministic_edgar_agreement_v1` in tests/analysis/test_review_queue.py:40", "shortDescription": {"text": "Legacy-named symbol `deterministic_edgar_agreement_v1` in tests/analysis/test_review_queue.py:40"}, "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-e3fec353c07167c9", "name": "Commented-code block (9 lines) in scripts/generate_final_burry_report.py:2747", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/generate_final_burry_report.py:2747"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc43d2e6fc54926d", "name": "Commented-code block (6 lines) in scripts/refresh_live_overlay.py:108", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/refresh_live_overlay.py:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13faeea8bd8f6892", "name": "Commented-code block (5 lines) in scripts/workflows/phase3_deep_dive.workflow.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/workflows/phase3_deep_dive.workflow.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-648693cdc9d38a27", "name": "Commented-code block (5 lines) in src/bubble/market_signals.py:53", "shortDescription": {"text": "Commented-code block (5 lines) in src/bubble/market_signals.py:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ee7340dbdb3b975", "name": "Network/subprocess call without timeout or try/except \u2014 src/bubble/cli.py:63", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bubble/cli.py:63"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bb897be3cabe67c4", "name": "Legacy-named symbol `model_copy` in src/bubble/models/base.py:112", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/bubble/models/base.py:112"}, "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-5ef07c1a88b6c88c", "name": "Commented-code block (5 lines) in src/bubble/quality/claim_semantics.py:104", "shortDescription": {"text": "Commented-code block (5 lines) in src/bubble/quality/claim_semantics.py:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1bc176c685de6461", "name": "Commented-code block (8 lines) in src/bubble/quality/undrawn_capacity_basis.py:29", "shortDescription": {"text": "Commented-code block (8 lines) in src/bubble/quality/undrawn_capacity_basis.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-543bf1fdda2cfda2", "name": "Legacy-named symbol `ferc_entities_to_ppas_v1` in src/bubble/ingestion/capital/ppa_extraction.py:218", "shortDescription": {"text": "Legacy-named symbol `ferc_entities_to_ppas_v1` in src/bubble/ingestion/capital/ppa_extraction.py:218"}, "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-3f0d4bcbb6b77ff7", "name": "Legacy-named symbol `deterministic_facility_location_name_v1` in src/bubble/ingestion/physical/record_matching.py:494", "shortDescription": {"text": "Legacy-named symbol `deterministic_facility_location_name_v1` in src/bubble/ingestion/physical/record_matching.py:494"}, "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-2a66cf8ee91e54a5", "name": "Commented-code block (5 lines) in src/bubble/ingestion/physical/record_matching.py:518", "shortDescription": {"text": "Commented-code block (5 lines) in src/bubble/ingestion/physical/record_matching.py:518"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bdff2cd0ea58010", "name": "Legacy-named symbol `deterministic_name_party_location_capacity_v1` in src/bubble/ingestion/physical/queue_matching.py:4", "shortDescription": {"text": "Legacy-named symbol `deterministic_name_party_location_capacity_v1` in src/bubble/ingestion/physical/queue_matching.py:467"}, "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-1c69fec8c30230e8", "name": "Legacy-named symbol `deterministic_edgar_agreement_v1` in src/bubble/ingestion/edgar/document_acquisition.py:807", "shortDescription": {"text": "Legacy-named symbol `deterministic_edgar_agreement_v1` in src/bubble/ingestion/edgar/document_acquisition.py:807"}, "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-0d7ef3373b47b850", "name": "Commented-code block (9 lines) in src/bubble/analysis/materiality_adjudication_results.py:2417", "shortDescription": {"text": "Commented-code block (9 lines) in src/bubble/analysis/materiality_adjudication_results.py:2417"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f6dd23bc1a295ee", "name": "Legacy-named symbol `extract_deals_and_risks_v1` in src/bubble/extraction/llm.py:97", "shortDescription": {"text": "Legacy-named symbol `extract_deals_and_risks_v1` in src/bubble/extraction/llm.py:97"}, "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-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/check_mixed_evidence_collisions.py:main, scripts/check_direct_tier_economic_event_duplicates.py:main, scripts/check_direct_tier_debt_card_alignment.py:main\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-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/check_direct_tier_economic_event_duplicates.py:to_row, scripts/check_direct_tier_debt_card_alignment.py:to_row\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-76a2f6818267a9a8", "name": "Near-duplicate function bodies in 8 places", "shortDescription": {"text": "Near-duplicate function bodies in 8 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/build_weak_links.py:main, scripts/build_capital_exposure_graph.py:main, scripts/build_timing_signals.py:main, scripts/build_review_queue.py:main\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-c54c6fb8e364daaa", "name": "Near-duplicate function bodies in 16 places", "shortDescription": {"text": "Near-duplicate function bodies in 16 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/bubble/ingestion/satellite.py:load_satellite_observations, src/bubble/analysis/equipment_bottlenecks.py:load_equipment_bottlenecks, src/bubble/analysis/demand_side.py:load_demand_side, src/bubble/analysis/power_exposure.py:load_power_exposure\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:\nsrc/bubble/analysis/capital_structure.py:to_dict, src/bubble/analysis/capital_structure.py:to_dict, src/bubble/analysis/capital_structure.py:to_dict, src/bubble/analysis/capital_structure.py:to_dict\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}}]}}, "automationDetails": {"id": "repobility/20946"}, "properties": {"repository": "tedthizzy/ai-bubble", "repoUrl": "https://github.com/tedthizzy/ai-bubble", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 467386, "scanner": "foundry_dataset", "fingerprint": "3fcb2e0df3c885e7222728c92a35cc17ad742165df96d4ee41c3c952c33af373", "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": {"runtime_failure": 1, "source_or_other": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "tedthizzy/ai-bubble#4", "issue_number": "4", "quality_tiers": {"unresolved": 3}, "repo_full_name": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-e31245e60066428e", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 4}}, "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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#4\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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#4\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#4\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 4\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/tedthizzy/ai-bubble", "source_id": "graph-query-motif_query-ea1951ff523aa53d", "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": "tedthizzy/ai-bubble", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 467385, "scanner": "foundry_dataset", "fingerprint": "50ac9dda9ed4313dafd58a124534b40206849437daccc4bb20f79ddd0fd9f763", "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": {"source_or_other": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "tedthizzy/ai-bubble#3", "issue_number": "3", "quality_tiers": {"unresolved": 3}, "repo_full_name": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d5f75792cf9cb1fa", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 4}}, "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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#3\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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#3\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#3\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 3\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/tedthizzy/ai-bubble", "source_id": "graph-query-motif_query-db684f8da7fbe9d4", "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": "tedthizzy/ai-bubble", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 467384, "scanner": "foundry_dataset", "fingerprint": "e792feaa806abda7fdb2a41bd5dbb6f08556d61f8f82aded1ac9fc37c22ff5ef", "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": {"source_or_other": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "tedthizzy/ai-bubble#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-26d4be4402e848b8", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 4}}, "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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#2\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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#2\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/tedthizzy/ai-bubble", "source_id": "graph-query-motif_query-ebf4210ea2c9f65e", "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": "tedthizzy/ai-bubble", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 467383, "scanner": "foundry_dataset", "fingerprint": "6ef1b6f2235fb52a9e8ad1ac4065dc2681ef6187c419436c9d415234119c940e", "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": {"source_or_other": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tedthizzy/ai-bubble#1", "issue_number": "1", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-83000623837c2a6e", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 5}}, "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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#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: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#1\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#1\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 1\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_feedback_general': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\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/tedthizzy/ai-bubble", "source_id": "graph-query-motif_query-21ad2d3df2775dfa", "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": "tedthizzy/ai-bubble", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 445060, "scanner": "foundry_dataset", "fingerprint": "746975441ade4dce14ac96d687d7c8fcd3164f414cb82acd4bb585947702579a", "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": "tedthizzy/ai-bubble#4", "human_labels": ["runtime_failure", "source_or_other"], "issue_number": "4", "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": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-d00f32df1766c456", "helicopter_views": {"graphs": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#4\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: tedthizzy/ai-bubble#4\nRepo: tedthizzy/ai-bubble\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6ecc793c9f41aede\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tedthizzy/ai-bubble/pull/4\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tedthizzy/ai-bubble\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tedthizzy/ai-bubble/pull/4\\nTitle: chore(deps): bump starlette from 1.2.1 to 1.3.1\\nBody:\\nBumps [starlette](https://github.com/Kludex/starlette) from 1.2.1 to 1.3.1.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/Kludex/starlette/releases\\\">starlette's releases</a>.</em></p>\\n<blockquote>\\n<h2>Version 1.3.1</h2>\\n<h2>What's Changed</h2>\\n<ul>\\n<li>Use <code>StarletteDeprecationWarning</code> instead of <code>DeprecationWarning</code> by <a href=\\\"https://github.com/Kludex\\\"><code>@\u200bKludex</code></a> in <a href=\\\"https://redirect.github.com/Kludex/starlette/pull/3119\\\">Kludex/starlette#3119</a></li>\\n<li>Enforce <code>max_fields</code> and <code>max_part_size</code> in <code>FormParser</code> by <a href=\\\"https://github.com/Kludex\\\"><code>@\u200bKludex</code></a> in <a href=\\\"https://redirect.github.com/Kludex/starlette/pull/3329\\\">Kludex/starlette#3329</a></li>\\n<li>Enforce <code>FormParser</code> limits in parser callbacks by <a href=\\\"https://github.com/Kludex\\\"><code>@\u200bKludex</code></a> in <a href=\\\"https://redir\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-a293940a50dad5da\",\n    \"filename\": \"uv.lock\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 3,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/tedthizzy/ai-bubble/blob/27fdb15b55e6c92cb243a593278777aa282d3635/uv.lock\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c5029ce3a22f5b73\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: tedthizzy/ai-bubble\nGraph label: source_backed_multi_signal_graph\nNodes: 14\nEdges: 22\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 8, \"source\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tedthizzy/ai-bubble", "source_id": "comment-chain-pattern-bad_chains-18bb5f0eef82b21d", "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": "tedthizzy/ai-bubble", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 445059, "scanner": "foundry_dataset", "fingerprint": "6b1123545dbdcb0c81288c3a75e3b180e52fbf356348f7b6580a1f5b6dffab12", "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": "tedthizzy/ai-bubble#3", "human_labels": ["security_auth_secret", "source_or_other"], "issue_number": "3", "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": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c80fbd6681c540e7", "helicopter_views": {"graphs": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#3\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: tedthizzy/ai-bubble#3\nRepo: tedthizzy/ai-bubble\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a52c6a62affd8340\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tedthizzy/ai-bubble/pull/3\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tedthizzy/ai-bubble\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tedthizzy/ai-bubble/pull/3\\nTitle: chore(deps): bump cryptography from 48.0.0 to 48.0.1\\nBody:\\nBumps [cryptography](https://github.com/pyca/cryptography) from 48.0.0 to 48.0.1.\\n<details>\\n<summary>Changelog</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\\\">cryptography's changelog</a>.</em></p>\\n<blockquote>\\n<p>48.0.1 - 2026-06-09</p>\\n<pre><code>\\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.1.\\n<p>.. _v48-0-0:<br />\\n</code></pre></p>\\n</blockquote>\\n</details>\\n<details>\\n<summary>Commits</summary>\\n<ul>\\n<li><a href=\\\"https://github.com/pyca/cryptography/commit/de987ce48ccfeb1abca41efa23b2bf73ec704f74\\\"><code>de987ce</code></a> 48.0.1 version bump and changelog (<a href=\\\"https://redirect.github.com/pyca/cryptography/issues/14996\\\">#14996</a>)</li>\\n<li>See full diff in <a href=\\\"https://github.com/pyca/cryptography/compare/48.0.0...48.0.1\\\">compare view</a></li>\\n</ul>\\n</details>\\n<br />\\n\\n\\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/bad\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-370ded18065b46bf\",\n    \"filename\": \"uv.lock\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 45,\n    \"deletions\": 45,\n    \"changes\": 90,\n    \"blob_url\": \"https://github.com/tedthizzy/ai-bubble/blob/745ba04ae50bfe62926b17927d7ccd2ee771564e/uv.lock\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-084e7fb201c6a2ed\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: tedthizzy/ai-bubble\nGraph label: source_backed_multi_signal_graph\nNodes: 14\nEdges: 22\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_a\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tedthizzy/ai-bubble", "source_id": "comment-chain-pattern-bad_chains-28719e6bfb69bee3", "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": "tedthizzy/ai-bubble", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 445058, "scanner": "foundry_dataset", "fingerprint": "f251494b41827001757183df064bf7e8203358b62fcd37498f833149b29dbf53", "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": "tedthizzy/ai-bubble#2", "human_labels": ["security_auth_secret", "source_or_other"], "issue_number": "2", "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": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-28d150b7539cf43b", "helicopter_views": {"graphs": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#2\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: tedthizzy/ai-bubble#2\nRepo: tedthizzy/ai-bubble\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cf38cd560efc0077\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tedthizzy/ai-bubble/pull/2\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tedthizzy/ai-bubble\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tedthizzy/ai-bubble/pull/2\\nTitle: chore(deps): bump python-multipart from 0.0.30 to 0.0.31\\nBody:\\nBumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.30 to 0.0.31.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/Kludex/python-multipart/releases\\\">python-multipart's releases</a>.</em></p>\\n<blockquote>\\n<h2>Version 0.0.31</h2>\\n<h2>What's Changed</h2>\\n<ul>\\n<li>Speed up multipart header parsing and callback dispatch by <a href=\\\"https://github.com/Kludex\\\"><code>@\u200bKludex</code></a> in <a href=\\\"https://redirect.github.com/Kludex/python-multipart/pull/295\\\">Kludex/python-multipart#295</a></li>\\n<li>Bound header field name size before validating by <a href=\\\"https://github.com/Kludex\\\"><code>@\u200bKludex</code></a> in <a href=\\\"https://redirect.github.com/Kludex/python-multipart/pull/296\\\">Kludex/python-multipart#296</a></li>\\n<li>Validate Content-Length is non-negative in parse_form by <a href=\\\"https://github.com/Kludex\\\"><code>@\u200bKludex</code></a> in <a href=\\\"https://redirect.github.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-f803321b81304118\",\n    \"filename\": \"uv.lock\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 3,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/tedthizzy/ai-bubble/blob/9add32d7f004b3abad86ed36bf12f14f8f43c9e1/uv.lock\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9ad6933827ac9a2b\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: tedthizzy/ai-bubble\nGraph label: source_backed_multi_signal_graph\nNodes: 14\nEdges: 22\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tedthizzy/ai-bubble", "source_id": "comment-chain-pattern-bad_chains-9bfa0384d3fc908f", "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": "tedthizzy/ai-bubble", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 445057, "scanner": "foundry_dataset", "fingerprint": "4dd84980ed3fc41afbbec41d96df231d8997b31974d21cee4a2514ebba71c618", "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": "tedthizzy/ai-bubble#1", "human_labels": ["human_feedback_general", "security_auth_secret", "source_or_other"], "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": "tedthizzy/ai-bubble", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-797caba5ae2a80f4", "helicopter_views": {"graphs": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#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: tedthizzy/ai-bubble#1\nRepo: tedthizzy/ai-bubble\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: 1\nLabels: {'security_auth_secret': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0d90bafb88bf2628\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tedthizzy/ai-bubble/pull/1\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tedthizzy/ai-bubble\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tedthizzy/ai-bubble/pull/1\\nTitle: Bump aiohttp from 3.13.5 to 3.14.0\\nBody:\\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiohttp&package-manager=uv&previous-version=3.13.5&new-version=3.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\\n\\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\\n\\n[//]: # (dependabot-automerge-start)\\n[//]: # (dependabot-automerge-end)\\n\\n---\\n\\n<details>\\n<summary>Dependabot commands and options</summary>\\n<br />\\n\\nYou can trigger Dependabot actions by commenting on this PR:\\n- `@dependabot rebase` will rebase this PR\\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\\n- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency\\n- `@depend\"\n  },\n  {\n    \"id\": \"github-feedback-comment-07bb7085d18f7b6c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tedthizzy/ai-bubble/pull/1#issuecomment-4697018293\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tedthizzy/ai-bubble\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tedthizzy/ai-bubble/pull/1#issuecomment-4697018293\\nTitle: \\nBody:\\nLooks like aiohttp is up-to-date now, so this is no longer needed.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-b1b45e23f628fb01\",\n    \"filename\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tedthizzy/ai-bubble", "source_id": "comment-chain-pattern-bad_chains-e8e26b265c4a8c70", "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": "tedthizzy/ai-bubble", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 456395, "scanner": "foundry_dataset", "fingerprint": "bde092081e99c06e7ce7d62d865e2b7fab64ba9126b7d7ca921341ceaaf71637", "category": "auth", "severity": "critical", "confidence": 0.78, "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": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"source_or_other": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "tedthizzy/ai-bubble#3", "issue_number": "3", "quality_tiers": {"unresolved": 3}, "repo_full_name": "tedthizzy/ai-bubble", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-25b22e1a8463d632", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#3\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#3\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#3\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 3\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tedthizzy/ai-bubble", "source_id": "graph-query-motif_query-2407aad656d216df", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tedthizzy/ai-bubble", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 456394, "scanner": "foundry_dataset", "fingerprint": "475e81215707cb70726bba811467448014f464e90fa1eda3ba420aa38a83af86", "category": "auth", "severity": "critical", "confidence": 0.78, "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": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"source_or_other": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "tedthizzy/ai-bubble#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "tedthizzy/ai-bubble", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-0f4fd015e077ec78", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#2\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#2\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tedthizzy/ai-bubble", "source_id": "graph-query-motif_query-be5b123467a6e9a7", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tedthizzy/ai-bubble", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tedthizzy/ai-bubble"}, "properties": {"repobilityId": 456393, "scanner": "foundry_dataset", "fingerprint": "9e4731ea8cdf3554d9fb45f4e00d5becfcb0cc8a3d3e35e3cc5ee268e5f94de2", "category": "auth", "severity": "critical", "confidence": 0.78, "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": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"source_or_other": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tedthizzy/ai-bubble#1", "issue_number": "1", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tedthizzy/ai-bubble", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6dc849c3e92956f3", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#1\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tedthizzy/ai-bubble\nThread: tedthizzy/ai-bubble#1\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tedthizzy/ai-bubble#1\nRepo: tedthizzy/ai-bubble\nIssue/PR number: 1\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_feedback_general': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tedthizzy/ai-bubble", "source_id": "graph-query-motif_query-91fbf93fb31eb0ba", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tedthizzy/ai-bubble", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "scanner-d86614f9e352c3b0", "level": "note", "message": {"text": "Possibly dead Python function: progress"}, "properties": {"repobilityId": "97c07eb024e59ee8", "scanner": "scanner-primary", "fingerprint": "d86614f9e352c3b0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/acquire_edgar_documents.py:33"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd34db8afa3c5337", "level": "note", "message": {"text": "Possibly dead Python function: progress"}, "properties": {"repobilityId": "97c07eb024e59ee8", "scanner": "scanner-primary", "fingerprint": "bd34db8afa3c5337", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_edgar_exhibit_manifest.py:29"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe6b04c40b8805cd", "level": "note", "message": {"text": "Possibly dead Python function: primary_counterparty"}, "properties": {"repobilityId": "903cd8a91a1abfff", "scanner": "scanner-primary", "fingerprint": "fe6b04c40b8805cd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/models/deal.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6fcc45a477dd68a6", "level": "note", "message": {"text": "Possibly dead Python function: is_high_severity"}, "properties": {"repobilityId": "4164f606ee122651", "scanner": "scanner-primary", "fingerprint": "6fcc45a477dd68a6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/models/risk.py:69"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-577c9ebfcf3c10f4", "level": "note", "message": {"text": "Possibly dead Python function: with_human_override"}, "properties": {"repobilityId": "7ab8b7b3c759cc2e", "scanner": "scanner-primary", "fingerprint": "577c9ebfcf3c10f4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/models/base.py:105"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-98bbc100dbed70d4", "level": "note", "message": {"text": "Possibly dead Python function: fetch_data"}, "properties": {"repobilityId": "dccdc16a29a94ceb", "scanner": "scanner-primary", "fingerprint": "98bbc100dbed70d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/orchestration/langgraph_agents/edgar_extraction_flow.py:29"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2480020a44549cba", "level": "note", "message": {"text": "Possibly dead Python function: llm_extract"}, "properties": {"repobilityId": "f55c9dbff040e823", "scanner": "scanner-primary", "fingerprint": "2480020a44549cba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/orchestration/langgraph_agents/edgar_extraction_flow.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64b8b6162975b4fd", "level": "note", "message": {"text": "Possibly dead Python function: decide"}, "properties": {"repobilityId": "d17f96b6de648910", "scanner": "scanner-primary", "fingerprint": "64b8b6162975b4fd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/orchestration/langgraph_agents/edgar_extraction_flow.py:58"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4d821290884cd496", "level": "note", "message": {"text": "Possibly dead Python function: run_edgar_extraction"}, "properties": {"repobilityId": "ba919489b386d614", "scanner": "scanner-primary", "fingerprint": "4d821290884cd496", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/orchestration/langgraph_agents/edgar_extraction_flow.py:90"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-32b816d28741d12f", "level": "note", "message": {"text": "Possibly dead Python function: summarize_collateral_name_sanity"}, "properties": {"repobilityId": "71e3a806272c05e7", "scanner": "scanner-primary", "fingerprint": "32b816d28741d12f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/quality/collateral_name_sanity.py:48"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-38a3ae9904ebc1b7", "level": "note", "message": {"text": "Possibly dead Python function: queue_items_for"}, "properties": {"repobilityId": "7f4964ad7f35981a", "scanner": "scanner-primary", "fingerprint": "38a3ae9904ebc1b7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/physical/loader.py:71"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1b66c500fa99860", "level": "note", "message": {"text": "Possibly dead Python function: permits_for"}, "properties": {"repobilityId": "534ff17afc338974", "scanner": "scanner-primary", "fingerprint": "a1b66c500fa99860", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/physical/loader.py:74"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-25a84689a75fdf6c", "level": "note", "message": {"text": "Possibly dead Python function: equipment_for"}, "properties": {"repobilityId": "eb0999804bbe922a", "scanner": "scanner-primary", "fingerprint": "25a84689a75fdf6c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/physical/loader.py:77"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f035989a0b985a0", "level": "note", "message": {"text": "Possibly dead Python function: observations_for"}, "properties": {"repobilityId": "aaa595cf6936a0a2", "scanner": "scanner-primary", "fingerprint": "3f035989a0b985a0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/physical/loader.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1a6a7c3c15c3d21", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "f1a6a7c3c15c3d21", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/sources/ferc.py:170"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7abeb4dfcf7359f6", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "7abeb4dfcf7359f6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/sources/ferc.py:175"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bb483dd22bdc439e", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "bb483dd22bdc439e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/sources/ferc.py:179"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c60e5ba5f9c992a4", "level": "note", "message": {"text": "Possibly dead Python function: to_tranche_csv_row"}, "properties": {"repobilityId": "470b1e080d00454f", "scanner": "scanner-primary", "fingerprint": "c60e5ba5f9c992a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/ingestion/edgar/document_acquisition.py:284"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9e3e616dd4077bd", "level": "note", "message": {"text": "Possibly dead Python function: is_ecosystem_deal"}, "properties": {"repobilityId": "25445c34d448c9b1", "scanner": "scanner-primary", "fingerprint": "f9e3e616dd4077bd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/analysis/ecosystem_scope.py:247"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d52447edbbc11024", "level": "note", "message": {"text": "Possibly dead Python function: load_edges"}, "properties": {"repobilityId": "adab401f7a434ae4", "scanner": "scanner-primary", "fingerprint": "d52447edbbc11024", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bubble/analysis/circular_financing.py:66"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-53850fe4cd778181", "level": "error", "message": {"text": "Possible secret in scripts/install_gds_neo4j_desktop.sh"}, "properties": {"repobilityId": "5e279753edd42b2c", "scanner": "scanner-primary", "fingerprint": "53850fe4cd778181", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/install_gds_neo4j_desktop.sh"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-1f754e152a83e2c7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in viz/track_record.html:102"}, "properties": {"repobilityId": "6328fdd2d51adc3f", "scanner": "scanner-primary", "fingerprint": "1f754e152a83e2c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "viz/track_record.html"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-92260c137c1b4413", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in viz/graph_data.json:1"}, "properties": {"repobilityId": "fc01bdf9494226bb", "scanner": "scanner-primary", "fingerprint": "92260c137c1b4413", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "viz/graph_data.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d215b1057fdf3561", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in viz/index.html:197"}, "properties": {"repobilityId": "0d61f053ff65b6b2", "scanner": "scanner-primary", "fingerprint": "d215b1057fdf3561", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "viz/index.html"}, "region": {"startLine": 197}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "46bca0fa0c5a1433", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-90582dcbededfc78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "31ee560a1956df34", "scanner": "scanner-primary", "fingerprint": "90582dcbededfc78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/refresh-and-deploy.yml"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-a8f86925e678434c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "f8f0205be0bf5a7e", "scanner": "scanner-primary", "fingerprint": "a8f86925e678434c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/refresh-and-deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2743e4c5f8c0307", "level": "note", "message": {"text": "Very large file: tests/analysis/test_materiality_adjudication.py (7658 lines)"}, "properties": {"repobilityId": "d28b731778fbcf83", "scanner": "scanner-primary", "fingerprint": "f2743e4c5f8c0307", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dfa3263d1bc8c2c4", "level": "note", "message": {"text": "Very large file: scripts/generate_final_burry_report.py (5019 lines)"}, "properties": {"repobilityId": "1d3689ec51943b87", "scanner": "scanner-primary", "fingerprint": "dfa3263d1bc8c2c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9285f85922b99e91", "level": "note", "message": {"text": "Very large file: src/bubble/ingestion/compute/edgar_extraction.py (1465 lines)"}, "properties": {"repobilityId": "423c0f4af2f8c973", "scanner": "scanner-primary", "fingerprint": "9285f85922b99e91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b387a9e288eedf04", "level": "note", "message": {"text": "Very large file: src/bubble/ingestion/edgar/document_acquisition.py (2539 lines)"}, "properties": {"repobilityId": "075e9c936588d5e6", "scanner": "scanner-primary", "fingerprint": "b387a9e288eedf04", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6a65a2343af6dc8f", "level": "note", "message": {"text": "Very large file: src/bubble/analysis/materiality_adjudication_results.py (3809 lines)"}, "properties": {"repobilityId": "1c47a3bc6dac5c4e", "scanner": "scanner-primary", "fingerprint": "6a65a2343af6dc8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0b11bbe8c0c2e97a", "level": "note", "message": {"text": "Very large file: src/bubble/analysis/review_queue.py (1309 lines)"}, "properties": {"repobilityId": "9ab3353b78b5b9af", "scanner": "scanner-primary", "fingerprint": "0b11bbe8c0c2e97a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-48e74755c14d30fb", "level": "note", "message": {"text": "Very large file: src/bubble/analysis/capital_exposure_graph.py (2597 lines)"}, "properties": {"repobilityId": "b02d4ee9f6b5327e", "scanner": "scanner-primary", "fingerprint": "48e74755c14d30fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "dcc16c64ee4c11bf", "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": "42a87c42bead31e1", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "f29df4538d4892d6", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "48c881485c6730d6", "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": "dd4eb29d285a8ca6", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-0c6aa3184c98825b", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_expectations_inversion.py:113"}, "properties": {"repobilityId": "5204ff419588dbb9", "scanner": "scanner-primary", "fingerprint": "0c6aa3184c98825b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf1a43ddd9dec40c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/quality/test_claim_semantics.py:146"}, "properties": {"repobilityId": "a6f0bd78ca4470d5", "scanner": "scanner-primary", "fingerprint": "cf1a43ddd9dec40c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bbace167fcefabf", "level": "note", "message": {"text": "Legacy-named symbol `explicit_debt_tranche_context_v1` in tests/ingestion/test_edgar_document_acquisition.py:413"}, "properties": {"repobilityId": "9d89ee8fc0ab8b2d", "scanner": "scanner-primary", "fingerprint": "5bbace167fcefabf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e97e966349c83e5b", "level": "note", "message": {"text": "Legacy-named symbol `deterministic_edgar_agreement_v1` in tests/analysis/test_capital_structure.py:203"}, "properties": {"repobilityId": "2e734b4b881e7c75", "scanner": "scanner-primary", "fingerprint": "e97e966349c83e5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6c91c12e087218cc", "level": "note", "message": {"text": "Legacy-named symbol `deterministic_edgar_agreement_v1` in tests/analysis/test_review_queue.py:40"}, "properties": {"repobilityId": "3737ecee1a311307", "scanner": "scanner-primary", "fingerprint": "6c91c12e087218cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e3fec353c07167c9", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/generate_final_burry_report.py:2747"}, "properties": {"repobilityId": "90af87b6490eb406", "scanner": "scanner-primary", "fingerprint": "e3fec353c07167c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc43d2e6fc54926d", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/refresh_live_overlay.py:108"}, "properties": {"repobilityId": "9c89d162dcebd6d3", "scanner": "scanner-primary", "fingerprint": "bc43d2e6fc54926d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13faeea8bd8f6892", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/workflows/phase3_deep_dive.workflow.js:3"}, "properties": {"repobilityId": "bb97c921ee3198d7", "scanner": "scanner-primary", "fingerprint": "13faeea8bd8f6892", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-648693cdc9d38a27", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bubble/market_signals.py:53"}, "properties": {"repobilityId": "e797fcbec71d0ca6", "scanner": "scanner-primary", "fingerprint": "648693cdc9d38a27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ee7340dbdb3b975", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bubble/cli.py:63"}, "properties": {"repobilityId": "a656d9a0492e8181", "scanner": "scanner-primary", "fingerprint": "6ee7340dbdb3b975", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bb897be3cabe67c4", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/bubble/models/base.py:112"}, "properties": {"repobilityId": "4a0cf594de5cfb86", "scanner": "scanner-primary", "fingerprint": "bb897be3cabe67c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5ef07c1a88b6c88c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bubble/quality/claim_semantics.py:104"}, "properties": {"repobilityId": "270009fed113222c", "scanner": "scanner-primary", "fingerprint": "5ef07c1a88b6c88c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bc176c685de6461", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/bubble/quality/undrawn_capacity_basis.py:29"}, "properties": {"repobilityId": "875ddf1936f95351", "scanner": "scanner-primary", "fingerprint": "1bc176c685de6461", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-543bf1fdda2cfda2", "level": "note", "message": {"text": "Legacy-named symbol `ferc_entities_to_ppas_v1` in src/bubble/ingestion/capital/ppa_extraction.py:218"}, "properties": {"repobilityId": "b3fb6cafecb76acf", "scanner": "scanner-primary", "fingerprint": "543bf1fdda2cfda2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f0d4bcbb6b77ff7", "level": "note", "message": {"text": "Legacy-named symbol `deterministic_facility_location_name_v1` in src/bubble/ingestion/physical/record_matching.py:494"}, "properties": {"repobilityId": "d43f25a2d5eb7d6f", "scanner": "scanner-primary", "fingerprint": "3f0d4bcbb6b77ff7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2a66cf8ee91e54a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bubble/ingestion/physical/record_matching.py:518"}, "properties": {"repobilityId": "b19d34768a4e066c", "scanner": "scanner-primary", "fingerprint": "2a66cf8ee91e54a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bdff2cd0ea58010", "level": "note", "message": {"text": "Legacy-named symbol `deterministic_name_party_location_capacity_v1` in src/bubble/ingestion/physical/queue_matching.py:467"}, "properties": {"repobilityId": "ef39feea6b437c62", "scanner": "scanner-primary", "fingerprint": "4bdff2cd0ea58010", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1c69fec8c30230e8", "level": "note", "message": {"text": "Legacy-named symbol `deterministic_edgar_agreement_v1` in src/bubble/ingestion/edgar/document_acquisition.py:807"}, "properties": {"repobilityId": "c19940edf2f4e69a", "scanner": "scanner-primary", "fingerprint": "1c69fec8c30230e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0d7ef3373b47b850", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/bubble/analysis/materiality_adjudication_results.py:2417"}, "properties": {"repobilityId": "2509ab8314a56245", "scanner": "scanner-primary", "fingerprint": "0d7ef3373b47b850", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f6dd23bc1a295ee", "level": "note", "message": {"text": "Legacy-named symbol `extract_deals_and_risks_v1` in src/bubble/extraction/llm.py:97"}, "properties": {"repobilityId": "9195e7cdf9b2358b", "scanner": "scanner-primary", "fingerprint": "7f6dd23bc1a295ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "8627b891e93f37b6", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "622d1b8785eb7d56", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6573a6bc74647864", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-76a2f6818267a9a8", "level": "note", "message": {"text": "Near-duplicate function bodies in 8 places"}, "properties": {"repobilityId": "ef6bb5259a126386", "scanner": "scanner-primary", "fingerprint": "76a2f6818267a9a8", "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": "95de04056c16ec00", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "5433a46de97ed285", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "4f6215fb68048a9c", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "216d04152d7a7324", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-c54c6fb8e364daaa", "level": "note", "message": {"text": "Near-duplicate function bodies in 16 places"}, "properties": {"repobilityId": "9acb45205d8bd82c", "scanner": "scanner-primary", "fingerprint": "c54c6fb8e364daaa", "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": "215070ec7c213e39", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f9ec121f672f063f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "348281d5ad4b3965", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "339b56e0a1b5c7c3", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "06f5a0aa058df6d8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "635ed31839a7d338", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9bb2a9711b4898ed", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a94bca3822b96e24", "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": "9bae41207dabf944", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b18bf42e5652ec04", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "cadd86d4df365430", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}