{"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_blueprint_gap", "name": "Foundry mined blueprint gap alignment: trionnemesis/healthcare-opendata-mcp", "shortDescription": {"text": "Foundry mined blueprint gap alignment: trionnemesis/healthcare-opendata-mcp"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: trionnemesis/healthcare-opendata-mcp#1\nRepo: trionnemesis/healthcare-opendata-mcp\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 46\nEdges: 107\nNode types: {'pr_file'"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: trionnemesis/healthcare-opendata-mcp", "shortDescription": {"text": "Foundry mined assumption checks: trionnemesis/healthcare-opendata-mcp"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: trionnemesis/healthcare-opendata-mcp#1\nRepo: trionnemesis/healthcare-opendata-mcp\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 3\nLinked commit count: 6\nLinked CI commit count: 3\nLinked CI labels: {'ci_pending_or_incomplete': 3}\nChanged file count: 21\nLabels: {'test_ci_gap': 1, 'human_feedback_general': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 2, 'neutral': 1}\nChanged file labels: {'docs_or_claims': 2, 'source_or_other': 3, 'test_or_ci': 9, 'ui_or_frontend': 5, 'api_or_backend': 2}\nExamp"}, "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: trionnemesis/healthcare-opendata-mcp", "shortDescription": {"text": "Foundry mined test ci gap after feedback: trionnemesis/healthcare-opendata-mcp"}, "fullDescription": {"text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: trionnemesis/healthcare-opendata-mcp#1\nRepo: trionnemesis/healthcare-opendata-mcp\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 46\nEdges: 107\nNode types: {'pr_file': 21, 'link_quality': 7,"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "scanner-2375d2d724666248", "name": "Possibly dead Python function: sync_main", "shortDescription": {"text": "Possibly dead Python function: sync_main"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d00f50a81ff1d673", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ac050500bc567a7", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9677a5a657cbf2b", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-23be11ff46d8a971", "name": "Possibly dead Python function: default_http_get", "shortDescription": {"text": "Possibly dead Python function: default_http_get"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31b6d1c4981703c3", "name": "Possibly dead Python function: authorize", "shortDescription": {"text": "Possibly dead Python function: authorize"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b50a8dc3bf369f97", "name": "Possibly dead Python function: execute_readonly", "shortDescription": {"text": "Possibly dead Python function: execute_readonly"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e066691601852931", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 15 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/health_opendata_mcp/adapters/static_csv.py:discover, src/health_opendata_mcp/adapters/nhi.py:discover\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21639"}, "properties": {"repository": "trionnemesis/healthcare-opendata-mcp", "repoUrl": "https://github.com/trionnemesis/healthcare-opendata-mcp", "branch": "main"}, "results": [{"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: trionnemesis/healthcare-opendata-mcp"}, "properties": {"repobilityId": 357040, "scanner": "foundry_dataset", "fingerprint": "d641065687335a2fb0ccc2477704e8aba18d0a7c2fb7b7268692e955dbda1120", "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": 9, "test_ci_gap": 1, "api_or_backend": 2, "commit_general": 1, "docs_or_claims": 2, "ui_or_frontend": 5, "source_or_other": 3, "api_integration_gap": 1, "partial blueprint fit": 1, "verification_or_tests": 3, "human_feedback_general": 1, "ci_pending_or_incomplete": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_alignment": 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": {"ci_pending_or_incomplete": 6}, "synthetic": false, "edge_count": 107, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_touches_file": 21, "comment_chain_has_ci": 3, "thread_has_pr_review": 1, "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": 12, "thread_has_comment_chain": 3, "comment_chain_links_commit": 6, "comment_chain_touches_file": 36, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 46, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 2, "pr_file": 21, "alignment": 2, "pr_review": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "trionnemesis/healthcare-opendata-mcp#1", "issue_number": "1", "quality_tiers": {"assumption_check": 2, "weak_supervision": 5}, "repo_full_name": "trionnemesis/healthcare-opendata-mcp", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-3d3993a5abe1277c", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 54, "api_or_backend": 12, "docs_or_claims": 12, "ui_or_frontend": 30, "source_or_other": 18}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: trionnemesis/healthcare-opendata-mcp#1\nRepo: trionnemesis/healthcare-opendata-mcp\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 46\nEdges: 107\nNode types: {'pr_file': 21, 'link_quality': 7, 'commit': 4, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 36, 'thread_touches_file': 21, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 7, 'comment_chain_links_commit': 6, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'comment_chain_has_ci': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1}\nLabels: {'test_or_ci': 9, 'ui_or_frontend': 5, 'ambiguous_needs_more_evidence': 5, 'source_or_other': 3, 'comment_has_related_commit_context': 3, 'verification_or_tests': 3, 'docs_or_claims': 2, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_alignment': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_feedback_general': 1, 'api_integration_gap': 1, 'commit_general': 1, 'ci_pending_or_incomplete': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 5, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 6}\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/trionnemesis/healthcare-opendata-mcp", "source_id": "graph-query-motif_query-d1d38ce690087816", "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": "trionnemesis/healthcare-opendata-mcp", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: trionnemesis/healthcare-opendata-mcp"}, "properties": {"repobilityId": 313285, "scanner": "foundry_dataset", "fingerprint": "3806cda8c91f397677e18dc3dcd1c5f76c9e2f55ff6a98d38a6bbde912d4488d", "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": "trionnemesis/healthcare-opendata-mcp#1", "human_labels": ["api_integration_gap", "api_or_backend", "docs_or_claims", "human_feedback_general", "source_or_other", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.725, "repo_full_name": "trionnemesis/healthcare-opendata-mcp", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-faf2d0b4a4bd3560", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 21, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"test_or_ci": 9, "api_or_backend": 2, "docs_or_claims": 2, "ui_or_frontend": 5, "source_or_other": 3}, "linked_commit_count": 6, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 3, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: trionnemesis/healthcare-opendata-mcp#1\nRepo: trionnemesis/healthcare-opendata-mcp\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 3\nLinked commit count: 6\nLinked CI commit count: 3\nLinked CI labels: {'ci_pending_or_incomplete': 3}\nChanged file count: 21\nLabels: {'test_ci_gap': 1, 'human_feedback_general': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 2, 'neutral': 1}\nChanged file labels: {'docs_or_claims': 2, 'source_or_other': 3, 'test_or_ci': 9, 'ui_or_frontend': 5, 'api_or_backend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9093a6b0fb72e9eb\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/trionnemesis/healthcare-opendata-mcp/pull/1\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: trionnemesis/healthcare-opendata-mcp\\nAuthor: trionnemesis (User)\\nURL: https://github.com/trionnemesis/healthcare-opendata-mcp/pull/1\\nTitle: feat(pcc): \u5168\u6a5f\u95dc pcc-tender \u8cc7\u6599\u96c6 + \u770b\u677f data.js \u5feb\u7167\u532f\u51fa\\nBody:\\n## \u80cc\u666f\\n\\ntwinkle-hub MCP(api.twinkleai.tw)\u6545\u969c\u505c\u7528,\u539f\u4f9d\u8cf4\u5b83\u7684 Cowork\u300c\u653f\u5e9c\u63a1\u8cfc IT \u6a19\u6848\u770b\u677f\u300d\u8207\u534a\u6708\u6392\u7a0b\u4efb\u52d9\u5168\u65b7\u3002\u672c PR \u8b93 hcmcp \u63a5\u624b\u6210\u70ba\u8cc7\u6599\u6e90\u3002\\n\\n## \u8b8a\u66f4\u5167\u5bb9\\n\\n- **\u5168\u6a5f\u95dc `pcc-tender` \u8cc7\u6599\u96c6**:`PccTenderAdapter` \u652f\u63f4 `agency_prefix=\\\"\\\"`(\u7a7a\u5b57\u4e32=\u4e0d\u904e\u6ffe,`startswith(\\\"\\\")` \u6046\u771f\u3001\u96f6\u908f\u8f2f\u6539\u52d5)\u8207 `collection` \u53c3\u6578;`cli.py` \u8a3b\u518a\u7b2c\u4e8c\u5be6\u4f8b(`dataset_id=\\\"pcc-tender\\\"`\u3001`collection=\\\"procurement\\\"`),\u6b04\u4f4d\u8207 twinkle pcc-tender \u5b8c\u5168\u76f8\u5bb9\u3002\u65e2\u6709 `pcc-tender-mohw`(\u885b\u798f\u90e8\u5b50\u96c6)\u4fdd\u7559\u4e0d\u52d5\u3002\\n- **limit \u4e0a\u9650 200\u2192400**(`query_guard.MAX_LIMIT`):\u5c0d\u9f4a\u770b\u677f\u55ae\u6b21\u67e5\u8a62\u91cf 400;\u6df1\u5ea6\u9632\u79a6\u5176\u9918\u5c64(mode=ro \u9023\u7dda\u3001authorizer \u767d\u540d\u55ae\u3001VM \u6b65\u6578 progress handler)\u4e0d\u8b8a\u3002`spec/features/query-rows.feature` \u540c\u6b65\u3002\\n- **`hcmcp-sync --tender-months` \u9810\u8a2d 3\u219212**:\u652f\u6490\u770b\u677f\u300c\u8fd1 1 \u5e74\u300d\u62db\u6a19\u8996\u5716(PCC \u7ad9\u4e0a\u5be6\u969b\u53ef\u56de\u6eaf\u7d04 12 \u500b\u6708,\u6b77\u53f2\u96a8\u534a\u6708\u540c\u6b65\u7d2f\u7a4d)\u3002\\n- **`scripts/export_board_data.py`**:\u532f\u51fa `pcc-tender` \u5168\u91cf\u70ba\u770b\u677f `data.js` \u5feb\u7167\u3002\u539f\u56e0:Cowork live artifact \u7684 `callMcpTool` \u50c5\u80fd\u8def\u7531\u5230 claude.ai \u7d44\u7e54\u5c64 remote connector,\u672c\u6a5f stdio MCP \u547c\u53eb\u4e0d\u5230,\u770b\u677f\u56e0\u6b64\u6539\u8b80\u5feb\u7167\u3001\u7531\u534a\u6708\u6392\u7a0b\u5728 sync \u5f8c\u91cd\u532f\u3002\\n\\n## Reviewer \u9808\u77e5\\n\\n- mohw \u8207\u5168\u6a5f\u95dc\u5be6\u4f8b\u6703\u91cd\u8907\u4e0b\u8f09\u540c\u6279 PCC XML(\u534a\u6708\u540c\u6b65\u591a\u5e7e\u5206\u9418)\u2014 \u523b\u610f\u63a5\u53d7,\u4fdd\u6301 adapter \u7c21\u55ae;\u65e5\u5f8c\u53ef\u6ce8\u5165\u5171\u7528 http_get cache(DI \u5df2\u652f\u63f4)\u3002\\n- \u770b\u677f/\u6392\u7a0b\u4efb\u52d9\u672c\u8eab\u5728 `~/D\"\n  },\n  {\n    \"id\": \"github-feedback-comment-2029aa3364d2478c\",\n    \"kind\": \"review_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/trionnemesis/healthcare-opendata-mcp/pull/1#discussion_r3405039524\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: review_comment\\nRepo: trionnemesis/healthcare-opendata-mcp\\nAuthor: chatgpt-codex-connector[bot] (Bot)\\nURL: https://github.com/trionnemesis/healthcare-opendat\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/trionnemesis/healthcare-opendata-mcp", "source_id": "comment-chain-pattern-assumption_checks-8d43f63a3a3ec7c9", "synthetic": false, "gold_label": "", "graph_label": "source_artifact_without_verification_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "trionnemesis/healthcare-opendata-mcp", "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: trionnemesis/healthcare-opendata-mcp"}, "properties": {"repobilityId": 341348, "scanner": "foundry_dataset", "fingerprint": "0623d761167f8982e97af9029f407adda85093afa4ff8c5f16087e5a3ec54f4a", "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": 9, "test_ci_gap": 1, "api_or_backend": 2, "commit_general": 1, "docs_or_claims": 2, "ui_or_frontend": 5, "source_or_other": 3, "api_integration_gap": 1, "partial blueprint fit": 1, "verification_or_tests": 3, "human_feedback_general": 1, "ci_pending_or_incomplete": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "blueprint_human_gap_alignment": 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": {"ci_pending_or_incomplete": 6}, "synthetic": false, "edge_count": 107, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_touches_file": 21, "comment_chain_has_ci": 3, "thread_has_pr_review": 1, "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": 12, "thread_has_comment_chain": 3, "comment_chain_links_commit": 6, "comment_chain_touches_file": 36, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 46, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 2, "pr_file": 21, "alignment": 2, "pr_review": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "trionnemesis/healthcare-opendata-mcp#1", "issue_number": "1", "quality_tiers": {"assumption_check": 2, "weak_supervision": 5}, "repo_full_name": "trionnemesis/healthcare-opendata-mcp", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-b69f95351c1ba460", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 54, "api_or_backend": 12, "docs_or_claims": 12, "ui_or_frontend": 30, "source_or_other": 18}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: trionnemesis/healthcare-opendata-mcp\nThread: trionnemesis/healthcare-opendata-mcp#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: trionnemesis/healthcare-opendata-mcp#1\nRepo: trionnemesis/healthcare-opendata-mcp\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 46\nEdges: 107\nNode types: {'pr_file': 21, 'link_quality': 7, 'commit': 4, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 36, 'thread_touches_file': 21, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 7, 'comment_chain_links_commit': 6, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'comment_chain_has_ci': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1}\nLabels: {'test_or_ci': 9, 'ui_or_frontend': 5, 'ambiguous_needs_more_evidence': 5, 'source_or_other': 3, 'comment_has_related_commit_context': 3, 'verification_or_tests': 3, 'docs_or_claims': 2, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_alignment': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_feedback_general': 1, 'api_integration_gap': 1, 'commit_general': 1, 'ci_pending_or_incomplete': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 5, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 6}\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/trionnemesis/healthcare-opendata-mcp", "source_id": "graph-query-motif_query-c51d524e8c5cb6fe", "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": "trionnemesis/healthcare-opendata-mcp", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-2375d2d724666248", "level": "note", "message": {"text": "Possibly dead Python function: sync_main"}, "properties": {"repobilityId": "3775ed72371ff4b7", "scanner": "scanner-primary", "fingerprint": "2375d2d724666248", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health_opendata_mcp/cli.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d00f50a81ff1d673", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "d00f50a81ff1d673", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health_opendata_mcp/adapters/_pcc_detail.py:74"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ac050500bc567a7", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "2ac050500bc567a7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health_opendata_mcp/adapters/_pcc_detail.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9677a5a657cbf2b", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "f9677a5a657cbf2b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health_opendata_mcp/adapters/_pcc_detail.py:92"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-23be11ff46d8a971", "level": "note", "message": {"text": "Possibly dead Python function: default_http_get"}, "properties": {"repobilityId": "4350253436e34bae", "scanner": "scanner-primary", "fingerprint": "23be11ff46d8a971", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health_opendata_mcp/adapters/_http.py:11"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-31b6d1c4981703c3", "level": "note", "message": {"text": "Possibly dead Python function: authorize"}, "properties": {"repobilityId": "cf7b68da09c15a33", "scanner": "scanner-primary", "fingerprint": "31b6d1c4981703c3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health_opendata_mcp/repository/query_executor.py:27"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b50a8dc3bf369f97", "level": "note", "message": {"text": "Possibly dead Python function: execute_readonly"}, "properties": {"repobilityId": "8d1112139cabc084", "scanner": "scanner-primary", "fingerprint": "b50a8dc3bf369f97", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health_opendata_mcp/repository/query_executor.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e066691601852931", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "278fdc87b7735e87", "scanner": "scanner-primary", "fingerprint": "e066691601852931", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "c2a343053703d5d3", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "7332d025f2057b94", "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": "09c8710aa9072c1a", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "779780fe21643296", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "50634f3886644fcf", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f1c75474758f7adc", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "8e219012411660db", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}