{"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: sbaird123/rapt-brewing-hacs", "shortDescription": {"text": "Foundry mined unresolved feedback: sbaird123/rapt-brewing-hacs"}, "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: weak_supervision_needs_review\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#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: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sbaird123/rapt-brewing-hacs#1\nRepo: sbaird123/rapt-brewing-hacs\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 35\nNode types: {'link_quality': 8, 'comment': 4, 'comment_chain': 4, 'alignment': 2,"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: sbaird123/rapt-brewing-hacs", "shortDescription": {"text": "Foundry mined blueprint gap alignment: sbaird123/rapt-brewing-hacs"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sbaird123/rapt-brewing-hacs#1\nRepo: sbaird123/rapt-brewing-hacs\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 35\nNode types: {'link_quality': 8, 'comment': 4, 'comment_chain': 4, 'alignment'"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: sbaird123/rapt-brewing-hacs", "shortDescription": {"text": "Foundry mined assumption checks: sbaird123/rapt-brewing-hacs"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: sbaird123/rapt-brewing-hacs#1\nRepo: sbaird123/rapt-brewing-hacs\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 4\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1, 'human_feedback_general': 2, 'runtime_failure': 1}\nPolarities: {'bad': 2, 'neutral': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ed6c63c46ec1ac0e\",\n    \"kind\": \"issue_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \""}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "scanner-b6a96dfd12f1fd17", "name": "Possibly dead Python function: async_setup_entry", "shortDescription": {"text": "Possibly dead Python function: async_setup_entry"}, "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-060902a70577d1d8", "name": "Possibly dead Python function: async_unload_entry", "shortDescription": {"text": "Possibly dead Python function: async_unload_entry"}, "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-bffcdeac796bc2fe", "name": "Possibly dead Python function: async_migrate_entry", "shortDescription": {"text": "Possibly dead Python function: async_migrate_entry"}, "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-22069fc1bacf3646", "name": "Possibly dead Python function: async_setup_entry", "shortDescription": {"text": "Possibly dead Python function: async_setup_entry"}, "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-e8961374ad9884f6", "name": "Possibly dead Python function: async_get_config_entry_diagnostics", "shortDescription": {"text": "Possibly dead Python function: async_get_config_entry_diagnostics"}, "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-3a4170a96d39627d", "name": "Possibly dead Python function: async_step_user", "shortDescription": {"text": "Possibly dead Python function: async_step_user"}, "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-f43270b98a47f620", "name": "Possibly dead Python function: async_step_bluetooth", "shortDescription": {"text": "Possibly dead Python function: async_step_bluetooth"}, "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-e91326cd5368fc77", "name": "Possibly dead Python function: async_step_reconfigure", "shortDescription": {"text": "Possibly dead Python function: async_step_reconfigure"}, "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-c16940aa666f5f7d", "name": "Possibly dead Python function: async_step_import", "shortDescription": {"text": "Possibly dead Python function: async_step_import"}, "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-07b8fb4f4c95df4c", "name": "Possibly dead Python function: async_step_init", "shortDescription": {"text": "Possibly dead Python function: async_step_init"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-afc2fa62cf71a9d4", "name": "Possibly dead Python function: async_step_notifications", "shortDescription": {"text": "Possibly dead Python function: async_step_notifications"}, "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-d225350a6431fc7e", "name": "Possibly dead Python function: async_step_alerts", "shortDescription": {"text": "Possibly dead Python function: async_step_alerts"}, "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-d61d0749510a661e", "name": "Possibly dead Python function: async_step_display", "shortDescription": {"text": "Possibly dead Python function: async_step_display"}, "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-22628306be95582f", "name": "Possibly dead Python function: async_step_entities", "shortDescription": {"text": "Possibly dead Python function: async_step_entities"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b850f7c9d4e57359", "name": "Possibly dead Python function: handle_start_session", "shortDescription": {"text": "Possibly dead Python function: handle_start_session"}, "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-83df4c41a2ac4cde", "name": "Possibly dead Python function: handle_stop_session", "shortDescription": {"text": "Possibly dead Python function: handle_stop_session"}, "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-49b45a56bba3c740", "name": "Possibly dead Python function: handle_add_session_note", "shortDescription": {"text": "Possibly dead Python function: handle_add_session_note"}, "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-233c2dc281406645", "name": "Possibly dead Python function: async_setup_entry", "shortDescription": {"text": "Possibly dead Python function: async_setup_entry"}, "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-688c6ab940af1c80", "name": "Possibly dead Python function: async_set_value", "shortDescription": {"text": "Possibly dead Python function: async_set_value"}, "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-aa656faeb11f89dd", "name": "Possibly dead Python function: async_setup_entry", "shortDescription": {"text": "Possibly dead Python function: async_setup_entry"}, "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-b1a04dda603b5537", "name": "Possibly dead Python function: async_setup_entry", "shortDescription": {"text": "Possibly dead Python function: async_setup_entry"}, "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-b03ed9feabebe3b6", "name": "Possibly dead Python function: async_select_option", "shortDescription": {"text": "Possibly dead Python function: async_select_option"}, "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-362eb8123ff64a12", "name": "Possibly dead Python function: async_setup_entry", "shortDescription": {"text": "Possibly dead Python function: async_setup_entry"}, "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-db9e010efec6903e", "name": "Possibly dead Python function: async_press", "shortDescription": {"text": "Possibly dead Python function: async_press"}, "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-deee83a03f9691ad", "name": "Possibly dead Python function: async_setup_entry", "shortDescription": {"text": "Possibly dead Python function: async_setup_entry"}, "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-42c6cdfbbe96f25c", "name": "Possibly dead Python function: async_set_native_value", "shortDescription": {"text": "Possibly dead Python function: async_set_native_value"}, "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-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-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-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-b1a026464d4ac711", "name": "Legacy-named symbol `test_downsample_keeps_recent_thins_old` in tests/test_data.py:60", "shortDescription": {"text": "Legacy-named symbol `test_downsample_keeps_recent_thins_old` in tests/test_data.py:60"}, "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-793f491c4e71d392", "name": "Commented-code block (5 lines) in custom_components/rapt_brewing/__init__.py:81", "shortDescription": {"text": "Commented-code block (5 lines) in custom_components/rapt_brewing/__init__.py:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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:\ncustom_components/rapt_brewing/text.py:available, custom_components/rapt_brewing/number.py:available\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ncustom_components/rapt_brewing/data.py:to_dict, custom_components/rapt_brewing/data.py:to_dict, custom_components/rapt_brewing/data.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/19017"}, "properties": {"repository": "sbaird123/rapt-brewing-hacs", "repoUrl": "https://github.com/sbaird123/rapt-brewing-hacs", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: sbaird123/rapt-brewing-hacs"}, "properties": {"repobilityId": 369883, "scanner": "foundry_dataset", "fingerprint": "607fa58d884280e5ac13ce1b5998c92edb213bf1e895c25c80b515018286acc8", "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": {"bug_fix": 1, "runtime_failure": 1, "weak blueprint fit": 2, "api_integration_gap": 1, "human_feedback_general": 2, "unlinked_human_feedback": 2, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_alignment": 2, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"claimed_resolved_unverified": 2, "not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 4, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 8, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 4, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 25, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 4, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 8, "comment_chain": 4, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "sbaird123/rapt-brewing-hacs#1", "issue_number": "1", "quality_tiers": {"unresolved": 3, "assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "sbaird123/rapt-brewing-hacs", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4bb46a2d956e08a1", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: weak_supervision_needs_review\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#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: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sbaird123/rapt-brewing-hacs#1\nRepo: sbaird123/rapt-brewing-hacs\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 35\nNode types: {'link_quality': 8, 'comment': 4, 'comment_chain': 4, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 8, 'thread_has_comment': 4, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 4, 'human_feedback_general': 2, 'unlinked_human_feedback': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_alignment': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'runtime_failure': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8, 'not_resolved_or_not_observed': 2, 'claimed_resolved_unverified': 2}\nQuality tiers: {'unresolved': 3, 'weak_supervision': 3, 'assumption_check': 2}\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/sbaird123/rapt-brewing-hacs", "source_id": "graph-query-motif_query-c1f14d508fece964", "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": "sbaird123/rapt-brewing-hacs", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: sbaird123/rapt-brewing-hacs"}, "properties": {"repobilityId": 355751, "scanner": "foundry_dataset", "fingerprint": "e75fa5f819de91cdecb0fc1eee10780ecb4c70e3b4550992c818212b386ce926", "category": "tech_debt", "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 aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "runtime_failure": 1, "weak blueprint fit": 2, "api_integration_gap": 1, "human_feedback_general": 2, "unlinked_human_feedback": 2, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_alignment": 2, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 2, "not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 4, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 8, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 4, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 25, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 4, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 8, "comment_chain": 4, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "sbaird123/rapt-brewing-hacs#1", "issue_number": "1", "quality_tiers": {"unresolved": 3, "assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "sbaird123/rapt-brewing-hacs", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c51d126bd183efd7", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: sbaird123/rapt-brewing-hacs#1\nRepo: sbaird123/rapt-brewing-hacs\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 35\nNode types: {'link_quality': 8, 'comment': 4, 'comment_chain': 4, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 8, 'thread_has_comment': 4, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 4, 'human_feedback_general': 2, 'unlinked_human_feedback': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_alignment': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'runtime_failure': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8, 'not_resolved_or_not_observed': 2, 'claimed_resolved_unverified': 2}\nQuality tiers: {'unresolved': 3, 'weak_supervision': 3, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/sbaird123/rapt-brewing-hacs", "source_id": "graph-query-motif_query-93c7318f86019330", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "sbaird123/rapt-brewing-hacs", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: sbaird123/rapt-brewing-hacs"}, "properties": {"repobilityId": 312083, "scanner": "foundry_dataset", "fingerprint": "2be128c03c778bf76abe82949209176e2be872e5c2793992cfae41488053b31d", "category": "practices", "severity": "medium", "confidence": 0.62, "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": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "sbaird123/rapt-brewing-hacs#1", "human_labels": ["api_integration_gap", "human_feedback_general", "runtime_failure"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.625, "repo_full_name": "sbaird123/rapt-brewing-hacs", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b3786a3764dc748a", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: sbaird123/rapt-brewing-hacs\nThread: sbaird123/rapt-brewing-hacs#1\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: sbaird123/rapt-brewing-hacs#1\nRepo: sbaird123/rapt-brewing-hacs\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 4\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1, 'human_feedback_general': 2, 'runtime_failure': 1}\nPolarities: {'bad': 2, 'neutral': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ed6c63c46ec1ac0e\",\n    \"kind\": \"issue_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/sbaird123/rapt-brewing-hacs/issues/1\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: issue_body\\nRepo: sbaird123/rapt-brewing-hacs\\nAuthor: JavaChr1s (User)\\nURL: https://github.com/sbaird123/rapt-brewing-hacs/issues/1\\nTitle: Possibility to take data from entity\\nBody:\\nHi,\\n\\nmy RAPT Pill is not in bluetooth range of the HA server, so I am using a shelly to proxy RAPT bluetooth data via wifi to my HA. This works great. I have 4 entites:\\n\\n- sensor.rapt_pill_3a7a_specific_gravity\\n- sensor.rapt_pill_3a7a_temperature\\n- sensor.rapt_pill_3a7a_battery\\n- sensor.rapt_pill_3a7a_signal_strength\\n\\nWould it be possible to adjust the integration so we can choose between direct bluetooth connection and use data from entities?\"\n  },\n  {\n    \"id\": \"github-feedback-comment-1cc6188e20890eec\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/sbaird123/rapt-brewing-hacs/issues/1#issuecomment-4264801878\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: sbaird123/rapt-brewing-hacs\\nAuthor: sbaird123 (User)\\nURL: https://github.com/sbaird123/rapt-brewing-hacs/issues/1#issuecomment-4264801878\\nTitle: \\nBody:\\nSorry about the delay, I haven't done a brew in a few months and GitHub didn't notify me of the issue!\\nI have added this feature in the latest version! Let mw know if there are any issues with it\"\n  },\n  {\n    \"id\": \"github-feedback-comment-30e4a8aeebe76719\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/sbaird123/rapt-brewing-hacs/issues/1#issuecomment-4379001526\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: issue_comment\\nRepo: sbaird123/rapt-brewing-hacs\\nAuthor: JavaChr1s (User)\\nURL: https://github.com/sbaird123/rapt-brewing-hacs/issues/1#issuecomment-4379001526\\nTitle: \\nBody:\\\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/sbaird123/rapt-brewing-hacs", "source_id": "comment-chain-pattern-assumption_checks-806dc5e77dd52430", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "sbaird123/rapt-brewing-hacs", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "scanner-b6a96dfd12f1fd17", "level": "note", "message": {"text": "Possibly dead Python function: async_setup_entry"}, "properties": {"repobilityId": "c8b792a45e339d83", "scanner": "scanner-primary", "fingerprint": "b6a96dfd12f1fd17", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/__init__.py:34"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-060902a70577d1d8", "level": "note", "message": {"text": "Possibly dead Python function: async_unload_entry"}, "properties": {"repobilityId": "30a9c97872d972d2", "scanner": "scanner-primary", "fingerprint": "060902a70577d1d8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/__init__.py:67"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bffcdeac796bc2fe", "level": "note", "message": {"text": "Possibly dead Python function: async_migrate_entry"}, "properties": {"repobilityId": "4e098e12c2172512", "scanner": "scanner-primary", "fingerprint": "bffcdeac796bc2fe", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/__init__.py:76"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22069fc1bacf3646", "level": "note", "message": {"text": "Possibly dead Python function: async_setup_entry"}, "properties": {"repobilityId": "c8b792a45e339d83", "scanner": "scanner-primary", "fingerprint": "22069fc1bacf3646", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/binary_sensor.py:32"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e8961374ad9884f6", "level": "note", "message": {"text": "Possibly dead Python function: async_get_config_entry_diagnostics"}, "properties": {"repobilityId": "30b926b23d28c658", "scanner": "scanner-primary", "fingerprint": "e8961374ad9884f6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/diagnostics.py:40"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a4170a96d39627d", "level": "note", "message": {"text": "Possibly dead Python function: async_step_user"}, "properties": {"repobilityId": "3e711d68888368f0", "scanner": "scanner-primary", "fingerprint": "3a4170a96d39627d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f43270b98a47f620", "level": "note", "message": {"text": "Possibly dead Python function: async_step_bluetooth"}, "properties": {"repobilityId": "6f468cadfaf7dbe3", "scanner": "scanner-primary", "fingerprint": "f43270b98a47f620", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:191"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e91326cd5368fc77", "level": "note", "message": {"text": "Possibly dead Python function: async_step_reconfigure"}, "properties": {"repobilityId": "a3eaee0466e0054e", "scanner": "scanner-primary", "fingerprint": "e91326cd5368fc77", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:377"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c16940aa666f5f7d", "level": "note", "message": {"text": "Possibly dead Python function: async_step_import"}, "properties": {"repobilityId": "dc08a275d3d5dfb1", "scanner": "scanner-primary", "fingerprint": "c16940aa666f5f7d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:538"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-07b8fb4f4c95df4c", "level": "note", "message": {"text": "Possibly dead Python function: async_step_init"}, "properties": {"repobilityId": "a2d8666a207dd7f1", "scanner": "scanner-primary", "fingerprint": "07b8fb4f4c95df4c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:550"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-afc2fa62cf71a9d4", "level": "note", "message": {"text": "Possibly dead Python function: async_step_notifications"}, "properties": {"repobilityId": "133c83d8361c1526", "scanner": "scanner-primary", "fingerprint": "afc2fa62cf71a9d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:559"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d225350a6431fc7e", "level": "note", "message": {"text": "Possibly dead Python function: async_step_alerts"}, "properties": {"repobilityId": "7bc9b190bead67be", "scanner": "scanner-primary", "fingerprint": "d225350a6431fc7e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:583"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d61d0749510a661e", "level": "note", "message": {"text": "Possibly dead Python function: async_step_display"}, "properties": {"repobilityId": "1a5561e6576b9ee7", "scanner": "scanner-primary", "fingerprint": "d61d0749510a661e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:657"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22628306be95582f", "level": "note", "message": {"text": "Possibly dead Python function: async_step_entities"}, "properties": {"repobilityId": "1abfb9527c3de6cb", "scanner": "scanner-primary", "fingerprint": "22628306be95582f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/config_flow.py:700"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b850f7c9d4e57359", "level": "note", "message": {"text": "Possibly dead Python function: handle_start_session"}, "properties": {"repobilityId": "51395206aa4cba5f", "scanner": "scanner-primary", "fingerprint": "b850f7c9d4e57359", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/services.py:87"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-83df4c41a2ac4cde", "level": "note", "message": {"text": "Possibly dead Python function: handle_stop_session"}, "properties": {"repobilityId": "ff26b59ed8ad9dfd", "scanner": "scanner-primary", "fingerprint": "83df4c41a2ac4cde", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/services.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-49b45a56bba3c740", "level": "note", "message": {"text": "Possibly dead Python function: handle_add_session_note"}, "properties": {"repobilityId": "dd44bb4dc2122595", "scanner": "scanner-primary", "fingerprint": "49b45a56bba3c740", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/services.py:108"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-233c2dc281406645", "level": "note", "message": {"text": "Possibly dead Python function: async_setup_entry"}, "properties": {"repobilityId": "c8b792a45e339d83", "scanner": "scanner-primary", "fingerprint": "233c2dc281406645", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/text.py:28"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-688c6ab940af1c80", "level": "note", "message": {"text": "Possibly dead Python function: async_set_value"}, "properties": {"repobilityId": "c5598de160b6d407", "scanner": "scanner-primary", "fingerprint": "688c6ab940af1c80", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/text.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa656faeb11f89dd", "level": "note", "message": {"text": "Possibly dead Python function: async_setup_entry"}, "properties": {"repobilityId": "c8b792a45e339d83", "scanner": "scanner-primary", "fingerprint": "aa656faeb11f89dd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/sensor.py:218"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b1a04dda603b5537", "level": "note", "message": {"text": "Possibly dead Python function: async_setup_entry"}, "properties": {"repobilityId": "c8b792a45e339d83", "scanner": "scanner-primary", "fingerprint": "b1a04dda603b5537", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/select.py:27"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b03ed9feabebe3b6", "level": "note", "message": {"text": "Possibly dead Python function: async_select_option"}, "properties": {"repobilityId": "774b9c27c960d04f", "scanner": "scanner-primary", "fingerprint": "b03ed9feabebe3b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/select.py:77"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-362eb8123ff64a12", "level": "note", "message": {"text": "Possibly dead Python function: async_setup_entry"}, "properties": {"repobilityId": "c8b792a45e339d83", "scanner": "scanner-primary", "fingerprint": "362eb8123ff64a12", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/button.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-db9e010efec6903e", "level": "note", "message": {"text": "Possibly dead Python function: async_press"}, "properties": {"repobilityId": "6ab8b39b52db459f", "scanner": "scanner-primary", "fingerprint": "db9e010efec6903e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/button.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-deee83a03f9691ad", "level": "note", "message": {"text": "Possibly dead Python function: async_setup_entry"}, "properties": {"repobilityId": "c8b792a45e339d83", "scanner": "scanner-primary", "fingerprint": "deee83a03f9691ad", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/number.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-42c6cdfbbe96f25c", "level": "note", "message": {"text": "Possibly dead Python function: async_set_native_value"}, "properties": {"repobilityId": "f56f8bc2e0a269b2", "scanner": "scanner-primary", "fingerprint": "42c6cdfbbe96f25c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "custom_components/rapt_brewing/number.py:97"}, "region": {"startLine": 1}}}]}, {"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-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-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "cf8869516558fc8f", "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": "9fc61d345771de45", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-b1a026464d4ac711", "level": "note", "message": {"text": "Legacy-named symbol `test_downsample_keeps_recent_thins_old` in tests/test_data.py:60"}, "properties": {"repobilityId": "16e35d6a16415f33", "scanner": "scanner-primary", "fingerprint": "b1a026464d4ac711", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-793f491c4e71d392", "level": "none", "message": {"text": "Commented-code block (5 lines) in custom_components/rapt_brewing/__init__.py:81"}, "properties": {"repobilityId": "37c6787f57f92f40", "scanner": "scanner-primary", "fingerprint": "793f491c4e71d392", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "376adb2e5957fcbd", "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": "0b2db6b5897cc435", "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": "7779b09d0d3bde70", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}