{"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: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined unresolved feedback: SplitMyGear/mcp-server-splitmygear"}, "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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#2\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 14\nEdges: 26\nNode types: {'pr_file': 5, 'link_quality': 3, 'thread': 1, 'repo': 1,"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear"}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#7\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 7\nGraph consistency label: supported_by_high_confidence_link\nNodes: 34\nEdges: 65\nNode types: {'commit': "}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#9\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#9\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 1, 'source_or_other': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e354bd1a9ab59104\",\n    \""}, "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: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined test ci gap after feedback: SplitMyGear/mcp-server-splitmygear"}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#7\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 7\nGraph consistency label: supported_by_high_confidence_link\nNodes: 34\nEdges: 65\nNode types: {'commit': 9, 'link_quality': 7, 'p"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined bad chains: SplitMyGear/mcp-server-splitmygear"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#2\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#2\nRepo: SplitMyGear/mcp-server-splitmygear\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: 5\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 2, 'test_or_ci': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d42e96196547679e\",\n    \"kind\": \"pull_request_body\",\n    \"lab"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_failing_ci_claim", "name": "Foundry mined claimed resolved with failing ci: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined claimed resolved with failing ci: SplitMyGear/mcp-server-splitmygear"}, "fullDescription": {"text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#17\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#17\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#17\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 17\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 53\nNode type"}, "properties": {"scanner": "foundry_dataset", "category": "ci", "severity": "critical", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: SplitMyGear/mcp-server-splitmygear"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#9\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#9\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#9\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 9\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 30\nNode types: {'link_q"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: SplitMyGear/mcp-server-splitmygear", "shortDescription": {"text": "Foundry mined mock as real or placeholder: SplitMyGear/mcp-server-splitmygear"}, "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: needs_more_evidence\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#2\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 14\nEdges: 26\nNode types: {'pr_file': 5, 'link_quality':"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-7f80165fd0456f41", "name": "Stray `console.log` in TS/JS \u2014 __tests__/e2e/mcp.test.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 __tests__/e2e/mcp.test.ts:26"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-66d6ff7519794018", "name": "`fetch()` without try/.catch or AbortSignal \u2014 __tests__/e2e/mcp.test.ts:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 __tests__/e2e/mcp.test.ts:50"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-378d830bee181e32", "name": "Commented-code block (5 lines) in src/app/api/mcp/route.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/mcp/route.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2eafc3188c36bb02", "name": "3 env vars used in code but missing from .env.example", "shortDescription": {"text": "3 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `BACKEND_API_URL`, `MCP_BACKEND_JWT_SECRET`, `MCP_SERVER_URL`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20117"}, "properties": {"repository": "SplitMyGear/mcp-server-splitmygear", "repoUrl": "https://github.com/SplitMyGear/mcp-server-splitmygear", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 361428, "scanner": "foundry_dataset", "fingerprint": "38dde57595cfda35dee6941b439a176cfc4e8a713910036823ae470dfe1e2ce9", "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, "docs_or_claims": 2, "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": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-539c7b0058143bed", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 12, "docs_or_claims": 8}}, "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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#2\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 14\nEdges: 26\nNode types: {'pr_file': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, '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': 3, '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, '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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-b378def9d1de84ed", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 345206, "scanner": "foundry_dataset", "fingerprint": "5d1720c09474dc5c08423dfed9bede87a552bc4aec497745e1891bba92bd3f5c", "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": 1, "test_ci_gap": 2, "ui_or_frontend": 4, "deployment_env_gap": 1, "verification_or_tests": 9, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_disagreement": 2, "comment_has_related_commit_context": 3, "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": 65, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "thread_touches_file": 5, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 3, "comment_chain_links_commit": 11, "comment_chain_touches_file": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 34, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 3, "pr_file": 5, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#7", "issue_number": "7", "quality_tiers": {"high_confidence": 4, "assumption_check": 2, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-dce21a676896320b", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 6, "ui_or_frontend": 24}}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#7\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 7\nGraph consistency label: supported_by_high_confidence_link\nNodes: 34\nEdges: 65\nNode types: {'commit': 9, 'link_quality': 7, 'pr_file': 5, 'comment': 3, 'comment_chain': 3, 'alignment': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 15, 'comment_chain_links_commit': 11, 'chain_has_link_quality': 7, 'thread_touches_file': 5, 'issue_chain_touches_file': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 9, 'ambiguous_needs_more_evidence': 5, 'ui_or_frontend': 4, 'comment_has_related_commit_context': 3, 'test_ci_gap': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'test_or_ci': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'high_confidence': 4, 'assumption_check': 2, 'weak_supervision': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-be2ed954a2ae0c4a", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 345205, "scanner": "foundry_dataset", "fingerprint": "ca3b9543b8fab9e9a0603f2aca63f1a93b8f0c4069ce2ea06c2f3aafd48dc50c", "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": 1, "test_ci_gap": 2, "api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1, "deployment_env_gap": 1, "verification_or_tests": 7, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_disagreement": 2, "comment_has_related_commit_context": 3, "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": 60, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "thread_touches_file": 4, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 3, "comment_chain_links_commit": 11, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 31, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 3, "pr_file": 4, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#6", "issue_number": "6", "quality_tiers": {"high_confidence": 4, "assumption_check": 2, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-8ea86cf5918dc456", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 6, "api_or_backend": 6, "ui_or_frontend": 6, "source_or_other": 6}}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#6\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#6\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 31\nEdges: 60\nNode types: {'commit': 7, 'link_quality': 7, 'pr_file': 4, 'comment': 3, 'comment_chain': 3, 'alignment': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 12, 'comment_chain_links_commit': 11, 'chain_has_link_quality': 7, 'thread_touches_file': 4, 'issue_chain_touches_file': 4, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 5, 'comment_has_related_commit_context': 3, 'test_ci_gap': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'test_or_ci': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'high_confidence': 4, 'assumption_check': 2, 'weak_supervision': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-235baf625d8e2771", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 345204, "scanner": "foundry_dataset", "fingerprint": "8bf6c59b93cff21040ff28b660101f41b50b4bb98459c541723f704b833f9d4c", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_or_ci": 1, "test_ci_gap": 1, "docs_or_claims": 1, "ui_or_frontend": 2, "ci_failure_signal": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_failing_ci_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 4, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 2, "comment_chain_links_commit": 4, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 2, "pr_file": 4, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#15", "issue_number": "15", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ad55c345ebc7da27", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 5, "docs_or_claims": 5, "ui_or_frontend": 10}}, "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: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#15\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#15\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#15\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 15\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 41\nNode types: {'link_quality': 5, 'pr_file': 4, 'commit': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 8, 'chain_has_link_quality': 5, 'thread_touches_file': 4, 'comment_chain_links_commit': 4, 'issue_chain_touches_file': 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_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'claimed_resolved_with_failing_ci_signal': 3, 'ui_or_frontend': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'test_or_ci': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'bug_fix': 1, 'ci_failure_signal': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-84adb6a92edaa923", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 345203, "scanner": "foundry_dataset", "fingerprint": "fcf044e3a4b5cc2bfc149cf2289250411363fe3b2da1523713fdb5707b1793e4", "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": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "source_or_other": 1, "deployment_env_gap": 1, "dependency_or_build": 2, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_disagreement": 1, "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": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 47, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 5, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 2, "comment_chain_links_commit": 7, "comment_chain_touches_file": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 5, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#14", "issue_number": "14", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-2c6fa6a924242d48", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 5, "ui_or_frontend": 5, "source_or_other": 5, "dependency_or_build": 10}}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#14\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#14\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#14\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 14\nGraph consistency label: supported_by_high_confidence_link\nNodes: 25\nEdges: 47\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 10, 'comment_chain_links_commit': 7, 'thread_touches_file': 5, 'chain_has_link_quality': 5, 'issue_chain_touches_file': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 4, 'dependency_or_build': 2, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'test_or_ci': 1, 'ui_or_frontend': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-81a0041caf19ae6b", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 345202, "scanner": "foundry_dataset", "fingerprint": "a21d4d7421e61a3f460a55cfad7b91ce771ca58260c5bd581f7f47f1129b393e", "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": {"api_or_backend": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "generated_provenance": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "self_attested_unverified": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"self_attested_unverified": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#13", "issue_number": "13", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-58e2b3c0be88664c", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"api_or_backend": 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: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#13\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#13\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#13\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 13\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 22\nEdges: 31\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'api_or_backend': 1, 'comment_has_related_commit_context': 1, 'generated_provenance': 1, 'ci_failure_signal': 1, 'self_attested_or_generated_fix_unverified': 1, 'self_attested_unverified': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'self_attested_unverified': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-ab9b9dab2f924f5d", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 345201, "scanner": "foundry_dataset", "fingerprint": "ab2b537b985f80f54831062eab4ffc5fc9b922cd005e866e718854a8d0b12d8c", "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": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_disagreement": 1, "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": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 2, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 2, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#11", "issue_number": "11", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-444fb027a3f7b112", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 5, "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: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#11\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#11\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#11\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 11\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 35\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'pr_file': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'comment_chain_touches_file': 4, 'thread_has_comment': 2, 'thread_touches_file': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 4, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'test_or_ci': 1, 'ui_or_frontend': 1, 'ci_failure_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-965d646be3cd3b09", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 300873, "scanner": "foundry_dataset", "fingerprint": "301b2b2c87d4d9ca1eb90cd2a236a88f993963b6017ae639c35f24c1a4885745", "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": "SplitMyGear/mcp-server-splitmygear#9", "human_labels": ["deployment_env_gap", "docs_or_claims", "security_auth_secret", "source_or_other"], "issue_number": "9", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-97c1fc81bdc45e04", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1, "source_or_other": 2}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#9\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#9\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 1, 'source_or_other': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e354bd1a9ab59104\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/9\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/9\\nTitle: docs(M10): reconcile README/manifest/smithery with the auth lockdown\\nBody:\\nM10. Docs/DXT-manifest/Smithery descriptor still advertised a public tier + marked tools Public \u2014 wrong since M1 (auth mandatory, unauth\u2192401). Reconciled auth model, per-tool Auth/User column, required MCP_API_KEY in env list, manifest api_key required:true. Docs-only, no deploy.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-eb3be6017e08480f\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/9#issuecomment-4697944710\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/9#issuecomment-4697944710\\nTitle: \\nBody:\\n[vc]: #CbPLRy1LIKcUe6RLW4bKEmQb2Lh3X5tbObFXekId3DI=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtY3Atc2VydmVyLXNwbGl0bXlnZWFyIiwicHJvamVjdElkIjoicHJqX1REaEJ4NTIxQTE5MVc5cjQzb1Zod0pyQkNYeHYiLCJpbnNwZWN0b3JVcmwiOiJodHRwczovL3ZlcmNlbC5jb20vbWl6YW5oZW1hbmktOTAyNHMtcHJvamVjdHMvbWNwLXNlcnZlci1zcGxpdG15Z2Vhci9EZVp4d2pKeWJjbllhcWtpZEF6NkJDNkRrNEtkIiwicHJldmlld1VybCI6Im1jcC1zZXJ2ZXItc3BsaXRteWdlYXItZ2l0LWZpLWU1YWIyZC1taXphbmhlbWFuaS05MDI0cy1wcm9qZWN0cy52ZXJjZWwuYXBwIiwibmV4dENvbW1pdFN0YXR1cyI6IkRFUExPWUVEIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6Im1jcC1zZXJ2ZXItc\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-assumption_checks-9d8b580fda88e8f9", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 300872, "scanner": "foundry_dataset", "fingerprint": "ceb27ffbf586b1a08f01576d2fecfdcb79af587682e39d660f289943e795d554", "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": "SplitMyGear/mcp-server-splitmygear#7", "human_labels": ["deployment_env_gap", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "7", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-bcecb448463e70a3", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "ui_or_frontend": 4}, "linked_commit_count": 11, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#7\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 3\nLinked commit count: 11\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'test_ci_gap': 2, 'deployment_env_gap': 1}\nPolarities: {'bad': 3}\nChanged file labels: {'test_or_ci': 1, 'ui_or_frontend': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-52aeabe4609e2f2f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/7\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/7\\nTitle: fix(SPLIT-254): M5 unify AI provider key across the MCP server\\nBody:\\n## SPLIT-254 (M5) \u2014 unify the AI provider key across the MCP server\\n\\n### The bug\\n`ai-service.ts` read `OPENROUTER_API_KEY` (openrouter baseURL) while `content.ts` and `messaging.ts` read `OPENAI_API_KEY` (default OpenAI). When only one key is provisioned in prod, the tools on the *other* key go silently dead \u2014 that killed `generate_listing_description`, `improve_listing_title`, `generate_ai_message_draft`, and embedding-backed search (`get_personalized_recommendations` / vector search). The split also broke `ai-service.test.ts` (it sets `OPENAI_API_KEY` but the code checked `OPENROUTER_API_KEY`).\\n\\n### The fix \u2014 one shared client\\nNew `src/lib/ai-client.ts` resolves a **single provider with a fallback chain** (mirrors the marketplace's OPENCODE \u2192 OPENROUTER pattern):\\n- `OPENCODE_API_KEY` \u2192 `opencode.ai/zen/v1` (`deepseek-v4-flash-free`)\\n- else `OPENROUTER_API_KEY` \u2192 `openrouter.ai/api/v1` (`meta-llama/llama-3.3-\"\n  },\n  {\n    \"id\": \"github-feedback-comment-b6b0626829adc44e\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/7#issuecomment-4697868500\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/7#issuecomment-4697868500\\nTitle: \\nBody:\\nCI frozen until 2026-07-01 (Actions quota); validated locally: tsc --noEmit clean, next build\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-assumption_checks-e50dae5ffec76207", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 300871, "scanner": "foundry_dataset", "fingerprint": "e35fa258973722b3493de9076facab5f1f285121eaab58955afb245044185ca1", "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": "SplitMyGear/mcp-server-splitmygear#6", "human_labels": ["api_or_backend", "deployment_env_gap", "source_or_other", "test_ci_gap", "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.92, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-30f27db1d2f0840f", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1}, "linked_commit_count": 11, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#6\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#6\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 3\nLinked commit count: 11\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 4\nLabels: {'test_ci_gap': 2, 'deployment_env_gap': 1}\nPolarities: {'bad': 3}\nChanged file labels: {'source_or_other': 1, 'test_or_ci': 1, 'api_or_backend': 1, 'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a56aca862db3f613\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/6\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/6\\nTitle: fix(SPLIT-253): M6 .or() injection hardening + M9 uuid validation & tool annotations\\nBody:\\n## SPLIT-253 (remaining) \u2014 M6 PostgREST `.or()` injection + M9 zod uuid / tool annotations\\n\\nM3 (IDOR principal-threading) merged in #5. This finishes the chunk's remaining HIGH/MED items.\\n\\n### M6 \u2014 `.or()` filter injection (HIGH)\\n- **listings.ts search** \u2014 the free-text `query` was interpolated raw into `name.ilike.%\u2026%,description.ilike.%\u2026%` inside a PostgREST `.or()` \u2014 the genuine injection vector (messaging.ts was already guarded; listings was not). Added `sanitizeOrLikeValue()` that strips the PostgREST filter-delimiter chars (`,` `(` `)` `*` `\\\"` `\\\\`) so leftover text can only ever be a literal LIKE pattern, never a new condition or group. Skip the `.or()` if the query sanitizes to empty.\\n- **listings.ts checkAvailability** \u2014 `checkIn`/`checkOut` are interpolated into `checkIn.lte.\u2026,checkOut.gte.\u2026`. Added `assertIsoDateLike()` (requires a real `YYYY-MM-DD\u2026` ISO prefix that also `Date.p\"\n  },\n  {\n    \"id\": \"github-feedback-comment-728c20dc3a36174a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/6#issuecomment-4697308715\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/6#issuecomment-4697308715\\nTitle: \\nBody:\\nCI frozen until 2026-07-01 (Actions quota); validat\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-assumption_checks-92a09122bbe955f4", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 300870, "scanner": "foundry_dataset", "fingerprint": "4227fe3990ef08c37a1a763141654d67eac2d59bc6dd9883b2704e14a13738f4", "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": "SplitMyGear/mcp-server-splitmygear#14", "human_labels": ["dependency_or_build", "deployment_env_gap", "source_or_other", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "14", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-5bc7a528a38c8d40", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "ui_or_frontend": 1, "source_or_other": 1, "dependency_or_build": 2}, "linked_commit_count": 7, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#14\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#14\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 7\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 1, 'test_or_ci': 1, 'dependency_or_build': 2, 'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-51b3d9415cace982\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/14\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/14\\nTitle: fix(SPLIT-226 follow-up): drop dead api_keys path \u2014 MCP holds zero Supabase/Stripe deps\\nBody:\\nThe only remaining Supabase reference was the optional `api_keys` lookup in `auth.ts`. The `api_keys` table **does not exist** in the DB (verified via Supabase), so that path was dead \u2014 every request on it errored \u2192 \\\"Invalid API key\\\". Removed it.\\n\\n- `auth.ts`: two ways in remain (operator `MCP_API_KEY` \u2192 admin; backend JWT bearer \u2192 forwarded). No Supabase client anywhere.\\n- Dropped **`@supabase/supabase-js`** AND **`stripe`** from package.json (both unused \u2014 the MCP reads/writes via the backend REST API which owns the DB + payments).\\n- `.env.example` + tests updated.\\n\\nValidated locally: **16 suites / 123 tests**, tsc clean, `next build` exit 0, coverage 78/68/65/81. CI frozen until 2026-07-01.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-c313412de9bf7960\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/14#issuecomment-4699401872\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/14#issuecomment-4699401872\\nTitle: \\nBody:\\n[vc]: #ywQ1KX067J9aJlFwJ5zEw0BFg5fLfzLmOkK5+kl68UA=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtY3Atc2VydmVyLXNwbGl0bXlnZWFyIiwicHJvamVjdElkIjoicHJqX1REaEJ4NTIxQTE5MVc5cjQzb1Zod0pyQkNYeHYiLCJp\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-assumption_checks-11b45ba0e39ff7a6", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 300869, "scanner": "foundry_dataset", "fingerprint": "9fa8893f1721e70dfff52187d7d3b53b749c12ca599b4955ef95f0e0d272362c", "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": "SplitMyGear/mcp-server-splitmygear#13", "human_labels": ["api_integration_gap", "api_or_backend", "deployment_env_gap"], "issue_number": "13", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-b4eacc42b43e45cd", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1}, "linked_commit_count": 6, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#13\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#13\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 6\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 1\nLabels: {'api_integration_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-42509d3c1bafd2b5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/13\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/13\\nTitle: docs(SPLIT-226): ADR 0001 \u2014 MCP is a thin client of the backend REST API\\nBody:\\nDocuments the client-of-the-API rule (no service-role DB access; forward the callers JWT; public reads hit public GET endpoints) for all future surfaces. Completes the SPLIT-226 ADR acceptance criterion. Docs-only \u2014 no deploy.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-f3bf2633fed6bf72\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/13#issuecomment-4699320324\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/13#issuecomment-4699320324\\nTitle: \\nBody:\\n[vc]: #eK6al54+MtIuZB0g7UJi3IlQReVBsaPi0aODDK3Zqp4=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtY3Atc2VydmVyLXNwbGl0bXlnZWFyIiwicHJvamVjdElkIjoicHJqX1REaEJ4NTIxQTE5MVc5cjQzb1Zod0pyQkNYeHYiLCJpbnNwZWN0b3JVcmwiOiJodHRwczovL3ZlcmNlbC5jb20vbWl6YW5oZW1hbmktOTAyNHMtcHJvamVjdHMvbWNwLXNlcnZlci1zcGxpdG15Z2Vhci83ZzJ1RENDUDVjbmJKM1RCSzRuc3ZKcnZnUUt1IiwicHJldmlld1VybCI6Im1jcC1zZXJ2ZXItc3BsaXRteWdlYXItZ2l0LWRvLTNlNjc5Mi1taXphbmhlbWFuaS05MDI0cy1wcm9qZWN0cy52ZXJjZWwuYXBwIiwibmV4dENvbW1pdFN0YXR1cyI6IkRFUExPWUVEIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6Im1jcC1zZXJ2ZXItc3BsaXRteWdlYXItZ2l0LWRvLTNlNjc5Mi1taXphbmhlbWFuaS05MDI0cy1wcm9qZWN0cy52ZXJjZWwuYXBwIn0sInJvb3REaXJlY3RvcnkiOm\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-assumption_checks-452feac5b51d6b56", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 300868, "scanner": "foundry_dataset", "fingerprint": "d0a0393fddccc9afaf37c604b7db2f36d4821c7888fcc73dbc7ad5da0a3a04fe", "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": "SplitMyGear/mcp-server-splitmygear#11", "human_labels": ["deployment_env_gap", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "11", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-0e5eddde509a05aa", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "ui_or_frontend": 1}, "linked_commit_count": 6, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#11\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#11\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 6\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 2\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'test_or_ci': 1, 'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f4f4cbfc99e60ae8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/11\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/11\\nTitle: fix(SPLIT-226): migrate experience read tools to the backend\\nBody:\\nMigrates `searchExperiences` + `getExperienceDetails` off the direct Supabase service-role reads onto the public backend endpoints (`GET /experiences`, `GET /experiences/:id` + `/schedules`). `experiences.ts` no longer imports `@/lib/supabase` \u2014 fully a backend REST client now. Part of completing SPLIT-226 (read-tool migration).\\n\\nValidated locally: **20 suites / 129 tests**, tsc clean, next build exit 0, coverage 75% (floors 30). CI frozen until 2026-07-01.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-ba495f39459cfe9c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/11#issuecomment-4699139323\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/11#issuecomment-4699139323\\nTitle: \\nBody:\\n[vc]: #YXlATQMa3JarenofZ1nvj9tm55jpoeBdtxRuguPtxuI=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtY3Atc2VydmVyLXNwbGl0bXlnZWFyIiwicHJvamVjdElkIjoicHJqX1REaEJ4NTIxQTE5MVc5cjQzb1Zod0pyQkNYeHYiLCJpbnNwZWN0b3JVcmwiOiJodHRwczovL3ZlcmNlbC5jb20vbWl6YW5oZW1hbmktOTAyNHMtcHJvamVjdHMvbWNwLXNlcnZlci1zcGxpdG15Z2Vhci8zRXdvSGd4UkIyTWFpd0J6cXNtZ2VSaFZIdFVjIiwicHJldmlld1VybCI6Im1jcC1zZXJ2ZXItc3BsaXRteWdlYXItZ2l0LWZpLTE5ZWYyNS1taXphbmhlbWFuaS05MDI0cy1wcm9qZWN0cy52ZXJjZWwuYXBwIiwibmV4dENvbW1pdFN0YXR1cyI6IkRF\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-assumption_checks-603cf2265eb71f46", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 300867, "scanner": "foundry_dataset", "fingerprint": "3bc5232bcd780361f6913d454ec28a96532f90144bd502dd78a01f505758c10c", "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": "SplitMyGear/mcp-server-splitmygear#1", "human_labels": ["api_or_backend", "dependency_or_build", "docs_or_claims", "security_auth_secret", "source_or_other", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.627, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ad2cd107a1605a9c", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 9, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 2, "docs_or_claims": 1, "ui_or_frontend": 3, "source_or_other": 2, "dependency_or_build": 1}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#1\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#1\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 9\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'api_or_backend': 2, 'source_or_other': 2, 'dependency_or_build': 1, 'ui_or_frontend': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dac73ad58ed2177b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/1\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/1\\nTitle: rebrand: SplitMyGear -> Splitt (MCP server)\\nBody:\\n## Summary\\n\\n- Updates manifest.json: name, display_name, description -> Splitt\\n- Updates AI system prompts and tool descriptions in all source tools\\n- Updates smithery.yaml API key description\\n- Updates OpenAPI spec and docs\\n- Renames package.json name to splitt-mcp\\n- GitHub org/repo URL preserved (https://github.com/SplitMyGear/mcp-server-splitmygear) pending infrastructure migration\\n\\n## Test plan\\n\\n- [x] Zero residual SplitMyGear brand strings in source files (1 intentional GitHub URL remains)\\n\\nGenerated with Claude Code\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-9a91b87e327460bc\",\n    \"filename\": \"docs/mcp-tools.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/blob/f6cb1100e9903a5a8e69028d79ab96ec2bbb5622/docs%2Fmcp-tools.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-d14dec3342ef4bb1\",\n    \"filename\": \"docs/openapi.json\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 4,\n    \"deletions\": 4,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/blob/f6cb1100e9903a5a8e69028d79ab96ec2bbb5622/docs%2Fopenapi.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-52cb4178ea869fe7\",\n    \"filename\": \"manifest.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 79,\n    \"deletions\": 25,\n    \"changes\": 104,\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-assumption_checks-7f117356ef5942d3", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 336687, "scanner": "foundry_dataset", "fingerprint": "551e3fd5348f175a986fa239586b59362b19558cdc5ae6eee6e4b7f2de9937d4", "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": 1, "test_ci_gap": 2, "ui_or_frontend": 4, "deployment_env_gap": 1, "verification_or_tests": 9, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_disagreement": 2, "comment_has_related_commit_context": 3, "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": 65, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "thread_touches_file": 5, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 3, "comment_chain_links_commit": 11, "comment_chain_touches_file": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 34, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 3, "pr_file": 5, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#7", "issue_number": "7", "quality_tiers": {"high_confidence": 4, "assumption_check": 2, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-2fa6fa6a6fca73c8", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 6, "ui_or_frontend": 24}}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#7\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#7\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 7\nGraph consistency label: supported_by_high_confidence_link\nNodes: 34\nEdges: 65\nNode types: {'commit': 9, 'link_quality': 7, 'pr_file': 5, 'comment': 3, 'comment_chain': 3, 'alignment': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 15, 'comment_chain_links_commit': 11, 'chain_has_link_quality': 7, 'thread_touches_file': 5, 'issue_chain_touches_file': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 9, 'ambiguous_needs_more_evidence': 5, 'ui_or_frontend': 4, 'comment_has_related_commit_context': 3, 'test_ci_gap': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'test_or_ci': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'high_confidence': 4, 'assumption_check': 2, 'weak_supervision': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-9390b60ee4aa6eb2", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 336686, "scanner": "foundry_dataset", "fingerprint": "d2430cfdf25168155e89c3dbfa39308391f21087f9d73b0224f9dd75f4e4e1cd", "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": 1, "test_ci_gap": 2, "api_or_backend": 1, "ui_or_frontend": 1, "source_or_other": 1, "deployment_env_gap": 1, "verification_or_tests": 7, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_disagreement": 2, "comment_has_related_commit_context": 3, "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": 60, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "thread_touches_file": 4, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 3, "comment_chain_links_commit": 11, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 31, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 3, "pr_file": 4, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#6", "issue_number": "6", "quality_tiers": {"high_confidence": 4, "assumption_check": 2, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-680b4fa8a5b22a6b", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 6, "api_or_backend": 6, "ui_or_frontend": 6, "source_or_other": 6}}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#6\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#6\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 31\nEdges: 60\nNode types: {'commit': 7, 'link_quality': 7, 'pr_file': 4, 'comment': 3, 'comment_chain': 3, 'alignment': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 12, 'comment_chain_links_commit': 11, 'chain_has_link_quality': 7, 'thread_touches_file': 4, 'issue_chain_touches_file': 4, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 5, 'comment_has_related_commit_context': 3, 'test_ci_gap': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'test_or_ci': 1, 'api_or_backend': 1, 'ui_or_frontend': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'high_confidence': 4, 'assumption_check': 2, 'weak_supervision': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-f2dd151b88161aa7", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 336685, "scanner": "foundry_dataset", "fingerprint": "671a834711bd0fcd165feb005c62de45ccf9670d053fe13553c8893b7c4f64cf", "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": {"bug_fix": 1, "test_or_ci": 1, "test_ci_gap": 1, "docs_or_claims": 1, "ui_or_frontend": 2, "ci_failure_signal": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 4, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 2, "comment_chain_links_commit": 4, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 2, "pr_file": 4, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#15", "issue_number": "15", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d7253507d134784d", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 5, "docs_or_claims": 5, "ui_or_frontend": 10}}, "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: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#15\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#15\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#15\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 15\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 41\nNode types: {'link_quality': 5, 'pr_file': 4, 'commit': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 8, 'chain_has_link_quality': 5, 'thread_touches_file': 4, 'comment_chain_links_commit': 4, 'issue_chain_touches_file': 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_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'claimed_resolved_with_failing_ci_signal': 3, 'ui_or_frontend': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'test_or_ci': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'bug_fix': 1, 'ci_failure_signal': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-940e7e22dca7b20c", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 336684, "scanner": "foundry_dataset", "fingerprint": "a7df72e3cb2e263d0951a7fd338f5e8b77e78744c43903c44c2fe6a483ebb0b7", "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": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "source_or_other": 1, "deployment_env_gap": 1, "dependency_or_build": 2, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_disagreement": 1, "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": 8}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 47, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 5, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 2, "comment_chain_links_commit": 7, "comment_chain_touches_file": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 5, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#14", "issue_number": "14", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-0275f05b8499dec9", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 5, "ui_or_frontend": 5, "source_or_other": 5, "dependency_or_build": 10}}, "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: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#14\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#14\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#14\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 14\nGraph consistency label: supported_by_high_confidence_link\nNodes: 25\nEdges: 47\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 10, 'comment_chain_links_commit': 7, 'thread_touches_file': 5, 'chain_has_link_quality': 5, 'issue_chain_touches_file': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 4, 'dependency_or_build': 2, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'test_or_ci': 1, 'ui_or_frontend': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-d471c300e4f784a6", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 336683, "scanner": "foundry_dataset", "fingerprint": "c029e08d932f215375c049ce3b2b8ae281ab565ba46cb7a095e0883f3260959d", "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": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_disagreement": 1, "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": 8}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 2, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 2, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#11", "issue_number": "11", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-523ee490a0924539", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 5, "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: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#11\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#11\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#11\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 11\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 35\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'pr_file': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'comment_chain_touches_file': 4, 'thread_has_comment': 2, 'thread_touches_file': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 4, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'test_or_ci': 1, 'ui_or_frontend': 1, 'ci_failure_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-1c67f7f10b39803d", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 316400, "scanner": "foundry_dataset", "fingerprint": "caa7171a3215932184cae38ba40b088c6d54bff1e7043dd3fce567f1d4f6ec26", "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": "SplitMyGear/mcp-server-splitmygear#2", "human_labels": ["docs_or_claims", "mock_placeholder", "test_or_ci"], "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": "SplitMyGear/mcp-server-splitmygear", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b9e0642ead6ce2aa", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 3, "docs_or_claims": 2}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#2\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#2\nRepo: SplitMyGear/mcp-server-splitmygear\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: 5\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 2, 'test_or_ci': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d42e96196547679e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/2\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/2\\nTitle: MCP Production Readiness: Test Stability & Security\\nBody:\\nThis PR ensures the MCP server is production-ready by stabilizing the test suite:\\n- Fixed Auth Middleware tests by providing mock Supabase environment variables.\\n- Corrected AI Service tests to use OPENROUTER_API_KEY.\\n- Updated Rate Limiter tests to match actual public tier limits (20 req/min).\\n- Verified all 89 tests pass across 15 suites.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-aaec3917362a3ebc\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 2,\n    \"deletions\": 2,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/blob/991b44b6dac64125931146c401edf3ad97c0482e/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-14e0ab06103027f6\",\n    \"filename\": \"TASKS.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 13,\n    \"deletions\": 0,\n    \"changes\": 13,\n    \"blob_url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/blob/991b44b6dac64125931146c401edf3ad97c0482e/TASKS.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-ae4eeeec1be7ccf5\",\n    \"filename\": \"__tests__/ai-service.test.ts\",\n    \"label\": \"test_or_ci\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 3,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/blob/991b44b6dac64125931146c401edf3ad97c0482e/__tests__%2Fai-service.test.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-9af0b62fb31279ec\",\n    \"filename\": \"__tests__/auth.test.ts\",\n    \"label\": \"test_or_ci\",\n    \"status\": \"modified\",\n    \"ad\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-bad_chains-ec1ad80d6e2977f0", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 316399, "scanner": "foundry_dataset", "fingerprint": "eb76f71d3389a2a7ba73fc5e86754c35da5f43a93b47c22b9db8ad9b162fbeb1", "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": "SplitMyGear/mcp-server-splitmygear#17", "human_labels": ["dependency_or_build", "deployment_env_gap", "mock_placeholder", "test_or_ci", "ui_or_frontend"], "issue_number": "17", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_with_failing_ci_signal", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-30c287d35e76969b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 8, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 3, "ui_or_frontend": 3, "dependency_or_build": 2}, "linked_commit_count": 3, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 2, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#17\nOutcome: claimed_resolved_with_failing_ci_signal\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#17\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_with_failing_ci_signal\nComment count: 2\nLinked commit count: 3\nLinked CI commit count: 2\nLinked CI labels: {'ci_failure_signal': 2}\nChanged file count: 8\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'test_or_ci': 3, 'dependency_or_build': 2, 'ui_or_frontend': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4f660759b0e834ac\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/17\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/17\\nTitle: fix(SPLIT-277): MCP AI tools via backend; drop openai dep\\nBody:\\n## What & why (SPLIT-277)\\nThe 3 AI content tools called an LLM provider directly (`src/lib/ai-client.ts`). The MCP's Vercel env has **no AI key**, so all 3 returned a \\\"disabled\\\" fallback in prod. Route them through the **backend AI** (enabled in prod) instead:\\n\\n- `generate_listing_description` \u2192 `POST /ai/generate-description` (keywords \u2192 subAttributes)\\n- `improve_listing_title` \u2192 `POST /ai/improve-title` (new, backend v2.17.93)\\n- `generate_ai_message_draft` \u2192 `POST /ai/draft-message` (new, backend v2.17.93)\\n\\n**Completes the SPLIT-226 decouple**: the MCP is now a pure backend REST client with zero direct AI. Deletes `ai-client.ts` + `ai-client.test.ts`, drops the `openai` dependency (surgical lockfile removal).\\n\\n## CI / validation\\nCI frozen until 2026-07-01 (Actions quota); validated locally: tsc 0, jest **122/122** (15 suites), `next build` \u2713. Backend endpoints already live-verified on prod (real AI output, \"\n  },\n  {\n    \"id\": \"github-feedback-comment-0a35af0171ce7675\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/17#issuecomment-4702953777\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/17#issuecomment-4702953777\\nTitle: \\nBody:\\n[v\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-bad_chains-241bff4b437fd1c5", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 316398, "scanner": "foundry_dataset", "fingerprint": "d851fae511b4d28c2f3eb1e305fdb375c40bd4e96da03b8ac673a3e59c421a2c", "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": "SplitMyGear/mcp-server-splitmygear#16", "human_labels": ["build_install_failure", "deployment_env_gap", "source_or_other"], "issue_number": "16", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_with_failing_ci_signal", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-35fa629417791ec7", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 2}, "linked_commit_count": 3, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#16\nOutcome: claimed_resolved_with_failing_ci_signal\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#16\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_with_failing_ci_signal\nComment count: 2\nLinked commit count: 3\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 2\nLabels: {'build_install_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-fcf6d461d6c3e45b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/16\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/16\\nTitle: fix(SPLIT-276): stop tracking node_modules self-symlink (deploy-safety)\\nBody:\\n## What & why (SPLIT-276)\\n`node_modules` was committed as a **symlink blob** (git mode `120000`) \u2192 an absolute local path. On any other machine it dangles and can break `npm install`/`vercel build` (same class of bug fixed in frontend PR #180). Today's CLI deploys only work because we manually `rm` the symlink before upload; the frozen GitHub Actions deploy would hit it on 2026-07-01.\\n\\n**Fix:** `git rm --cached node_modules` (already gitignored) + harden `.gitignore` with `/node_modules` so a root symlink can't be force-added again. No runtime code change.\\n\\n## CI / validation\\nCI frozen until 2026-07-01 (Actions quota); validated locally: tsc 0, jest **126/126**, next build \u2713. Index now has zero `120000` entries.\\n\\nCloses SPLIT-276.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-32cdc069a8660e91\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/16#issuecomment-4702878704\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/16#issuecomment-4702878704\\nTitle: \\nBody:\\n[vc]: #njmguAcasFuAg+8/fzkTMzGvublPzZLClNtNsegLQqY=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtY3Atc2VydmVyLXNwbGl0bXlnZWFyIiwicHJvamVjdElkIjoicHJqX1REaEJ4NTIxQTE5MVc5c\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-bad_chains-230487a58347d386", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 316397, "scanner": "foundry_dataset", "fingerprint": "64beecf8c3bd8564e482020764bd554c4583cc41d45c20f742e309f5f3738b0c", "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": "SplitMyGear/mcp-server-splitmygear#15", "human_labels": ["deployment_env_gap", "docs_or_claims", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "15", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_with_failing_ci_signal", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-5faa7a0a4ddd2dac", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 1, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "docs_or_claims": 1, "ui_or_frontend": 2}, "linked_commit_count": 4, "helicopter_view_count": 4, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#15\nOutcome: claimed_resolved_with_failing_ci_signal\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: SplitMyGear/mcp-server-splitmygear#15\nRepo: SplitMyGear/mcp-server-splitmygear\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_with_failing_ci_signal\nComment count: 2\nLinked commit count: 4\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 4\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 1, 'test_or_ci': 1, 'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-88a7e734374410a7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/15\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: mizanhemani (User)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/15\\nTitle: fix(SPLIT-274): send_message reuses existing conversation on backend 409 + docs reconcile\\nBody:\\n## What & why\\n`send_message` (and a couple of stale docs) \u2014 see SPLIT-274.\\n\\n**Bug (SPLIT-274, High):** the backend's `POST /chat/conversations` is **not idempotent** \u2014 it 409s `\\\"Conversation with this user already exists.\\\"` once a pair already has a conversation. `send_message` called without a `conversationId` (as an AI agent naturally does) didn't handle the 409, so **every follow-up message to someone you'd already messaged failed** and was never delivered.\\n\\n**Fix:** on a 409, fall back to `GET /chat/conversations` and reuse the existing conversation with that recipient (`participant1Id`/`participant2Id === recipientId`), then post the message. Non-409 create errors still surface unchanged.\\n\\n**Docs (residual SPLIT-226/PR #14 cleanup):** README \\\"Running Locally\\\" no longer references the dropped Supabase/Stripe setup + env vars (documents `BACKEND_API_URL`/`MCP_BACKEND_JWT_SECRET` \"\n  },\n  {\n    \"id\": \"github-feedback-comment-110bc68047db06ab\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/SplitMyGear/mcp-server-splitmygear/pull/15#issuecomment-4702856760\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: SplitMyGear/mcp-server-splitmygear\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/SplitMyGear/mcp-server-splitmygear/pull/15#issuecomment-4702856760\\nTitle: \\nBody:\\n[vc]: #z7QgYi4+GUH\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "comment-chain-pattern-bad_chains-765f6a339c564c80", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 357854, "scanner": "foundry_dataset", "fingerprint": "1fe8664e3dfbcaaa38fa914c86f48930c83d08ff19e36a124c5a301498b6c1ec", "category": "ci", "severity": "critical", "confidence": 0.86, "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": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"bug_fix": 1, "test_or_ci": 3, "ui_or_frontend": 3, "mock_placeholder": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "dependency_or_build": 2, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 4}, "synthetic": false, "edge_count": 53, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 8, "comment_chain_has_ci": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 2, "comment_chain_links_commit": 3, "comment_chain_touches_file": 16, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 2, "pr_file": 8, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#17", "issue_number": "17", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-1c4c345bcb8df5a8", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 15, "ui_or_frontend": 15, "dependency_or_build": 10}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#17\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#17\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#17\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 17\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 53\nNode types: {'pr_file': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 16, 'thread_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_has_ci': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 3, 'ui_or_frontend': 3, 'claimed_resolved_with_failing_ci_signal': 3, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'verification_or_tests': 1, 'ci_failure_signal': 1, 'bug_fix': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {'ci_failure_signal': 4}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-fa6ec93c9e427763", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 357853, "scanner": "foundry_dataset", "fingerprint": "0c293d06db68fa08b444b8a83196b72ca2235d30693f437ad3668ab27d3f2507", "category": "ci", "severity": "critical", "confidence": 0.86, "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": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"bug_fix": 1, "source_or_other": 2, "ci_failure_signal": 1, "deployment_env_gap": 1, "build_install_failure": 1, "verification_or_tests": 1, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"claimed_resolved_unverified": 2, "claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 2, "comment_chain_has_ci": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 2, "comment_chain_links_commit": 3, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 17, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 2, "pr_file": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#16", "issue_number": "16", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-bf885b73d9720913", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"source_or_other": 10}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#16\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#16\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#16\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 16\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 17\nEdges: 28\nNode types: {'link_quality': 4, 'comment': 2, 'pr_file': 2, 'comment_chain': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'thread_has_comment': 2, 'thread_touches_file': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_with_failing_ci_signal': 3, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'bug_fix': 1, 'verification_or_tests': 1, 'ci_failure_signal': 1, 'human_reported_issue_then_fix_attempt': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6, 'claimed_resolved_unverified': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-a80157e6f6e76f15", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 357852, "scanner": "foundry_dataset", "fingerprint": "f0637c1f4ef48924ab21e5795f040c79c5e5364cea94f5ceae5801b0b64e695d", "category": "ci", "severity": "critical", "confidence": 0.86, "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": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"bug_fix": 1, "test_or_ci": 1, "test_ci_gap": 1, "docs_or_claims": 1, "ui_or_frontend": 2, "ci_failure_signal": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 41, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 4, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 2, "comment_chain_links_commit": 4, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 2, "pr_file": 4, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#15", "issue_number": "15", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-6986f6fa3d79c729", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 5, "docs_or_claims": 5, "ui_or_frontend": 10}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#15\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#15\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#15\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 15\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 41\nNode types: {'link_quality': 5, 'pr_file': 4, 'commit': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 8, 'chain_has_link_quality': 5, 'thread_touches_file': 4, 'comment_chain_links_commit': 4, 'issue_chain_touches_file': 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_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'claimed_resolved_with_failing_ci_signal': 3, 'ui_or_frontend': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'test_or_ci': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'bug_fix': 1, 'ci_failure_signal': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-6416dbfb71fd193c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 357851, "scanner": "foundry_dataset", "fingerprint": "3bffcc0196e55b89c148aa1a08d8bd680d1ea84840e7d728bd724a57f7e57f30", "category": "ci", "severity": "critical", "confidence": 0.86, "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": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"api_or_backend": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "generated_provenance": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "self_attested_unverified": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"self_attested_unverified": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#13", "issue_number": "13", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d852c579102b25d9", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"api_or_backend": 5}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#13\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#13\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#13\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 13\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 22\nEdges: 31\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'api_or_backend': 1, 'comment_has_related_commit_context': 1, 'generated_provenance': 1, 'ci_failure_signal': 1, 'self_attested_or_generated_fix_unverified': 1, 'self_attested_unverified': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'self_attested_unverified': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-9d5c921229856c7c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 357850, "scanner": "foundry_dataset", "fingerprint": "a0c6926e0ad0451c7dec33c07ab8ec540cdd434d38e5a7a0547e8c95dd2327c1", "category": "ci", "severity": "critical", "confidence": 0.86, "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": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"test_or_ci": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"ambiguous_needs_more_evidence": 8}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 2, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 2, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#11", "issue_number": "11", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-917903aa40899419", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 5, "ui_or_frontend": 5}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#11\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#11\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#11\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 11\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 35\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'pr_file': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'comment_chain_touches_file': 4, 'thread_has_comment': 2, 'thread_touches_file': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 4, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'test_or_ci': 1, 'ui_or_frontend': 1, 'ci_failure_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-070a1ffbfbda5a3f", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 332142, "scanner": "foundry_dataset", "fingerprint": "a4429ad93d56e719b33ec7ab0ea339e7c14dd319dbf69a9b451db3ac90487b52", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"docs_or_claims": 1, "source_or_other": 2, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 4, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 8}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 3, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 2, "comment_chain_links_commit": 2, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#9", "issue_number": "9", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6b5bd7db899e6772", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"docs_or_claims": 5, "source_or_other": 10}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#9\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#9\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#9\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 9\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 30\nNode types: {'link_quality': 4, 'pr_file': 3, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 6, 'chain_has_link_quality': 4, 'thread_touches_file': 3, 'issue_chain_touches_file': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_links_commit': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 4, 'source_or_other': 2, 'human_reported_issue_then_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-d5f8f7b7e07db364", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 332141, "scanner": "foundry_dataset", "fingerprint": "42659ef8af5dd2441864975a2bdecce14f24c2d62bf851b01145c496ae74f895", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"api_or_backend": 2, "docs_or_claims": 1, "ui_or_frontend": 3, "source_or_other": 2, "dependency_or_build": 1, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 9, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 9, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 9, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#1", "issue_number": "1", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-fcb955abe8d307a1", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 8, "docs_or_claims": 4, "ui_or_frontend": 12, "source_or_other": 8, "dependency_or_build": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#1\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#1\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 19\nEdges: 39\nNode types: {'pr_file': 9, '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': 9, 'comment_chain_touches_file': 9, 'issue_chain_touches_file': 9, '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: {'ui_or_frontend': 3, 'claimed_resolved_unverified': 3, 'api_or_backend': 2, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'docs_or_claims': 1, 'dependency_or_build': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-2f85b11cce753ead", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 324882, "scanner": "foundry_dataset", "fingerprint": "d8f328e619de7a2ceed6c1bb0b116a32fe3a0e3f85fe00b3655a1def7adb7724", "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": 3, "docs_or_claims": 2, "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": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 5, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-7d0f314cf5379e47", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 12, "docs_or_claims": 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: needs_more_evidence\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#2\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 14\nEdges: 26\nNode types: {'pr_file': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, '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': 3, '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, '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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-c963a0ce0438b7c8", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 324881, "scanner": "foundry_dataset", "fingerprint": "c2e666b59b17d287b649d4276799c32c180ce3aea972ce2cef956de9fff3e3f6", "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": {"bug_fix": 1, "test_or_ci": 3, "ui_or_frontend": 3, "mock_placeholder": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "dependency_or_build": 2, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {"ci_failure_signal": 4}, "synthetic": false, "edge_count": 53, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 8, "comment_chain_has_ci": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 2, "comment_chain_links_commit": 3, "comment_chain_touches_file": 16, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 2, "pr_file": 8, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#17", "issue_number": "17", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d62034b37de2fe62", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 15, "ui_or_frontend": 15, "dependency_or_build": 10}}, "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: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#17\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#17\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#17\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 17\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 23\nEdges: 53\nNode types: {'pr_file': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 16, 'thread_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_has_ci': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 3, 'ui_or_frontend': 3, 'claimed_resolved_with_failing_ci_signal': 3, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'verification_or_tests': 1, 'ci_failure_signal': 1, 'bug_fix': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {'ci_failure_signal': 4}\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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-55d78b9e0996f959", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 324880, "scanner": "foundry_dataset", "fingerprint": "111a7745486f233d9ff961b766177b46f24460d66d831049888651468cfa7e9b", "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": {"api_or_backend": 1, "ci_failure_signal": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "generated_provenance": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "self_attested_unverified": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 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": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#13", "issue_number": "13", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d090c70df71171c8", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"api_or_backend": 5}}, "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: contradicted_by_ci_or_failure_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#13\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#13\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#13\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 13\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 22\nEdges: 31\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'api_or_backend': 1, 'comment_has_related_commit_context': 1, 'generated_provenance': 1, 'ci_failure_signal': 1, 'self_attested_or_generated_fix_unverified': 1, 'self_attested_unverified': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'self_attested_unverified': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-fbc68052aca96d01", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 324879, "scanner": "foundry_dataset", "fingerprint": "d697e1788664e4d5a1961785dd524c3571234e1f668b1be50c410c0b53148ac1", "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": {"bug_fix": 1, "test_or_ci": 7, "api_or_backend": 1, "schema_or_data": 1, "ui_or_frontend": 4, "source_or_other": 2, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 70, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 15, "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": 3, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 29, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 2, "pr_file": 15, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#12", "issue_number": "12", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-3d4d4d68f986175e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 35, "api_or_backend": 5, "schema_or_data": 5, "ui_or_frontend": 20, "source_or_other": 10}}, "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: supported_by_verification_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#12\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#12\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#12\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 12\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 70\nNode types: {'pr_file': 15, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 15, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 7, 'ui_or_frontend': 4, 'claimed_resolved_with_verification_signal': 3, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'api_or_backend': 1, 'schema_or_data': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'bug_fix': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-11e1e35fdebfb479", "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": "SplitMyGear/mcp-server-splitmygear", "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: SplitMyGear/mcp-server-splitmygear"}, "properties": {"repobilityId": 324878, "scanner": "foundry_dataset", "fingerprint": "3851e309442e5b4651f43914419b7dc5f969ce071c23dc12d1663438ec9e82f0", "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": {"bug_fix": 1, "test_or_ci": 6, "api_or_backend": 2, "ui_or_frontend": 5, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 68, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 13, "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": 3, "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": 2, "thread": 1, "comment": 2, "pr_file": 13, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "SplitMyGear/mcp-server-splitmygear#10", "issue_number": "10", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "SplitMyGear/mcp-server-splitmygear", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-6e796abafdc2556d", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 30, "api_or_backend": 10, "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: supported_by_verification_signal\nRepo: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#10\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: SplitMyGear/mcp-server-splitmygear\nThread: SplitMyGear/mcp-server-splitmygear#10\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: SplitMyGear/mcp-server-splitmygear#10\nRepo: SplitMyGear/mcp-server-splitmygear\nIssue/PR number: 10\nGraph consistency label: supported_by_verification_signal\nNodes: 27\nEdges: 68\nNode types: {'pr_file': 13, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 13, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 6, 'ui_or_frontend': 5, 'claimed_resolved_with_verification_signal': 3, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'bug_fix': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 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/SplitMyGear/mcp-server-splitmygear", "source_id": "graph-query-motif_query-d39c88bb72b91614", "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": "SplitMyGear/mcp-server-splitmygear", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-7f80165fd0456f41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 __tests__/e2e/mcp.test.ts:26"}, "properties": {"repobilityId": "81a608b408044669", "scanner": "scanner-primary", "fingerprint": "7f80165fd0456f41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"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-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bee6b8956e03198c", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "c84a1338c8f31889", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "ce4c97e98c201606", "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": "c844f15b59d53c1d", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-66d6ff7519794018", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 __tests__/e2e/mcp.test.ts:50"}, "properties": {"repobilityId": "f1f14f172e759f58", "scanner": "scanner-primary", "fingerprint": "66d6ff7519794018", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-378d830bee181e32", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/mcp/route.ts:21"}, "properties": {"repobilityId": "0dbd7036ab133f6d", "scanner": "scanner-primary", "fingerprint": "378d830bee181e32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2eafc3188c36bb02", "level": "none", "message": {"text": "3 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "bd934ba112b02ffa", "scanner": "scanner-primary", "fingerprint": "2eafc3188c36bb02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}