{"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: wangtao9090/VibeCAD", "shortDescription": {"text": "Foundry mined unresolved feedback: wangtao9090/VibeCAD"}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#9\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#9\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 9\nGraph consistency label: needs_more_evidence\nNodes: 34\nEdges: 60\nNode types: {'pr_file': 25, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thre"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: wangtao9090/VibeCAD", "shortDescription": {"text": "Foundry mined blueprint gap alignment: wangtao9090/VibeCAD"}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#5\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 47\nEdges: 104\nNode types: {'pr_file': 17, 'link_quality': 8, 'commit': 6, 'comment': 3, 'comment_chain': 3, 'alignment': 3, 'blueprint_fin"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: wangtao9090/VibeCAD", "shortDescription": {"text": "Foundry mined assumption checks: wangtao9090/VibeCAD"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#6\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\nChain evidence:\nIssue/PR evidence chain: wangtao9090/VibeCAD#6\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 4\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 13\nLabels: {'agent_instruction_gap': 1, 'human_feedback_general': 3}\nPolarities: {'bad': 1, 'neutral': 3}\nChanged file labels: {'docs_or_claims': 3, 'ui_or_frontend': 3, 'api_or_backend': 1, 'test_or_ci': 6}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5938898fd31c7c0b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: wangtao9090/VibeCAD", "shortDescription": {"text": "Foundry mined test ci gap after feedback: wangtao9090/VibeCAD"}, "fullDescription": {"text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#5\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 47\nEdges: 104\nNode types: {'pr_file': 17, 'link_quality': 8, 'commit': 6, 'comment': 3, 'comment_chain': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, '"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: wangtao9090/VibeCAD", "shortDescription": {"text": "Foundry mined bad chains: wangtao9090/VibeCAD"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#9\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: wangtao9090/VibeCAD#9\nRepo: wangtao9090/VibeCAD\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: 25\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 3, 'ui_or_frontend': 10, 'api_or_backend': 1, 'test_or_ci': 11}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cd7002e0e7fae313\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: wangtao9090/VibeCAD", "shortDescription": {"text": "Foundry mined mock as real or placeholder: wangtao9090/VibeCAD"}, "fullDescription": {"text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#8\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#8\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#8\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 8\nGraph consistency label: weak_supervision_needs_review\nNodes: 27\nEdges: 67\nNode types: {'pr_file': 14, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"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-1838a141491ce38c", "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-b54d5bb7587edd5b", "name": "Very large file: tests/test_tools_features.py (1752 lines)", "shortDescription": {"text": "Very large file: tests/test_tools_features.py (1752 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-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-bdb8b4c30ff4cebc", "name": "Network/subprocess call without timeout or try/except \u2014 src/vibecad/runtime/micromamba.py:33", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/vibecad/runtime/micromamba.py:33"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` 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-ddc53cdabbe87c84", "name": "Commented-code block (16 lines) in src/vibecad/tools/modify.py:165", "shortDescription": {"text": "Commented-code block (16 lines) in src/vibecad/tools/modify.py:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af5b32ec95b354f3", "name": "Commented-code block (5 lines) in src/vibecad/tools/sketch.py:240", "shortDescription": {"text": "Commented-code block (5 lines) in src/vibecad/tools/sketch.py:240"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e75bc7442fefd9d", "name": "Commented-code block (7 lines) in src/vibecad/feedback/multiview.py:16", "shortDescription": {"text": "Commented-code block (7 lines) in src/vibecad/feedback/multiview.py:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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:\nsrc/vibecad/runtime/paths.py:env_python_for, src/vibecad/runtime/paths.py:env_python\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/22527"}, "properties": {"repository": "wangtao9090/VibeCAD", "repoUrl": "https://github.com/wangtao9090/VibeCAD", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 371366, "scanner": "foundry_dataset", "fingerprint": "a94f3c6a8ef15c7fce6e29632b52b75e131acb98b9f0be52540542043f5e2311", "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": {"test_or_ci": 11, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 10, "agent_instruction_gap": 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": 60, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 25, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 34, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 25, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#9", "issue_number": "9", "quality_tiers": {"unresolved": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-54ebd39adaf81801", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 44, "api_or_backend": 4, "docs_or_claims": 12, "ui_or_frontend": 40}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#9\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#9\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 9\nGraph consistency label: needs_more_evidence\nNodes: 34\nEdges: 60\nNode types: {'pr_file': 25, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 25, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 11, 'ui_or_frontend': 10, 'docs_or_claims': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'api_or_backend': 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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-72e1870655d995f7", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 371365, "scanner": "foundry_dataset", "fingerprint": "91e279e8322b54540150f41e44a2704018f4935e253e9264a9a6b9f2ff4e7c62", "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": {"test_or_ci": 5, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 5, "generated_provenance": 1, "agent_instruction_gap": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "self_attested_unverified": 3, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"self_attested_unverified": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 67, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 14, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 27, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 14, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#8", "issue_number": "8", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-cc4a588519ac7525", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 25, "api_or_backend": 5, "docs_or_claims": 15, "ui_or_frontend": 25}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#8\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#8\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#8\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 8\nGraph consistency label: weak_supervision_needs_review\nNodes: 27\nEdges: 67\nNode types: {'pr_file': 14, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 14, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 5, 'test_or_ci': 5, 'docs_or_claims': 3, 'self_attested_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'self_attested_or_generated_fix_unverified': 1, 'generated_provenance': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'self_attested_unverified': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-91937f39dd6da284", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 371364, "scanner": "foundry_dataset", "fingerprint": "3d25541f322a8a89649cde5322bcdd5ee16d52e06331695af058b88033520f0a", "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, "test_or_ci": 6, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 3, "generated_provenance": 1, "agent_instruction_gap": 1, "verification_or_tests": 1, "human_feedback_general": 3, "unlinked_human_feedback": 2, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "comment_has_related_commit_context": 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, "ambiguous_needs_more_evidence": 10}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 102, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 4, "thread_touches_file": 13, "chain_has_link_quality": 6, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 4, "comment_chain_links_commit": 3, "comment_chain_touches_file": 48, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 34, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 4, "pr_file": 13, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 4}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#6", "issue_number": "6", "quality_tiers": {"unresolved": 2, "weak_supervision": 4}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-8a8250db53b0dfc6", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 42, "api_or_backend": 7, "docs_or_claims": 21, "ui_or_frontend": 21}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#6\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#6\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#6\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 6\nGraph consistency label: weak_supervision_needs_review\nNodes: 34\nEdges: 102\nNode types: {'pr_file': 13, 'link_quality': 6, 'comment': 4, 'comment_chain': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 48, 'thread_touches_file': 13, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'thread_has_comment': 4, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'comment_chain_links_commit': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 6, 'ambiguous_needs_more_evidence': 5, 'human_feedback_general': 3, 'docs_or_claims': 3, 'ui_or_frontend': 3, 'unlinked_human_feedback': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'generated_provenance': 1, 'claimed_resolved_unverified': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 4, 'unresolved': 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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-3a55c9997cea6ba0", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 371363, "scanner": "foundry_dataset", "fingerprint": "edeb57df0a9867f4a994bb5f274638cccfb71a681497433cba32a3e368ed4562", "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": {"test_or_ci": 7, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 6, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 6, "human_feedback_general": 2, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 10}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 104, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "thread_touches_file": 17, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 8, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 3, "comment_chain_links_commit": 6, "comment_chain_touches_file": 36, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 47, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 3, "pr_file": 17, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 8, "comment_chain": 3, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#5", "issue_number": "5", "quality_tiers": {"unresolved": 1, "assumption_check": 3, "weak_supervision": 4}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ca69879bcfd53fee", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 42, "api_or_backend": 6, "docs_or_claims": 18, "ui_or_frontend": 36}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#5\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 47\nEdges: 104\nNode types: {'pr_file': 17, 'link_quality': 8, 'commit': 6, 'comment': 3, 'comment_chain': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 36, 'thread_touches_file': 17, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 8, 'comment_chain_links_commit': 6, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 7, 'ui_or_frontend': 6, 'verification_or_tests': 6, 'ambiguous_needs_more_evidence': 5, 'docs_or_claims': 3, 'blueprint_human_gap_alignment': 3, 'human_feedback_general': 2, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 3, 'unresolved': 1}\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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-fe840cce43a20fb1", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 371362, "scanner": "foundry_dataset", "fingerprint": "d2f9003018371d6f3a7bc49369e3e49a33dccb6d918ceb1100cd301d6c1c765c", "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": {"test_or_ci": 3, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 1, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 57, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 7, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 7, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 7, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 14, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 29, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 7, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 2, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#4", "issue_number": "4", "quality_tiers": {"unresolved": 1, "assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d271d466b0f88410", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 15, "api_or_backend": 5, "docs_or_claims": 10, "ui_or_frontend": 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: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#4\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 29\nEdges: 57\nNode types: {'pr_file': 7, 'link_quality': 7, 'alignment': 3, 'blueprint_finding': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 14, 'thread_touches_file': 7, 'chain_has_link_quality': 7, 'issue_chain_touches_file': 7, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 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, 'test_or_ci': 3, 'blueprint_human_gap_alignment': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'unlinked_human_feedback': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3, 'unresolved': 1}\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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-736c94f0cde20d32", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 371361, "scanner": "foundry_dataset", "fingerprint": "6e68e5ac759ee3999a6fffcebab3a7c033600764364bb1c7180a81fb6cd42894", "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": {"test_or_ci": 8, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 8, "source_or_other": 1, "mock_placeholder": 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": 55, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 20, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 29, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 20, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-e3760d1789147f2d", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 32, "api_or_backend": 4, "docs_or_claims": 8, "ui_or_frontend": 32, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#2\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 29\nEdges: 55\nNode types: {'pr_file': 20, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 20, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 8, 'test_or_ci': 8, 'not_resolved_or_not_observed': 3, 'docs_or_claims': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'source_or_other': 1, 'api_or_backend': 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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-01425823ebbb1dfe", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 357289, "scanner": "foundry_dataset", "fingerprint": "9a66bec512bccab3ccb8a00be3a9bfbed6d183282bc6fe3d34036ece0809c254", "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": {"test_or_ci": 7, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 6, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 6, "human_feedback_general": 2, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 10}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 104, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "thread_touches_file": 17, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 8, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 3, "comment_chain_links_commit": 6, "comment_chain_touches_file": 36, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 47, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 3, "pr_file": 17, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 8, "comment_chain": 3, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#5", "issue_number": "5", "quality_tiers": {"unresolved": 1, "assumption_check": 3, "weak_supervision": 4}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-728b71cf1c23802e", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 42, "api_or_backend": 6, "docs_or_claims": 18, "ui_or_frontend": 36}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#5\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 47\nEdges: 104\nNode types: {'pr_file': 17, 'link_quality': 8, 'commit': 6, 'comment': 3, 'comment_chain': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 36, 'thread_touches_file': 17, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 8, 'comment_chain_links_commit': 6, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 7, 'ui_or_frontend': 6, 'verification_or_tests': 6, 'ambiguous_needs_more_evidence': 5, 'docs_or_claims': 3, 'blueprint_human_gap_alignment': 3, 'human_feedback_general': 2, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 3, 'unresolved': 1}\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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-0c1ae30071c8ea17", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 357288, "scanner": "foundry_dataset", "fingerprint": "f18170d5fc93ace2b21a422e8ad427ce3d7de72e492faa0355952cec4d81e890", "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": {"test_or_ci": 3, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 1, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 57, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 7, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 7, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 7, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 14, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 29, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 7, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 2, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#4", "issue_number": "4", "quality_tiers": {"unresolved": 1, "assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-4144603b968635e6", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 15, "api_or_backend": 5, "docs_or_claims": 10, "ui_or_frontend": 5}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#4\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#4\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 29\nEdges: 57\nNode types: {'pr_file': 7, 'link_quality': 7, 'alignment': 3, 'blueprint_finding': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 14, 'thread_touches_file': 7, 'chain_has_link_quality': 7, 'issue_chain_touches_file': 7, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 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, 'test_or_ci': 3, 'blueprint_human_gap_alignment': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'unlinked_human_feedback': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3, 'unresolved': 1}\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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-ba31102e68539aa3", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 357287, "scanner": "foundry_dataset", "fingerprint": "5e444ac9d3fcdecc782df534e055c4f13cb15ab0e97514ed402b99fdb87d0dc2", "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": {"test_or_ci": 7, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 4, "source_or_other": 2, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 69, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 17, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 40, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 17, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#3", "issue_number": "3", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c65d1d56b78cb48e", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 28, "api_or_backend": 4, "docs_or_claims": 12, "ui_or_frontend": 16, "source_or_other": 8}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#3\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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#3\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#3\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 3\nGraph consistency label: weak_supervision_needs_review\nNodes: 40\nEdges: 69\nNode types: {'pr_file': 17, 'link_quality': 6, 'commit': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 17, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 7, 'verification_or_tests': 5, 'ui_or_frontend': 4, 'docs_or_claims': 3, 'ambiguous_needs_more_evidence': 3, 'blueprint_human_gap_alignment': 3, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'comment_has_related_commit_context': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-ef6dd6bf9ecd447f", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 357286, "scanner": "foundry_dataset", "fingerprint": "d3437cac97f3e67e939f119ab6992f0e0a66b0650819d87a6fc9abed21254d9e", "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": {"test_or_ci": 11, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 8, "source_or_other": 2, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 76, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 24, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 47, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 24, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#1", "issue_number": "1", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-e1a4a4ce515e3087", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 44, "api_or_backend": 4, "docs_or_claims": 8, "ui_or_frontend": 32, "source_or_other": 8}}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#1\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 47\nEdges: 76\nNode types: {'pr_file': 24, 'link_quality': 6, 'commit': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 24, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 11, 'ui_or_frontend': 8, 'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'blueprint_human_gap_alignment': 3, 'docs_or_claims': 2, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'comment_has_related_commit_context': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\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/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-a93e70e8a47c8b1d", "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": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 313682, "scanner": "foundry_dataset", "fingerprint": "4016191ba43e8a7005412c3100562a674e6ae7292152745153cb7804cc02212d", "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": "wangtao9090/VibeCAD#6", "human_labels": ["agent_instruction_gap", "api_or_backend", "docs_or_claims", "human_feedback_general", "test_or_ci", "ui_or_frontend"], "issue_number": "6", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-1f879c98e844d290", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 13, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 6, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 3}, "linked_commit_count": 3, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#6\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\nChain evidence:\nIssue/PR evidence chain: wangtao9090/VibeCAD#6\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 4\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 13\nLabels: {'agent_instruction_gap': 1, 'human_feedback_general': 3}\nPolarities: {'bad': 1, 'neutral': 3}\nChanged file labels: {'docs_or_claims': 3, 'ui_or_frontend': 3, 'api_or_backend': 1, 'test_or_ci': 6}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5938898fd31c7c0b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/6\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/6\\nTitle: feat: Round 6a \u5de5\u7a0b\u56fe\u4e09\u89c6\u56fe\u62fc\u56fe + \u6bcf\u6b65\u81ea\u52a8\u56de\u56fe\\nBody:\\n## \u4ea4\u4ed8\uff08\u8fdb\u884c\u4e2d\uff1a\u6e32\u67d3\u6838\u5fc3\u5df2\u5b8c\u6210\uff0cserver \u63a5\u7ebf/\u6162\u6d4b/\u9ed1\u76d2\u5728\u540e\u7eed commit\uff09\\n\\n\u6bcf\u6b21\u5efa\u6a21\u6307\u4ee4\u540e\u7ed9\u7528\u6237**\u5de5\u7a0b\u56fe\u6837\u5f0f\u4e09\u89c6\u56fe\u62fc\u56fe**\uff08\u7528\u6237\u5b9a\u7a3f\u6837\u5f0f\uff0cspike \u4e94\u7248\u8fed\u4ee3\uff09\uff1a\\n\\n```\\nfront \u6b63\u89c6(\u5de5\u7a0b\u56fe) \u2502 right \u4fa7\u89c6(\u5de5\u7a0b\u56fe)\\ntop \u4fef\u89c6(\u5de5\u7a0b\u56fe)   \u2502 iso \u7acb\u4f53(\u6807\u6ce8)\\n```\\n\\n- **\u5de5\u7a0b\u56fe\u4e09\u683c**\uff1aFreeCAD `TechDraw.projectEx`\uff08OCCT HLR \u9690\u85cf\u7ebf\u6d88\u9664\uff0cheadless \u5b9e\u8bc1\u53ef\u7528\uff09\u2014\u2014\u53ef\u89c1\u8fb9\u5b9e\u7ebf\u3001\u9690\u85cf\u8fb9\u865a\u7ebf\uff08\u5b54\u58c1\u6bcd\u7ebf\uff09\u3001\u5706\u5b54\u7ea2\u8272\u70b9\u5212\u4e2d\u5fc3\u7ebf + `\u2300` \u5f15\u7ebf\u6807\u6ce8 + \u9996\u5b54\u5b9a\u4f4d\u5c3a\u5bf8\u3001\u5404\u89c6\u56fe\u603b\u5c3a\u5bf8**\u4ece\u6295\u5f71 2D \u5305\u56f4\u76d2\u81ea\u52a8\u63a8\u5bfc**\uff08\u4efb\u610f\u5f62\u72b6\u901a\u7528\uff09\u3001\u4e09\u683c\u7edf\u4e00\u6bd4\u4f8b\uff08\u957f\u5bf9\u6b63\u9ad8\u5e73\u9f50\uff09\u3002\\n- **iso \u683c**\uff1a\u9762\u7247\u6e32\u67d3 + R5 \u9762\u6807\u7b7e\uff08A/B/C \u6307\u4ee3\uff09+ L/W/H \u5c3a\u5bf8\u7ebf\u2014\u2014\u6807\u6ce8\u4e0e\u5de5\u7a0b\u56fe\u540c\u56fe\u3002\\n- \u5df2\u5b8c\u6210\uff1a`_draw_face_meshes`/`collect_annotation_data` \u5171\u4eab\u4ef6\u62bd\u53d6\uff08rule of three\uff09\u3001multiview.py \u5de5\u7a0b\u56fe\u7248\u3001CJK \u5b57\u4f53\u8de8\u5e73\u53f0 fallback\u3001faces \u6a21\u5f0f edges_of \u663e\u5f0f\u62d2\u7edd\u3002\\n- \u771f\u673a\u5b9e\u6d4b\uff1aHLR \u6295\u5f71 0.10s/\u4ef6\uff0c\u62fc\u56fe ~44KB\uff1b169 fast passed + ruff \u6e05\u96f6\u3002\\n\\n## \u5f85\u5b8c\u6210\uff08\u672c\u5206\u652f\u540e\u7eed commit\uff09\\n`render_part(view=\\\"multi\\\")`\u3001\u516d\u5de5\u5177\u6210\u529f\u540e\u81ea\u52a8\u9644\u56fe\uff08`_attach_view` \u5931\u8d25\u4e0d\u8fde\u5750\uff09\u3001\u771f\u673a\u6162\u6d4b+\u9ed1\u76d2\u4eba\u773c\u9a8c\u6536\u3001README\u3001\u4e24\u8def\u7ec8\u5ba1\u3002\\n\\n## \u26a0\ufe0f \u6808\u5f0f PR\\nbase = `feat/round5-referencing`\uff08\u4f9d\u8d56 R5 \u6807\u6ce8/\u6307\u7eb9\u4f53\u7cfb\uff09\u3002**\u8bf7\u5148\u5408\u5e76 #5\uff0c\u4e14\u5408\u5e76\u65f6\u4e0d\u8981\u5220\u9664\u5206\u652f**\uff08\u5220 base \u5206\u652f\u4f1a\u5bfc\u81f4\u672c PR \u88ab GitHub \u81ea\u52a8\u5173\u95ed\u2014\u2014R4 \u8e29\u8fc7\uff09\uff1b#5 \u5408\u5e76\u540e\u672c PR \u4f1a\u81ea\u52a8 retarget \u5230 main\u3002\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-d1350130b149a240\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/6#issuecomment-4669008951\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/6#issuecomment-4669008951\\nTitle: \\nBody:\\n\u2705 **\u95ed\u5173\u5b8c\u6210\uff0c\u7ec8\u5ba1\u95ed\u73af**\uff08HEAD \u542b `bca59b6`+docs\uff09\u3002\u7ec8\u5ba1 silent-failure-hunter \u771f\u673a\u5b9e\u9524 **2 \u4e2a CRITICAL** \u5e76\u5df2\u4fee\u590d+\u590d\u5ba1 APPROVE\uff1a\u2460right \u4fa7\u89c6\u56fe\u6574\u4f53 180\u00b0 \u65cb\u8f6c\uff08spike \u5bf9\u79f0\u96f6\u4ef6\u68c0\u9a8c\u5bfc\u81f4\u89c6\u89c9\u4e0d\u53ef\u5206\u8fa8\u2014\u2014\u5df2\u7528\u975e\u5bf9\u79f0\u51f8\u53f0+\u7cbe\u786e 2D \u5750\u6807\u65ad\u8a00\u6c38\u4e45\u9489\u6b7b\uff0c\u7a81\u53d8\u9a8c\u8bc1\u53cc\u7ea2\uff09\uff1b\u2461fillet \u5706\u89d2\u5f27\u88ab\u5f53 \u2300 \u5b54\u6807\u6ce8\u5e76\u52ab\u6301\u5b9a\u4f4d\u5c3a\u5bf8\uff082\u03c0 \u6574\u5706\u5224\u5b9a\u4fee\u590d\uff09\u3002\u53e6\u4fee 3 Important\uff08\u53ef\u89c1\u5706\u663e\u5f0f\u4f18\u5148/multi \u5206\u652f\u7ed3\u6784\u5316\u5bbd\u6293/\u6bcf\u5b54\u5b9a\u4f4d\uff09+2\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-assumption_checks-731e8e4db1e2a95a", "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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 313681, "scanner": "foundry_dataset", "fingerprint": "3078e3236571748aca93075d6635577fd9fb4cedc7b8802fce5d97537c2e3cae", "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": "wangtao9090/VibeCAD#5", "human_labels": ["api_or_backend", "docs_or_claims", "human_feedback_general", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "5", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-de5d88f5d1e392ef", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 17, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 7, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 6}, "linked_commit_count": 6, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\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: wangtao9090/VibeCAD#5\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 3\nLinked commit count: 6\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 17\nLabels: {'test_ci_gap': 1, 'human_feedback_general': 2}\nPolarities: {'bad': 1, 'neutral': 2}\nChanged file labels: {'test_or_ci': 7, 'docs_or_claims': 3, 'ui_or_frontend': 6, 'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-53ed6285bfddfff0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/5\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/5\\nTitle: feat: Round 5 \u53ef\u6307\u4ee3\u6027\uff08\u6807\u6ce8\u56fe+\u6807\u7b7e\u6ce8\u518c\u8868+\u6253\u5b54/\u5706\u89d2/\u5012\u89d2\uff09\\nBody:\\n## \u4ea4\u4ed8\uff1a\u5bf9\u8bdd\u5f0f CAD \u7684\u300c\u9f20\u6807\u300d\u2014\u2014\u7cbe\u786e\u6307\u4ee3\u51e0\u4f55\\n\\n\u6ca1\u6709\u9f20\u6807\u62fe\u53d6\u7684 Chat CAD\uff0c\u7528\u6237\u6ca1\u6cd5\u8bf4\u6e05\\\"\u60f3\u64cd\u4f5c\u54ea\u4e2a\u9762/\u8fb9\\\"\u3002\u672c\u8f6e\u4ea4\u4ed8\u4e09\u6839\u652f\u67f1\uff1a\\n\\n1. **\u6807\u6ce8\u6e32\u67d3\u56fe + \u6807\u7b7e\u8868\u53cc\u901a\u9053**\uff1a`render_part(annotate=\\\"faces\\\")` \u56fe\u4e0a\u53ef\u89c1\u9762\u8d34 A/B/C \u6807\u7b7e+\u5c3a\u5bf8\u7ebf\uff0c\u540c\u65f6\u8fd4\u56de\u7ed3\u6784\u5316\u6807\u7b7e\u8868\uff08\u542b\u8bed\u4e49\u540d\\\"\u9876\u9762\u00b7\u5e73\u9762\\\"\u4e0e\u8ba1\u7b97\u5316\u53ef\u89c1\u6027\u63d0\u793a\uff09\u7ed9 AI \u8bfb\u2014\u2014\u7528\u6237\u8bf4\\\"\u9876\u9762\u6253\u5b54\\\"\uff0cAI \u7ffb\u8bd1\u6210\u6807\u7b7e\u3002`annotate=\\\"edges\\\"` \u8fb9\u6807\u6ce8\uff08\u80cc\u9762\u8fb9\u865a\u7ebf+\u8868\u6ce8\uff09\u3002\\n2. **\u6307\u7eb9\u6821\u9a8c\u89e3\u6307\u4ee3\u8fc7\u671f\uff08\u6301\u4e45\u547d\u540d\u95ee\u9898 MVP \u65b9\u6848\uff09**\uff1aFreeCAD \u9762/\u8fb9\u7d22\u5f15\u5e03\u5c14\u540e\u4f1a\u91cd\u6392\u2014\u2014\u6bcf\u6b21\u6807\u6ce8\u5b58\u51e0\u4f55\u6307\u7eb9\u5feb\u7167\uff0c\u7279\u5f81\u5de5\u5177\u6267\u884c\u524d\u6309\u6307\u7eb9\u627e\u56de\uff1b\u5bf9\u4e0d\u4e0a\u54cd\u4eae\u629b\\\"\u6807\u7b7e\u5df2\u8fc7\u671f\\\"\uff0c**\u7edd\u4e0d\u9759\u9ed8\u731c\u9762**\u3002\\n3. **\u9996\u6279\u6d88\u8d39\u8005**\uff1a`add_hole(face, diameter, depth, offset)`\uff08\u901a/\u76f2\u5b54+\u9762\u5185\u504f\u79fb\uff09\u3001`fillet_edges`/`chamfer_edges`\uff08\u8fb9\u6807\u7b7e\u5706\u89d2/\u5012\u89d2\uff09\uff0c\u5168\u90e8\u7ee7\u627f\u51e0\u4f55\u65ad\u8a00\u7eaa\u5f8b\u3002\\n\\n## \u5ba1\u67e5\u902e\u5230\u5e76\u4fee\u590d\u7684\u91cd\u5927\u95ee\u9898\\n\\n- **CRITICAL\uff08\u771f\u673a\u53d6\u8bc1\uff09**\uff1aheadless FreeCAD `doc.UndoMode=0`\u2014\u2014**\u4e8b\u52a1\u56de\u6eda\u81ea Round 2 \u8d77\u4e00\u76f4\u662f no-op**\uff0c\u5931\u8d25\u6b8b\u7559\u5783\u573e\u5bf9\u8c61\u5e76\u52ab\u6301\u7ed3\u679c\u94fe\u3002\u4fee\u590d + \u56de\u6eda\u5951\u7ea6\u6162\u6d4b\u4e0a CI\u3002\\n- T3/T5 \u5171 8 \u4e2a Important\uff1aedges \u6a21\u5f0f\u6e05\u7a7a\u9762\u6807\u7b7e\uff08\u2192\u6ce8\u518c\u8868\u5168\u91cf\u5951\u7ea6\uff09\u3001\u53ef\u89c1\u6027\u63d0\u793a\u9759\u6001\u6b7b\u8def\uff08\u5b9e\u6d4b\u5e95\u9762\u5728\u5168\u90e8\u9884\u8bbe\u89c6\u89d2\u4e0d\u53ef\u89c1\uff09\u3001resolve \u5728 fd1 \u5b88\u536b\u5916\u88f8\u5954\u3001edges_of \u9759\u9ed8\u541e\u53c2\u6570\u7b49\u3002\\n- \u771f\u673a\u53d1\u73b0\uff1aNULL shape \u4e0a isValid \u629b OCCError \u6f0f\u51fa\u5f02\u5e38\u5951\u7ea6\uff08\u5df2\u4fee\uff09\uff1bfillet \u5207\u7ebf\u7f1d\u5408\u8fb9\u4e0e\u771f\u68f1\u540c\u6307\u7eb9\uff08\u54cd\u4eae\u5931\u8d25\uff0c\u53cb\u597d\u533a\u5206\u7559\u540e\u7eed\uff09\u3002\\n\\n## \u9a8c\u6536\\n- \u5feb\u6d4b **157 passed** + ruff \u6e05\u96f6 + \u63e1\u624b\u7eaf\u51c0 + MCP \u534f\u8bae\u5951\u7ea6\u6d4b\u8bd5\uff08Image+TextContent \u53cc\u5757\u9501\u6b7b\uff09\u3002\\n- \u771f\u673a\u6162\u6d4b **22 passed**\uff08\u542b\u6301\u4e45\u547d\u540d\u7075\u9b42\u6d4b\u8bd5\uff1a\u6253\u5b54\u540e\u65e7\u6807\u7b7e\u8fc7\u671f\u3001\u672a\u52a8\u9762\u4ecd\u53ef\u6307\uff09\u3002\\n- **\u9ed1\u76d2\uff08\u771f\u5b9e MCP \u534f\u8bae\uff09**\uff1a\u6807\u6ce8\u56fe\u2192\u9009\\\"\u9876\u9762\\\"\u2192\u6253\u5b54\u2192\u4f53\u79ef\u4e0e\u7406\u8bba\u5dee 0.000\u2192\u65b0\u6807\u6ce8\u56fe\uff0c\u4e24\"\n  },\n  {\n    \"id\": \"github-feedback-comment-fa7c65efc8d97665\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/5#issuecomment-4667133191\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/5#issuecomment-4667133191\\nTitle: \\nBody:\\n\u7ec8\u5ba1\u66f4\u65b0\uff1a\u4e09\u8def\u7ec8\u5ba1\uff08code-reviewer SHIP / silent-failure-hunter / pr-test-analyzer\uff09\u540e\u8ffd\u52a0 3 \u4e2a commit\u2014\u2014silent-failure-hunter \u7b2c\u56db\u8f6e\u902e\u5230 3 \u4e2a CRITICAL\uff08\u771f\u673a\u5750\u5b9e\uff09\u5e76\u5df2\u5168\u90e8\u4fee\u590d\uff1a\u2460AI \u7f16\u9020\u672a\u5c55\u793a\u6807\u7b7e\u53ef\u6210\u529f\u6267\u884c \u2192 shown-l\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-assumption_checks-e2f6b0d3215375e2", "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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 313680, "scanner": "foundry_dataset", "fingerprint": "bb54324c80a2d9d4e89d97ae4bdb7fbbf723bc18fbca40361f53896f1d13f3e7", "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": "wangtao9090/VibeCAD#4", "human_labels": ["api_or_backend", "docs_or_claims", "human_feedback_general", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "4", "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": "wangtao9090/VibeCAD", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-2fe0d283560825f6", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 7, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 1}, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#4\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: wangtao9090/VibeCAD#4\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 7\nLabels: {'test_ci_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'docs_or_claims': 2, 'api_or_backend': 1, 'ui_or_frontend': 1, 'test_or_ci': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d7a0d33a9bd5486c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/4\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/4\\nTitle: feat: Round 4 \u4f4d\u7f6e\u63a7\u5236\uff08\u8ba9\u5b54/\u7279\u5f81\u80fd\u653e\u5bf9\u5730\u65b9\uff09\\nBody:\\n## Summary\\n\\n\u8865\u4e0a\u300c\u6539\u5bf9\u5730\u65b9\u300d\u2014\u2014\u56fe\u5143\u53ef\u6307\u5b9a\u653e\u7f6e\u4f4d\u7f6e\uff0c\u4ece\u800c\u80fd\u5728\u96f6\u4ef6**\u6b63\u4e2d/\u6307\u5b9a\u5904**\u6253\u5b54\uff0c\u800c\u975e\u53ea\u80fd\u5728\u539f\u70b9\uff08\u89d2\u4e0a\uff09\u3002\u4e0e Round 3 \u7684\u6e32\u67d3\u5408\u6210\u300c\u770b\u5f97\u89c1 + \u6539\u5bf9\u5730\u65b9\u300d\u3002\\n\\n- `add_box(..., position=(0,0,0))`\uff1a\u8bbe `Placement.Base`\u3002\\n- `add_cylinder(..., position=(0,0,0), axis=\\\"z\\\")`\uff1a\u8bbe Placement\uff0c`axis=x|y|z` \u8ba9\u5706\u67f1\u6cbf\u4efb\u610f\u8f74\uff08\u914d\u5408\u5c45\u4e2d position \u6253\u8d2f\u7a7f\u6b63\u4e2d\u5b54\uff09\u3002\\n- server \u5de5\u5177 `add_box(position)` / `add_cylinder(position, axis)` \u53c2\u6570\u900f\u4f20\u3002\\n- `_validate_position` \u7eaf\u6821\u9a8c\uff1b\u5ef6\u7eed\u6bcf\u6b65\u51e0\u4f55\u65ad\u8a00\u7eaa\u5f8b\u3002\\n\\n## \u5b9e\u673a\u9a8c\u6536\uff08macOS arm64\uff09\\n\\n- \u5feb\u6d4b\u8bd5 **94 passed** + ruff clean + \u63e1\u624b\u7eaf\u51c0\u3002\\n- \u771f\u673a\u6162\u6d4b\u8bd5\uff1a\u5c45\u4e2d\u5706\u67f1\u8d2f\u7a7f box \u2192 cut \u4f53\u79ef = box \u2212 \u03c0\u00b7r\u00b2\u00b7H\uff08**\u6316\u6389\u6574\u6bb5\u5706\u67f1**\uff0c\u8bc1\u660e\u5c45\u4e2d\u4e14\u8d2f\u7a7f\uff09\uff1b\u7aef\u5230\u7aef `test_positioned_part`\uff08CI \u8986\u76d6\uff09\u3002\\n- **\u9ed1\u76d2\uff08\u771f\u5b9e MCP \u534f\u8bae\uff09**\uff1a`add_box(40,30,20)` + `add_cylinder(6,40,position=[20,15,-10],axis=z)` \u2192 \u9876\u9762\u6b63\u4e2d\u8d2f\u7a7f\u5b54\uff0ccut \u4f53\u79ef 21738 \u2248 24000\u2212\u03c0\u00b736\u00b720\u3002`render_part` \u56de\u56fe\uff0c**\u4eb2\u773c\u786e\u8ba4\u5b54\u5728\u6b63\u4e2d**\uff08\u5bf9\u6bd4 Round 3 \u89d2\u4e0a\u5b54\uff09\u3002\\n\\n## \u5907\u6ce8\\n\\n\u57fa\u7ebf\u4e3a `feat/round3-visual`\uff08PR #3\uff09\uff0cdiff \u4ec5\u542b Round 4\uff1b#3 \u5408\u5e76\u540e\u672c PR \u81ea\u52a8\u6539\u57fa\u7ebf\u5230 main\u3002\u8303\u56f4\u7eaa\u5f8b\uff1a\u4ec5 position + cylinder axis\uff0c\u65e0 reposition/\u65cb\u8f6c/\u9635\u5217/\u88c5\u914d\u3002\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-4c9df2ef6a05ce77\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/4#issuecomment-4665337438\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/4#issuecomment-4665337438\\nTitle: \\nBody:\\nRound 4 \u5185\u5bb9\u5df2 rebase \u540e\u76f4\u63a5\u5408\u5165 main\uff08PR #3 \u5408\u5e76\u5220\u9664 base \u5206\u652f\u65f6\u672c PR \u88ab GitHub \u81ea\u52a8\u5173\u95ed\uff09\u3002\u5408\u5165\u8303\u56f4\uff1a`06a5578..46040a7`\uff087 commits\uff1aposition/axis \u5b9e\u73b0\u3001e2e \u5c45\u4e2d\u5b54\u6d4b\u8bd5\u3001boolean_cut \u4f53\u79ef\u51cf\u5c11\u65ad\u8a00\u4fee\u590d\u3001trimesh \u6e05\u7406\uff09\u3002\u5408\u5e76\u540e\u9a8c\u8bc1\uff1a97 fast passed + 8 \u771f\u673a\u6162\u6d4b\u8bd5\u5168\u8fc7\u3002\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-0befcaf\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-assumption_checks-1ebe63bca2c91f79", "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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 313679, "scanner": "foundry_dataset", "fingerprint": "c8147e472a6c85b3ec8ec6478ba84d07148dfa9a5471a964507835fba6fc2db0", "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": "wangtao9090/VibeCAD#3", "human_labels": ["api_or_backend", "docs_or_claims", "source_or_other", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ede00046dbddeafe", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 17, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 7, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 4, "source_or_other": 2}, "linked_commit_count": 5, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#3\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: wangtao9090/VibeCAD#3\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 17\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 3, 'source_or_other': 2, 'ui_or_frontend': 4, 'api_or_backend': 1, 'test_or_ci': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4f7ec9c99a5c627d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/3\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/3\\nTitle: feat: Round 3 \u89c6\u89c9\u53cd\u9988\u5c42\uff08PNG \u8f6f\u6e32\u67d3 + glTF \u5de5\u4ef6\uff0c\u7528\u6237\u80fd\u770b\u89c1\u4e86\uff09\\nBody:\\n## Summary\\n\\n\u628a Round 2\u300c\u80fd\u9020\u4f46\u770b\u4e0d\u89c1\u300d\u8865\u6210**\u300c\u770b\u5f97\u89c1\u3001\u80fd\u8fed\u4ee3\u300d**\u2014\u2014\u89c6\u89c9\u53cd\u9988\u662f CAD \u53ef\u7528\u6027\u7684 MVP \u95e8\u69db\u3002\\n\\n- **`render_part(view)`** \u2014\u2014 \u56de\u4f20 **PNG \u8f6f\u6e32\u67d3\u56fe**\uff08matplotlib Agg\uff0c\u7eaf CPU \u65e0 GPU + \u9010\u9762\u6cd5\u5411\u6717\u4f2f\u660e\u6697\uff09\uff0c\u4f5c\u4e3a MCP `ImageContent` \u5728 Claude Desktop \u7b49\u5ba2\u6237\u7aef**\u5185\u8054\u53ef\u89c1**\u3002\\n- **`export_part(fmt=\\\"gltf\\\"/\\\"all\\\")`** \u2014\u2014 \u5bfc\u51fa **glTF\uff08.glb\uff09\u5de5\u4ef6**\uff08\u9010\u9762 primitive + \u9762\u7ea7 extras `{face_index, geom_type}`\uff09\uff0c\u4f9b\u672a\u6765\u4f1a\u6e32 glTF \u7684 App/\u5ba2\u6237\u7aef\u4ea4\u4e92\u65cb\u8f6c\u62fe\u53d6\u3002\\n- `feedback/render.py`\uff08`mesh_to_png` \u7eaf\u51fd\u6570 + `render_png`\uff09\u3001`feedback/gltf.py`\uff08`build_glb` \u7eaf\u51fd\u6570 + `export_gltf`\uff09\u3002\\n\\n## \u4f20\u8f93\u5c42\u73b0\u5b9e\uff08\u51b3\u5b9a\u65b9\u6848\uff09\\n\\nMCP \u6807\u51c6\u5ba2\u6237\u7aef**\u5185\u8054\u6e32\u67d3 PNG\uff08ImageContent\uff09**\u4f46**\u4e0d\u5185\u8054\u6e32\u67d3 glTF**\u3002\u6545 PNG \u8f6f\u6e32\u67d3\u6253\u5e95\uff08\u5f53\u4e0b\u5373\u53ef\u89c1\u3001\u53ef\u8fed\u4ee3\uff09\uff0cglTF \u5de5\u4ef6\u5e76\u884c\u5bfc\u51fa\uff08\u4ea4\u4e92\u7ec8\u6001\uff0c\u5f85\u672a\u6765 App\uff09\u3002\\n\\n## \u5b9e\u673a\u9a8c\u6536\uff08macOS arm64\uff09\\n\\n- \u5feb\u6d4b\u8bd5 **84 passed** + ruff clean + \u63e1\u624b\u7eaf\u51c0\uff08server \u4e0d import FreeCAD/matplotlib\uff0c\u61d2\u52a0\u8f7d\u5728\u51fd\u6570\u5185\uff09\u3002\\n- \u771f\u673a\u6162\u6d4b\u8bd5\u5168\u8fc7\uff1a`render_png` \u51fa PNG\u3001`export_gltf` \u51fa 6-primitive \u5408\u6cd5 .glb\u3001\u7aef\u5230\u7aef render+gltf\u3002\\n- **\u9ed1\u76d2\u89c6\u89c9\u9a8c\u6536\uff08\u771f\u5b9e MCP \u534f\u8bae\uff09**\uff1a`render_part` \u56de\u4f20 `ImageContent`\uff08image/png ~21KB\uff0c\u5b58\u76d8\u53ef\u89c1 3D \u5b9e\u4f53+\u5207\u53e3\uff09\uff1b`export_part(fmt=\\\"all\\\")` \u2192 STEP 8246B + STL 61748B + glTF 9620B\u3002\\n\\n## \u6e32\u67d3\u8def\u5f84 de-risk\uff08\u5b9e\u673a\u63a2\u9488\uff09\\n\\nmatplotlib Agg **\u53ef\u7528**\uff1btrimes\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-5d922347f549a65f\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 8,\n    \"deletions\": 1,\n    \"changes\": 9,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/67917b6ad40158e4e9d6d9b8e661ae9ad1d2bcd9/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-d9b0d280dbb367b0\",\n    \"filename\": \"docs/superpowers/plans/2026-06-09-round3-visual.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 199,\n    \"deletions\": 0,\n    \"changes\": 199,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/67917b6ad40158e4e9d6d9b8e661ae9ad1d2\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-assumption_checks-1da8278080612a1b", "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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 313678, "scanner": "foundry_dataset", "fingerprint": "90d0896460fbf6345b64a2a97b57164218f844b1797d39b09f36ed858c54db82", "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": "wangtao9090/VibeCAD#1", "human_labels": ["api_or_backend", "docs_or_claims", "source_or_other", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-015db98e7ac6f827", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 24, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 11, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 8, "source_or_other": 2}, "linked_commit_count": 5, "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: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#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: wangtao9090/VibeCAD#1\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 24\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'test_or_ci': 11, 'docs_or_claims': 2, 'source_or_other': 2, 'ui_or_frontend': 8, 'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-adf37085ed1d945d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/1\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/1\\nTitle: feat: \u8de8\u5e73\u53f0 FreeCAD \u8fd0\u884c\u65f6\u5b89\u88c5\u5668\uff08A1/A2/A3 \u5b9e\u673a\u9a8c\u8bc1\u901a\u8fc7\uff09\\nBody:\\n## Summary\\n\\n\u5b9e\u73b0 VibeCAD \u7684\u300c\u96f6\u5b89\u88c5\u300d\u8de8\u5e73\u53f0 FreeCAD \u8fd0\u884c\u65f6\uff08\u65b9\u6848 B / A3 \u8fdb\u7a0b\u6a21\u578b\uff09\uff0c\u672c\u8f6e\u4ea4\u4ed8 4 \u4e2a MCP \u5de5\u5177\u8bc1\u660e\u5730\u57fa\u6210\u7acb\uff1a\\n\\n- **\u5f15\u5bfc\u58f3** `launcher.py`\uff08\u7eaf stdlib\uff0c\u7981 import mcp\uff09\uff1a\u54e8\u5175\u5c31\u7eea\u5219 re-exec \u8fdb conda env python\uff08POSIX `os.execv` / Windows subprocess\uff09\uff0c\u4ece\u800c\u8fdb\u7a0b\u5185 `import FreeCAD`\u3002\\n- **\u8fd0\u884c\u65f6\u5c42** `runtime/{platform,paths,micromamba,status,installer}`\uff1a\u5e73\u53f0\u2192conda subdir \u6620\u5c04\u3001\u7edf\u4e00 `active_runtime_python`\uff08override \u4f18\u5148\uff09\u3001micromamba \u539f\u5b50\u4e0b\u8f7d\uff08\u6309 subdir \u62fc sha256\uff09\u3001\u54e8\u5175\u5c31\u7eea\u63a2\u6d4b + \u8de8\u8fdb\u7a0b `status.json` + \u9632\u6b7b\u9501\u6587\u4ef6\u9501\uff08Win `OpenProcess` \u63a2\u6d3b\uff09\u3001\u5b89\u88c5\u7f16\u6392\uff08micromamba\u2192`python=3.12 freecad=1.1.0`\u2192pip\u2192\u5192\u70df\u2192\u5199\u54e8\u5175\uff0cstdout \u91cd\u5b9a\u5411\u4e0d\u6c61\u67d3 MCP stdio\uff09\u3002\\n- **server** `server.py`\uff1aFastMCP 4 \u5de5\u5177 `ping`/`get_runtime_status`/`ensure_runtime`/`smoke_cad`\uff0c\u540e\u53f0\u5b89\u88c5\u4e0d\u963b\u585e\u63e1\u624b\uff0c`_silence_fd1` \u62a4\u4f4f JSON-RPC \u901a\u9053\u3002\\n- **CI**\uff1a\u4e94\u5e73\u53f0 unit \u77e9\u9635 + ubuntu/macos/windows \u8fd0\u884c\u65f6\u96c6\u6210\u3002\\n\\n## \u5730\u57fa\u5047\u8bbe\u9a8c\u8bc1\uff08A1/A2/A3\uff0cmacOS arm64 \u5b9e\u673a\uff0c\u771f\u88c5 freecad=1.1.0 \u22483:50\uff09\\n\\n- **A2 \u2705** micromamba + `conda create -c conda-forge --override-channels python=3.12 freecad=1.1.0` \u6210\u529f\uff08230 \u5305\uff0c\u542b occt 7.9.3\uff09\u3002\\n- **A1 \u2705\uff08\u542b\u771f\u673a\u4fee\u6b63\uff09** \u96c6\u6210\u6d4b\u8bd5\u66b4\u9732\uff1aconda-forge \u628a FreeCAD \u6269\u5c55\u6a21\u5757\u88c5\u5728 `<prefix>/lib`\uff08Windows\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-a711448bb9ccfd4c\",\n    \"filename\": \".github/workflows/ci.yml\",\n    \"label\": \"test_or_ci\",\n    \"status\": \"added\",\n    \"additions\": 32,\n    \"deletions\": 0,\n    \"changes\": 32,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/96394601fb062f075821d5ffcf73cd7c087eff34/.github%2Fworkflows%2Fci.yml\"\n  },\n  {\n    \"id\": \"github-pr-file-file-cce9aa32b1125a99\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 19,\n    \"deletions\": 3,\n    \"changes\": 22,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/96394601fb062f075821d5ffcf73cd7c087eff34/README.md\"\n  },\n  {\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-assumption_checks-7abbd2748920f993", "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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 341486, "scanner": "foundry_dataset", "fingerprint": "1d6242631458e6e4389b8b10cbbc13aad390414107d47a22926393652a2e6b9d", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 7, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 6, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 6, "human_feedback_general": 2, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 10}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 104, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "thread_touches_file": 17, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 8, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 3, "comment_chain_links_commit": 6, "comment_chain_touches_file": 36, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 47, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 3, "pr_file": 17, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 8, "comment_chain": 3, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#5", "issue_number": "5", "quality_tiers": {"unresolved": 1, "assumption_check": 3, "weak_supervision": 4}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ade20303f76442e3", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 42, "api_or_backend": 6, "docs_or_claims": 18, "ui_or_frontend": 36}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#5\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 47\nEdges: 104\nNode types: {'pr_file': 17, 'link_quality': 8, 'commit': 6, 'comment': 3, 'comment_chain': 3, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 36, 'thread_touches_file': 17, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 8, 'comment_chain_links_commit': 6, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 7, 'ui_or_frontend': 6, 'verification_or_tests': 6, 'ambiguous_needs_more_evidence': 5, 'docs_or_claims': 3, 'blueprint_human_gap_alignment': 3, 'human_feedback_general': 2, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-aa43f8ada1840331", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/test_ci_gap_after_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 341485, "scanner": "foundry_dataset", "fingerprint": "34dbbd982b1ffdc9edccac73fa6e12aa4acc3cf0bef2079330c06833c585a849", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 3, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 1, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 8}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 57, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 7, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 7, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 7, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 14, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 29, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 7, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 2, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#4", "issue_number": "4", "quality_tiers": {"unresolved": 1, "assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ecf3a6db78d2c5ed", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 15, "api_or_backend": 5, "docs_or_claims": 10, "ui_or_frontend": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#4\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#4\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 29\nEdges: 57\nNode types: {'pr_file': 7, 'link_quality': 7, 'alignment': 3, 'blueprint_finding': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 14, 'thread_touches_file': 7, 'chain_has_link_quality': 7, 'issue_chain_touches_file': 7, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 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, 'test_or_ci': 3, 'blueprint_human_gap_alignment': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'unlinked_human_feedback': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-360298fa613b20d8", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/test_ci_gap_after_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 341484, "scanner": "foundry_dataset", "fingerprint": "5c0962b7ab9c20fe7b34e4179d83b4c09b5db0f479d913b729966171f027732b", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 7, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 4, "source_or_other": 2, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 69, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 17, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 40, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 17, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#3", "issue_number": "3", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d52c5bb0edcb704c", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 28, "api_or_backend": 4, "docs_or_claims": 12, "ui_or_frontend": 16, "source_or_other": 8}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#3\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#3\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#3\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 3\nGraph consistency label: weak_supervision_needs_review\nNodes: 40\nEdges: 69\nNode types: {'pr_file': 17, 'link_quality': 6, 'commit': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 17, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 7, 'verification_or_tests': 5, 'ui_or_frontend': 4, 'docs_or_claims': 3, 'ambiguous_needs_more_evidence': 3, 'blueprint_human_gap_alignment': 3, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'comment_has_related_commit_context': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-995c61832e96536e", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/test_ci_gap_after_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 341483, "scanner": "foundry_dataset", "fingerprint": "95d7a9864380a79e877c2fcd5a7de5ac13164dc38ed8e480eccbca6f014e7ae0", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 11, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 8, "source_or_other": 2, "weak blueprint fit": 2, "partial blueprint fit": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 76, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 24, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 6, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 47, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 24, "alignment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 1, "blueprint_finding": 3}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#1", "issue_number": "1", "quality_tiers": {"assumption_check": 3, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d4579c4c1053ab2c", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 44, "api_or_backend": 4, "docs_or_claims": 8, "ui_or_frontend": 32, "source_or_other": 8}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#1\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#1\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 47\nEdges: 76\nNode types: {'pr_file': 24, 'link_quality': 6, 'commit': 5, 'alignment': 3, 'blueprint_finding': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 24, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 11, 'ui_or_frontend': 8, 'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'blueprint_human_gap_alignment': 3, 'docs_or_claims': 2, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'weak blueprint fit': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'comment_has_related_commit_context': 1, 'partial blueprint fit': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-d918f3762a5f7b37", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/test_ci_gap_after_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 323849, "scanner": "foundry_dataset", "fingerprint": "1690a4bc4f67956e4c516ec464be54fb0504483884dfad9cfa62b380ecf4c8e6", "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": "wangtao9090/VibeCAD#9", "human_labels": ["agent_instruction_gap", "api_or_backend", "docs_or_claims", "test_or_ci", "ui_or_frontend"], "issue_number": "9", "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": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-08efbc7045cc161b", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 25, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 11, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 10}, "linked_commit_count": 0, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#9\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: wangtao9090/VibeCAD#9\nRepo: wangtao9090/VibeCAD\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: 25\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 3, 'ui_or_frontend': 10, 'api_or_backend': 1, 'test_or_ci': 11}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cd7002e0e7fae313\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/9\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/9\\nTitle: feat: Round 8 \u88c5\u914d DSL\uff08\u591a\u96f6\u4ef6/\u8d34\u9762\u5bf9\u9f50/\u5e72\u6d89\u5b88\u536b\uff09\\nBody:\\n## \u4ea4\u4ed8\uff1a\u4ece\u5355\u96f6\u4ef6\u5230\u88c5\u914d\uff08\u67b6\u6784\u8f6e\uff09\\n\\n- **\u591a\u96f6\u4ef6\u6a21\u578b**\uff1a`new_part`/`set_active_part`\u2014\u2014App::Part \u5bb9\u5668\u627f\u8f7d\uff0c\u65e2\u6709 21 \u4e2a\u5de5\u5177\u7ecf\\\"\u6d3b\u52a8\u96f6\u4ef6\\\"\u96f6\u611f\u77e5\u517c\u5bb9\uff08**\u786c\u9a8c\u6536\u7ebf\u8fbe\u6210\uff1aR7 \u65e2\u6709 227 \u5feb\u6d4b\u96f6\u4fee\u6539**\uff09\u3002\\n- **`place_part`**\uff1a\u96f6\u4ef6\u7ea7\u4f4d\u59ff\u2014\u2014\u6574\u96f6\u4ef6\uff08\u542b\u5168\u90e8\u7279\u5f81\uff09\u79fb\u52a8\u65cb\u8f6c\uff0c\u5b54\u968f\u96f6\u4ef6\u8d70\uff08R7 rotate \u5355\u56fe\u5143\u5c40\u9650\u7684\u6b63\u89e3\uff09\u3002\\n- **`align_parts`**\uff1a\u9762\u8d34\u9762\u5bf9\u9f50\uff08\u8de8\u96f6\u4ef6\u9762\u6807\u7b7e\u6307\u4ee3\uff09+ gap \u63a7\u5236\uff1b\u88c5\u914d\u540e**\u81ea\u52a8\u5e72\u6d89\u68c0\u67e5**\uff08\u91cd\u53e0\u54cd\u4eae\u62a5\u91cf\u5e76\u56de\u6eda\uff0callow \u663e\u5f0f\u8c41\u514d\uff09\u3002\\n- \u88c5\u914d\u5de5\u7a0b\u56fe\uff08\u96f6\u4ef6\u5206\u8272/\u88ab\u906e\u6321\u7279\u5f81\u865a\u7ebf\uff09\u3001\u88c5\u914d\u6458\u8981\u3001split STEP \u6309\u96f6\u4ef6\u5bfc\u51fa\u3002\\n\\n## \u7b2c\u516b\u8f6e\u5ba1\u67e5\u6218\u679c\uff08\u9ed1\u76d2 2 bug + \u7ec8\u5ba1\u4e24\u8def 5 CRITICAL + 2I + 2M\uff0c\u5168\u90e8\u771f\u673a\u5b9e\u9524\u4fee\u590d\uff09\\n- \u9ed1\u76d2\u902e bug\uff1a\u88c5\u914d\u6807\u6ce8\uff08\u5168\u5c40\u6307\u7eb9\uff09/\u89e3\u6790\uff08\u5c40\u90e8\u5339\u914d\uff09**\u5750\u6807\u7cfb\u9519\u4f4d**\u2014\u2014\\\"\u5168\u5c40\u5339\u914d\u3001\u5c40\u90e8\u6d88\u8d39\\\"\u5951\u7ea6\u4fee\u590d\u3002\\n- **\u7cfb\u7edf\u6027\u6839\u56e0\uff083 CRITICAL \u540c\u6e90\uff09**\uff1a\u88c5\u914d\u5b88\u536b\u951a\u5b9a\\\"\u6d3b\u52a8\u96f6\u4ef6\\\"\u800c\u975e\\\"\u88ab\u64cd\u4f5c\u96f6\u4ef6\\\"\u2014\u2014R5-R7 \u5168\u90e8\u5b8c\u6574\u6027\u5b88\u536b\u5728\u8de8\u96f6\u4ef6\u64cd\u4f5c\u65f6\u6574\u4f53\u65c1\u8def \u2192 **owner \u53cd\u67e5\u951a\u5b9a**\u7edf\u4e00\u4fee\u590d\u3002\\n- \u5e72\u6d89\u5b88\u536b `except\u2192vol=0` \u9759\u9ed8\u653e\u884c\uff08\u7eaa\u5f8b\u552f\u4e00\u7834\u53e3\uff09\u2192 \u5220\u5bbd\u6293+\u7a7a\u96f6\u4ef6\u663e\u5f0f\u6ce8\u660e\uff1bedges_of \u88c5\u914d\u7d22\u5f15\u9519\u4f4d\uff1b\u6807\u7b7e\u547d\u540d\u7a7a\u95f4\u6b7b\u9501\uff08\u91cd\u6807\u6ce8\u5047\u63d0\u793a\u6b7b\u5faa\u73af\uff09\u2192 \u5168\u96f6\u4ef6\u5199\u5165\u3002\\n- \u7ec8\u9a8c APPROVE + \u79fb\u4ea4\u9879\u70ed\u4fee\uff08\u7a7a\u96f6\u4ef6\u8bef\u70b8\u4e09\u5904 + set_active_part \u5de5\u5177\uff09\u3002\\n\\n**\u65b0\u65b9\u6cd5\u8bba**\uff1a\u5b88\u536b\u5fc5\u987b\u951a\u5b9a\u88ab\u64cd\u4f5c\u5bf9\u8c61\u7684 owner \u800c\u975e\u5168\u5c40/\u6d3b\u52a8\u72b6\u6001\u2014\u2014\u591a\u4e0a\u4e0b\u6587\u67b6\u6784\u7684\u7cfb\u7edf\u6027\u98ce\u9669\u6a21\u5f0f\u3002\\n\\n## \u9a8c\u6536\\n**302 fast + 65 slow \u5168\u7eff** + \u9ed1\u76d2\u771f\u534f\u8bae\u5168\u94fe\u8def + \u88c5\u914d\u5de5\u7a0b\u56fe\u4eba\u773c\u786e\u8ba4\uff08\u4e24\u96f6\u4ef6\u5206\u8272\u3001\u88ab\u76d6\u5b54\u6b63\u786e\u8f6c\u865a\u7ebf\uff09\u3002\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-a8c465c783927d14\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 11,\n    \"deletions\": 1,\n    \"changes\": 12,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/d14f70be00088f585668bf23ee3c0805b11711fd/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-8d4e935616e193d9\",\n    \"filename\": \"docs/superpowers/plans/2026-06-10-round8-assembly.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 304,\n    \"deletions\": 0,\n    \"changes\": 304,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/d14f70be00088f585668bf23ee3c0805b11711fd/docs%2Fsuperpowers%2Fplans%2F2026-06-10-round8-assembly.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-1cacfff02aab7023\",\n    \"filen\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-bad_chains-bd799b5ef1c3db01", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 323848, "scanner": "foundry_dataset", "fingerprint": "30dffb292b49c66de5eb837c9f0ac6199b2985d4d4f9dace7330f0738d6248b4", "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": "wangtao9090/VibeCAD#8", "human_labels": ["agent_instruction_gap", "api_or_backend", "docs_or_claims", "human_feedback_general", "test_or_ci", "ui_or_frontend"], "issue_number": "8", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "self_attested_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-c8c3c6e6de7a3baf", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 14, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 5, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 5}, "linked_commit_count": 1, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#8\nOutcome: self_attested_unverified\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\nChain evidence:\nIssue/PR evidence chain: wangtao9090/VibeCAD#8\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: self_attested_unverified\nComment count: 2\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 14\nLabels: {'agent_instruction_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'docs_or_claims': 3, 'api_or_backend': 1, 'ui_or_frontend': 5, 'test_or_ci': 5}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d7121a9af674c679\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/8\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/8\\nTitle: feat: Round 7 reposition + \u5b54\u9635\u5217 + \u8349\u56fe\u62c9\u4f38\\nBody:\\n## \u4ea4\u4ed8\uff1a\u5355\u96f6\u4ef6\u5efa\u6a21\u80fd\u529b\u8865\u9f50\\n\\n- **`move_part` / `rotate_part`**\uff1a\u79fb\u52a8/\u65cb\u8f6c\u56fe\u5143\uff08rotate \u7ed5\u81ea\u8eab\u5305\u56f4\u76d2\u4e2d\u5fc3\uff09\u2014\u2014\u4f9d\u8d56\u94fe\u91cd\u7b97\uff1b\u5bc6\u5c01\u5185\u8154/\u5b54\u5b8c\u6574\u6027\u7834\u574f\u54cd\u4eae\u62d2\u7edd\u3002\\n- **`add_hole(pattern=...)`**\uff1a\u7ebf\u6027/\u5706\u5f62\u5b54\u9635\u5217\uff08\u94fe\u5f0f Cut\uff0c\u5168\u6709\u5168\u65e0\u2014\u2014\u91cd\u53e0/\u8d8a\u754c\u6574\u4f53\u56de\u6eda\uff09\uff0c\u9ed1\u76d2\u56fe\u4e0a\u6bcf\u5b54\u5b9a\u4f4d\u5c3a\u5bf8\u94fe\u5f0f\u9f50\u5168\u3002\\n- **`extrude_profile`**\uff1a\u81ea\u7531\u8f6e\u5ed3 DSL\uff08rect/circle/polygon/slot\uff09pad \u52a0\u6599/pocket \u6316\u69fd\u2014\u2014\u4ece\\\"\u56fe\u5143\u7ec4\u5408\\\"\u5230\\\"\u81ea\u7531\u5f62\u72b6\\\"\u7684\u8de8\u8d8a\uff1b\u4f53\u79ef\u53cc\u8fb9\u6838\u7b97\uff08\u6253\u7a7f/\u8d8a\u754c/\u5b64\u513f\u5b9e\u4f53\u54cd\u4eae\u62d2\u7edd\uff09\uff1b\u8f6e\u5ed3\u53d6\u5411\u663e\u5f0f\u6620\u5c04\u9762\u5185 u/v\u3002\\n\\n## \u7b2c\u4e03\u8f6e\u5ba1\u67e5\u6218\u679c\uff082 Critical + 3 Important \u5168\u771f\u673a\u5b9e\u9524\uff0c\u5df2\u4fee\u590d+\u7ec8\u9a8c APPROVE\uff09\\nC1 \u5b64\u513f pad \u52ab\u6301\u7ed3\u679c\u5bf9\u8c61\uff1bC2 \u8de8\u5f84\u65e2\u6709\u5b54\u88ab\u9759\u9ed8\u54ac\u6bc1\uff08\u230020 \u540c\u5fc3\u541e \u23008 \u62a5 ok\uff09\uff1bI1 pocket \u6253\u7a7f/\u9635\u5217\u76f2\u5b54\u8d85\u6df1\uff08R6b \u6559\u8bad\u65b0\u8def\u5f84\u590d\u53d1\uff09\uff1bI2 reposition \u628a\u5b54\u5c01\u6210**\u5bc6\u5c01\u5185\u8154**\u4ecd ok \u2192 \u7aef\u9762\u63a2\u9488\uff1bI3 \u975e\u5bf9\u79f0\u8f6e\u5ed3\u4fa7\u9762\u53d6\u5411\u4e0d\u53ef\u9884\u6d4b\u3002\u7ec8\u9a8c\u79fb\u4ea4\u9879\uff08modify \u6539\u57fa\u4f53\u5c3a\u5bf8\u57cb\u5b54\uff09\u5df2\u70ed\u4fee\u63a5\u540c\u4e00\u63a2\u9488\u3002\\n**\u65b0\u65b9\u6cd5\u8bba**\uff1a\u65b0\u5de5\u5177\u63a5\u5165\u5fc5\u987b\u663e\u5f0f\u6838\u5bf9\u65e2\u6709\u51e0\u4f55\u8bed\u4e49\u5b88\u536b\uff08\u5168\u5f84\u5feb\u7167/\u6df1\u5ea6\u6838\u7b97/\u5bc6\u5c01\u63a2\u9488\uff09\u5168\u90e8\u63a5\u7ebf\u3002\\n\\n## \u9a8c\u6536\\n**227 fast + 52 slow \u5168\u7eff** + \u9ed1\u76d2\u4eba\u773c\uff084 \u5b54\u9635\u5217\u5b9a\u4f4d\u94fe 15/25/35/45\u3001\u8dd1\u9053\u69fd\u3001\u79fb\u5b54\u540e\u5b9a\u4f4d\u94fe\u540c\u6b65\u66f4\u65b0\u3001\u6253\u7a7f\u88ab\u62d2\uff09\u3002\\n\\n## \u26a0\ufe0f \u6808\u5f0f PR\\nbase = `feat/round6b-modify`\u3002**\u8bf7\u5148\u5408\u5e76 #7\uff08\u5408\u5e76\u65f6\u4e0d\u8981\u5220\u9664\u5206\u652f\uff09**\uff0c\u672c PR \u4f1a\u81ea\u52a8 retarget\u3002\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-de0ce270f2ee24da\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/8#issuecomment-4671343515\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/8#issuecomment-4671343515\\nTitle: \\nBody:\\nRound 7 \u5185\u5bb9\u5df2 rebase \u540e\u76f4\u63a5\u5408\u5165 main\uff08`51c3096..c29609f`\uff0c12 commits\u2014\u2014\u4e0e R5/R6 \u540c\u8d70\u672c\u5730 ff \u7b49\u4ef7\u8def\u5f84\uff09\u3002\u5408\u5165\u540e 227 fast \u5168\u7eff\u3002\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-71a7d80f9e0a3ca5\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 5,\n    \"deletions\": 2,\n    \"changes\": 7,\n    \"blob_url\": \"https://github.com\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-bad_chains-ed5509501cae1ff8", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 323847, "scanner": "foundry_dataset", "fingerprint": "59d15165fcf21b601aee0726f3249b7e8652c5215bdd9d764ef5d7e14a1f9f46", "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": "wangtao9090/VibeCAD#7", "human_labels": ["agent_instruction_gap", "api_or_backend", "docs_or_claims", "test_or_ci", "ui_or_frontend"], "issue_number": "7", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "self_attested_unverified", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-6c36c450d8392848", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 10, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 2}, "linked_commit_count": 1, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#7\nOutcome: self_attested_unverified\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\nChain evidence:\nIssue/PR evidence chain: wangtao9090/VibeCAD#7\nRepo: wangtao9090/VibeCAD\nThread label: thread_has_human_issue_and_fix_context\nOutcome: self_attested_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 10\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 3, 'ui_or_frontend': 2, 'api_or_backend': 1, 'test_or_ci': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-48de0e742df9a409\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/7\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/7\\nTitle: feat: Round 6b modify_part \u53c2\u6570\u4fee\u6539 + \u540c\u5f84\u5b54\u5b9a\u4f4d\u5c3a\u5bf8\\nBody:\\n## \u4ea4\u4ed8\uff1a\u300c\u957f\u5ea6\u6539 45\u300d\u2014\u2014\u53c2\u6570\u5316\u91cd\u7b97\u7ea2\u5229\u5151\u73b0\\n\\n- **`modify_part(name, parameter, value)`**\uff1a\u6539\u4e00\u4e2a\u53c2\u6570\uff0cFreeCAD \u4f9d\u8d56\u94fe\uff08\u5e03\u5c14/\u5b54/\u5706\u89d2\uff09\u81ea\u52a8\u91cd\u7b97\uff0c**\u5de5\u7a0b\u56fe\u5c3a\u5bf8\u6570\u5b57\u5f53\u573a\u53d8\u5316**\uff08\u9ed1\u76d2\u4eba\u773c\uff1afront/top/iso \u4e09\u5904 40\u219245\u3001\u5b54 \u23008\u2192\u230010\uff09\u3002\u767d\u540d\u5355\uff08Box \u957f\u5bbd\u9ad8/Cylinder \u5f84\u9ad8/Fillet\u00b7Chamfer \u534a\u5f84\uff09+ no-op \u62d2\u7edd + UndoMode \u56de\u6eda\u3002\\n- **`parts` \u53c2\u6570\u6e05\u5355**\u968f\u6bcf\u6b65\u8fd4\u56de\u2014\u2014AI \u59cb\u7ec8\u77e5\u9053\u5f53\u524d\u53ef\u6539\u53c2\u6570\uff0c\u4e00\u6b65\u7ffb\u8bd1\u7528\u6237\u6307\u4ee4\u3002\\n- **\u540c\u5f84\u5b54\u9635\u5217\u5b9a\u4f4d**\uff08R6a backlog\uff09\uff1a\u5b9a\u4f4d\u5c3a\u5bf8\u5faa\u73af\u4e0e \u2300 \u53bb\u91cd\u89e3\u8026\uff0c\u6bcf\u5b54\u4f4d\u7f6e\u53ef\u8bfb\u3002\\n\\n## \u7b2c\u516d\u8f6e\u5ba1\u67e5\u6218\u679c\uff08\u521d\u5ba1+\u4e24\u8f6e\u590d\u5ba1\uff0c19 \u4e2a\u53d6\u8bc1\u573a\u666f\uff09\\n- **CRITICAL**\uff1a\u5b54\u5f84\u6539 100 \u541e\u6389\u96f6\u4ef6\u2192\u7ed3\u679c\u5bf9\u8c61\u9759\u9ed8\u6f02\u79fb\u6210\u5200\u5177\u62a5 ok:True \u2192 \u6f02\u79fb\u65ad\u8a00\u3002\\n- **IMPORTANT**\uff1a\u6539\u53c2\u6570\u53ef\u628a\u5b54\u6539\u6210\u7f3a\u53e3/\u5207\u4e24\u534a\u5168\u653e\u884c\u2014\u2014\\\"\u4f53\u79ef\u53d8\u5316\u2260\u7279\u5f81\u8bed\u4e49\u4fdd\u6301\\\" \u2192 \u5b54\u5b8c\u6574\u6027\u5feb\u7167+\u5355 solid \u65ad\u8a00\u3002\\n- **\u590d\u5ba1\u6293\u4fee\u590d\u7684\u4fee\u590d \u00d72**\uff1a\u865a\u6784\u4e0d\u53d8\u91cf\u81f4\u534a\u5706\u69fd\u6587\u6863\u5168\u91cf\u8bef\u62d2\uff08\u751f\u4ea7\u53ef\u8fbe\uff09\u2192 \u6539\u524d\u5b9e\u9645\u8ba1\u6570\u57fa\u7ebf+\u5200\u5177\u6876\u8fc1\u79fb\uff1b\u4f53\u79ef\u4e0d\u53d8\u653e\u884c\u6f0f\\\"\u94fe\u672a\u91cd\u7b97\\\" \u2192 **FreeCAD Touched \u72b6\u6001\u8d26\u672c\u5224\u636e**\uff08\u5b9e\u73b0\u8005\u771f\u673a\u63a8\u7ffb Shape \u56de\u8bfb\u65b9\u6848\u2014\u2014primitive Shape \u5373\u65f6\u91cd\u5efa\u65e0\u5224\u522b\u529b\uff09\u3002\\n- \u7ec8\u9a8c APPROVE\uff1b\u7559\u6863\uff1a\u5185\u6838\u7ea7\u90e8\u5206\u91cd\u7b97\u76f2\u533a\uff08Medium\uff09\u3001\u540c\u5f84\u6df7\u5408\u8fc1\u9519\u5200\uff08Minor \u54cd\u4eae\uff09\u3002\\n\\n## \u9a8c\u6536\\n**190 fast + 39 slow \u5168\u7eff** + ruff \u6e05\u96f6 + \u9ed1\u76d2\u56db\u6b65\u5168\u8fc7\uff08\u542b\u5371\u9669\u4fee\u6539\u54cd\u4eae\u88ab\u62d2\uff09\u3002\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-eb7360e234422676\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 2,\n    \"deletions\": 0,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/05a5bc7ebc982e5ee76cdabe7b6fcd2f14f27186/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-8f8ee01ff648d0f4\",\n    \"filename\": \"docs/superpowers/plans/2026-06-10-round6b-modify.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 531,\n    \"deletions\": 0,\n    \"changes\": 531,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/05a5bc7ebc982e5ee76cdabe7b6fcd2f14f27186/docs%2Fsuperpowers%2Fplans%2F2026-06-10-round6b-modify.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-9d8f05c0523a9e65\",\n    \"filename\": \"docs/superpowers/specs/2026-06-10-round6b-modify-design.md\",\n    \"label\": \"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-bad_chains-2827a5ab7ada56ff", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 323846, "scanner": "foundry_dataset", "fingerprint": "e39ea70658e1facbe6a74c570639701d49b55b71c1fc5c56a6e9565cd3ebea81", "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": "wangtao9090/VibeCAD#2", "human_labels": ["api_or_backend", "docs_or_claims", "mock_placeholder", "source_or_other", "test_or_ci", "ui_or_frontend"], "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": "wangtao9090/VibeCAD", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-3d8ac0bbc37c44ae", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 20, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 8, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 8, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_unresolved", "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: bad_chains\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#2\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: wangtao9090/VibeCAD#2\nRepo: wangtao9090/VibeCAD\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: 20\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'docs_or_claims': 2, 'ui_or_frontend': 8, 'api_or_backend': 1, 'test_or_ci': 8}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9364db16e373dee7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/wangtao9090/VibeCAD/pull/2\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: wangtao9090/VibeCAD\\nAuthor: wangtao9090 (User)\\nURL: https://github.com/wangtao9090/VibeCAD/pull/2\\nTitle: feat: Round 2 \u8bed\u4e49\u5efa\u6a21 Walking Skeleton\uff08\u4ea7\u54c1\u6838\u5fc3\u95ed\u73af\u5b9e\u673a\u9a8c\u8bc1\uff09\\nBody:\\n## Summary\\n\\n\u5728\u5df2\u843d\u5730\u7684\u8fd0\u884c\u65f6\u4e4b\u4e0a\u6253\u901a\u4ea7\u54c1\u6838\u5fc3\u95ed\u73af\uff1a**\u81ea\u7136\u8bed\u8a00 \u2192 \u53c2\u6570\u5316\u5355\u96f6\u4ef6 \u2192 \u53ef\u5236\u9020\u6587\u4ef6\uff08STEP/STL\uff09**\u3002\u672c\u8f6e = \u5782\u76f4\u5207\u7247\uff08Part \u56fe\u5143 + \u5e03\u5c14 + \u5bfc\u51fa + \u6587\u672c\u8bca\u65ad\uff09\uff0c\u8bc1\u660e M1 \u5355\u96f6\u4ef6 MVP \u9aa8\u67b6\u6210\u7acb\u3002\\n\\n- **`freecad_env.py`**\uff1a\u628a `prepare_freecad_import()` + `silence_fd1()` \u62bd\u6210\u5171\u4eab\u6a21\u5757\uff0cengine \u590d\u7528\u800c\u4e0d import server\uff08\u89e3\u5faa\u73af\u4f9d\u8d56\uff09\u3002\\n- **`engine/session.py`**\uff1a\u8fdb\u7a0b\u5185 FreeCAD \u6587\u6863\u4f1a\u8bdd\uff08D1a\uff09\u2014\u2014\u5355\u6d3b\u52a8\u6587\u6863\u3001\u4e8b\u52a1\u5305\u88c5\uff08open/commit/abort\uff09\u3001recompute\u3001**\u51e0\u4f55\u65ad\u8a00**\uff08spec \u00a72.4\uff1a`recompute()` \u8fd4\u56de\u503c\u4e0d\u53ef\u4fe1\uff0c\u65ad\u8a00\u662f\u552f\u4e00\u53ef\u4fe1\u6210\u529f\u5224\u636e\uff09\u3001`.FCStd` checkpoint\u3001`get_result_shape`\u3002FreeCAD \u61d2\u52a0\u8f7d\uff0c\u4ec5\u5728 conda \u8fd0\u884c\u65f6\u8fdb\u7a0b\u5185 import\u3002\\n- **`tools/modeling.py`**\uff1a`new_document` / `add_box`\uff08Part::Box\uff09/ `add_cylinder`\uff08Part::Cylinder\uff09/ `boolean_cut`\uff08Part::Cut\uff0c\u53c2\u6570\u5316\u53ef\u7f16\u8f91\uff09\u3002\\n- **`tools/export.py`**\uff1a`export_part` \u5bfc\u51fa STEP/STL\u3002\\n- **`feedback/text.py`**\uff1a`describe_shape` \u6587\u672c\u8bca\u65ad\uff08\u4f53\u79ef/\u5305\u56f4\u76d2/\u8d28\u5fc3/\u5b9e\u4f53\u6570/\u6709\u6548\u6027\uff09\u3002\\n- **`server.py`**\uff1a\u6ce8\u518c 6 \u4e2a\u65b0 `@mcp.tool()`\uff0c\u6a21\u5757\u7ea7\u5355\u4f8b `_session`\uff0c\u590d\u7528 smoke_cad \u540c\u6b3e\u4e09\u6001\u5b88\u536b\uff1bserver \u6a21\u5757\u7ea7\u4ecd\u4e0d import FreeCAD\uff08\u4fdd\u63e1\u624b\uff09\u3002\\n\\n## \u5b9e\u673a\u9a8c\u6536\uff08macOS arm64\uff0c\u771f\u5b9e FreeCAD\uff0c\u590d\u7528 .vibecad-test-runtime env\uff09\\n\\n`VIBECAD_RUN_INTEGRATION=1 uv run pytest -m slow` \u2192 **6 \u6761\u6162\u6d4b\u8bd5\u5168\u8fc7**\uff080.72s\uff09\uff1a\u6587\u6863\u751f\u547d\u5468\u671f+checkpoint\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-1fa211931aa96517\",\n    \"filename\": \".gitignore\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 0,\n    \"changes\": 3,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/294d3cd1fd7ef40006232001eef013dd11085227/.gitignore\"\n  },\n  {\n    \"id\": \"github-pr-file-file-f7b7d2c8cb4ca5a1\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 18,\n    \"deletions\": 1,\n    \"changes\": 19,\n    \"blob_url\": \"https://github.com/wangtao9090/VibeCAD/blob/294d3cd1fd7ef40006232001eef013dd11085227/README.md\"\n  },\n  {\n    \"id\": \"github-pr-f\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "comment-chain-pattern-bad_chains-070111b0ce2a82e5", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_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": "wangtao9090/VibeCAD", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 327429, "scanner": "foundry_dataset", "fingerprint": "12bba4cdfeeb540a1d6a59c6c1fc824895d329f0fa5c535a8673089d6de918f9", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 5, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 5, "generated_provenance": 1, "agent_instruction_gap": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "self_attested_unverified": 3, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"self_attested_unverified": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 67, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 14, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 27, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 14, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#8", "issue_number": "8", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e65574fa2dad3dbd", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 25, "api_or_backend": 5, "docs_or_claims": 15, "ui_or_frontend": 25}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#8\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#8\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#8\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 8\nGraph consistency label: weak_supervision_needs_review\nNodes: 27\nEdges: 67\nNode types: {'pr_file': 14, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 14, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 5, 'test_or_ci': 5, 'docs_or_claims': 3, 'self_attested_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'self_attested_or_generated_fix_unverified': 1, 'generated_provenance': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'self_attested_unverified': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-16f8c0f81b502790", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 327428, "scanner": "foundry_dataset", "fingerprint": "79aa754a8b8c9b899d8fd2e51cbcf70df829e67a34e31d4cccf863f16fb9ebd1", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 4, "api_or_backend": 1, "docs_or_claims": 3, "ui_or_frontend": 2, "generated_provenance": 1, "agent_instruction_gap": 1, "self_attested_unverified": 3, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"self_attested_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 42, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 10, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 10, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 10, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#7", "issue_number": "7", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ea68286c3718ad30", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 16, "api_or_backend": 4, "docs_or_claims": 12, "ui_or_frontend": 8}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#7\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#7\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 20\nEdges: 42\nNode types: {'pr_file': 10, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 10, 'comment_chain_touches_file': 10, 'issue_chain_touches_file': 10, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 4, 'docs_or_claims': 3, 'self_attested_unverified': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'api_or_backend': 1, 'self_attested_or_generated_fix_unverified': 1, 'generated_provenance': 1}\nOutcomes: {'self_attested_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-7d62c0bf97f4a021", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: wangtao9090/VibeCAD"}, "properties": {"repobilityId": 327427, "scanner": "foundry_dataset", "fingerprint": "53e0b7e8ba5773885b1f15d6c375167577825e35ca6e1e170f9714af38c71375", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 8, "api_or_backend": 1, "docs_or_claims": 2, "ui_or_frontend": 8, "source_or_other": 1, "mock_placeholder": 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": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 55, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 20, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 29, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 20, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "wangtao9090/VibeCAD#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "wangtao9090/VibeCAD", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-801dd45ada6d39b1", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 32, "api_or_backend": 4, "docs_or_claims": 8, "ui_or_frontend": 32, "source_or_other": 4}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#2\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: wangtao9090/VibeCAD\nThread: wangtao9090/VibeCAD#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: wangtao9090/VibeCAD#2\nRepo: wangtao9090/VibeCAD\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 29\nEdges: 55\nNode types: {'pr_file': 20, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 20, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 8, 'test_or_ci': 8, 'not_resolved_or_not_observed': 3, 'docs_or_claims': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'source_or_other': 1, 'api_or_backend': 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 real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/wangtao9090/VibeCAD", "source_id": "graph-query-motif_query-3b4951770f83acb2", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "wangtao9090/VibeCAD", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"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-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b54d5bb7587edd5b", "level": "note", "message": {"text": "Very large file: tests/test_tools_features.py (1752 lines)"}, "properties": {"repobilityId": "eec5f7112617b86b", "scanner": "scanner-primary", "fingerprint": "b54d5bb7587edd5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "1d4f1ce65a8ec20b", "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": "c90cfc60a53de16f", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-bdb8b4c30ff4cebc", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/vibecad/runtime/micromamba.py:33"}, "properties": {"repobilityId": "b8872f18ab337b47", "scanner": "scanner-primary", "fingerprint": "bdb8b4c30ff4cebc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ddc53cdabbe87c84", "level": "none", "message": {"text": "Commented-code block (16 lines) in src/vibecad/tools/modify.py:165"}, "properties": {"repobilityId": "85bb375269c90d14", "scanner": "scanner-primary", "fingerprint": "ddc53cdabbe87c84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af5b32ec95b354f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/vibecad/tools/sketch.py:240"}, "properties": {"repobilityId": "b4347355e2c58c54", "scanner": "scanner-primary", "fingerprint": "af5b32ec95b354f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e75bc7442fefd9d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/vibecad/feedback/multiview.py:16"}, "properties": {"repobilityId": "6838e7b950b5b705", "scanner": "scanner-primary", "fingerprint": "7e75bc7442fefd9d", "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": "9e2602424839a918", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}