{"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: szp2005/ai-tools-pro", "shortDescription": {"text": "Foundry mined unresolved feedback: szp2005/ai-tools-pro"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#4\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 56\nNode types: {'pr_file': 9, 'commit': 4, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: szp2005/ai-tools-pro", "shortDescription": {"text": "Foundry mined assumption checks: szp2005/ai-tools-pro"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: szp2005/ai-tools-pro#4\nRepo: szp2005/ai-tools-pro\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 9\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 1, 'security_or_auth': 1, 'ui_or_frontend': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-96fb1646663d1099\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: szp2005/ai-tools-pro", "shortDescription": {"text": "Foundry mined test ci gap after feedback: szp2005/ai-tools-pro"}, "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: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#3\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#3\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#3\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 3\nGraph consistency label: supported_by_high_confidence_link\nNodes: 35\nEdges: 115\nNode types: {'pr_file': 11, 'link_quality': 7, 'comment_chain': 5, 'comment': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'pr_review':"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: szp2005/ai-tools-pro", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: szp2005/ai-tools-pro"}, "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: weak_supervision_needs_review\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#4\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 56\nNode types: {'pr_file': 9, 'commit': 4, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1,"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 4 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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-01f96f71d9907a8c", "name": "README lacks setup or run instructions", "shortDescription": {"text": "README lacks setup or run instructions"}, "fullDescription": {"text": "A README exists, but it does not contain common install/setup/run markers. This matches a frequent generated-code pattern: UI is present, operational handoff is thin."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20689"}, "properties": {"repository": "szp2005/ai-tools-pro", "repoUrl": "https://github.com/szp2005/ai-tools-pro", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 370505, "scanner": "foundry_dataset", "fingerprint": "b5eefd1e545b633e96c350128829542cd68848e715ae455189c5b1f087dc8d7b", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"bug_fix": 2, "ui_or_frontend": 7, "source_or_other": 1, "security_or_auth": 1, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"claimed_resolved_unverified": 6, "not_resolved_or_not_observed": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 4, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 2, "pr_file": 9, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "szp2005/ai-tools-pro#4", "issue_number": "4", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4cc44cbebad5a5e7", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 35, "source_or_other": 5, "security_or_auth": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#4\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 56\nNode types: {'pr_file': 9, 'commit': 4, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 9, 'comment_chain_links_commit': 4, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 7, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'security_or_auth': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "graph-query-motif_query-85d5e4984f80cfaf", "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": "szp2005/ai-tools-pro", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 312785, "scanner": "foundry_dataset", "fingerprint": "c5a6c23da038ed110cb2fafc83add97f20f7ed21b2bb6781251f858263fc6fbf", "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": "szp2005/ai-tools-pro#4", "human_labels": ["deployment_env_gap", "security_auth_secret", "security_or_auth", "source_or_other", "ui_or_frontend"], "issue_number": "4", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-bc871bbea4a1eb60", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 9, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"ui_or_frontend": 7, "source_or_other": 1, "security_or_auth": 1}, "linked_commit_count": 4, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: szp2005/ai-tools-pro#4\nRepo: szp2005/ai-tools-pro\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 9\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 1, 'security_or_auth': 1, 'ui_or_frontend': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-96fb1646663d1099\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/4\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: szp2005/ai-tools-pro\\nAuthor: szp2005 (User)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/4\\nTitle: feat(tools): zh-cn mirror for 3 power-user tools\\nBody:\\n## Summary\\n- add /zh-cn/tools/ mirror pages for the tools index and 3 X6 power-user tools\\n- reuse BaseLayout plus existing tool components instead of duplicating business logic\\n- translate titles, descriptions, canonical URLs, related links, and visible tool copy into direct zh-cn wording\\n- keep brand names such as ChatGPT, Claude, Cursor, Gemini, and AI Tools Pro unchanged\\n\\n## Files\\n- src/pages/zh-cn/tools/index.astro\\n- src/pages/zh-cn/tools/ai-subscription-tracker.astro\\n- src/pages/zh-cn/tools/token-cost-calculator.astro\\n- src/pages/zh-cn/tools/chatgpt-export-pretty.astro\\n\\n## Screenshots\\n![AI Subscription Tracker zh-cn](https://raw.githubusercontent.com/szp2005/ai-tools-pro/feat/x12-tools-zh-cn-mirror/reports/screenshots/x12-ai-subscription-tracker-zh.jpg)\\n\\n![Token Cost Calculator zh-cn](https://raw.githubusercontent.com/szp2005/ai-tools-pro/feat/x12-tools-zh-cn-mirror/reports/screenshots/x12-token-cost-calculator-zh.jpg)\\n\\n## Verification\\n- ls \"\n  },\n  {\n    \"id\": \"github-feedback-comment-2abd5faba24cb9a8\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/4#issuecomment-4475018329\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: szp2005/ai-tools-pro\\nAuthor: cloudflare-workers-and-pages[bot] (Bot)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/4#issuecomment-4475018329\\nTitle: \\nBody:\\n## Deploying ai-tools-pro with &nbsp;<a href=\\\"https://pages.dev\\\"><img alt=\\\"Cloudflare Pages\\\" src=\\\"https://user-images.githubusercontent.com/23264/106598434-9e719e00-654f-11eb-9e59-6\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "comment-chain-pattern-assumption_checks-ea1b7dfd03d5130b", "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": "szp2005/ai-tools-pro", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 312784, "scanner": "foundry_dataset", "fingerprint": "9a12fb6a4ac1b4b8fe8de470793cd26616988b1e7a734888935cbc21ce11bc2e", "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": "szp2005/ai-tools-pro#3", "human_labels": ["api_integration_gap", "dependency_or_build", "deployment_env_gap", "human_feedback_general", "source_or_other", "test_ci_gap", "ui_or_frontend"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.86, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-f0ec09728375d668", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 11, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"ui_or_frontend": 8, "source_or_other": 1, "dependency_or_build": 2}, "linked_commit_count": 7, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#3\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: szp2005/ai-tools-pro#3\nRepo: szp2005/ai-tools-pro\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 5\nLinked commit count: 7\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 11\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1, 'api_integration_gap': 2, 'human_feedback_general': 1}\nPolarities: {'bad': 4, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 2, 'source_or_other': 1, 'ui_or_frontend': 8}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-52dc6393bf8dc038\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/3\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: szp2005/ai-tools-pro\\nAuthor: szp2005 (User)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/3\\nTitle: feat(tools): add ChatGPT Export Pretty\\nBody:\\n## Summary\\n- add `/tools/chatgpt-export-pretty/` and `/zh-cn/tools/chatgpt-export-pretty/`\\n- support manual Markdown / copied HTML paste, sanitized preview, Prism code highlighting, clean HTML copy, and local PDF export\\n- add SoftwareApplication JSON-LD, privacy/CORS limitation notes, homepage/tools index links, and sitemap entries\\n\\n## Screenshot\\n- `reports/screenshots/chatgpt-export-pretty.png`\\n\\n## Lighthouse\\n- Performance: 100\\n- Accessibility: 100\\n- Best Practices: 100\\n- SEO: 100\\n\\n## Related links\\n- Best AI Tools for Solopreneurs on a Budget\\n- How to Use Claude API for Content\\n- Best AI Writing Tools 2026\\n\\n## QA\\n- `npm run build`\\n- Playwright CLI: sample render, unsafe HTML sanitizer, PDF download, mobile resize, zh-cn page, console errors = 0\\n- PDF download verified: `chatgpt-conversation-notes.pdf`, 273030 bytes\\n\"\n  },\n  {\n    \"id\": \"github-feedback-comment-3e7fa284ff1870fa\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/3#issuecomment-4473797266\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: szp2005/ai-tools-pro\\nAuthor: cloudflare-workers-and-pages[bot] (Bot)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/3#issuecomment-4473797266\\nTitle: \\nBody:\\n## Deploying ai-tools-pro with &nbsp;<a href=\\\"https://pages.dev\\\"><img alt=\\\"Cloudflare Pages\\\" src=\\\"https://user-images.githubusercontent.com/23264/106598434-9e719e00-654f-11eb-9e59-6167043cfa01.png\\\" width=\\\"16\\\"></a> &nbsp;Cloudflare Pages\\n\\n<table><tr><td><strong>Lat\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "comment-chain-pattern-assumption_checks-bae0be46e0ea66b3", "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": "szp2005/ai-tools-pro", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 312783, "scanner": "foundry_dataset", "fingerprint": "e6ce5f7e9e5ebdbcc5260dc779fc310bdc0f0004729393df4ccaad23b4b4964c", "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": "szp2005/ai-tools-pro#2", "human_labels": ["dependency_or_build", "security_auth_secret", "security_or_auth", "test_ci_gap", "ui_or_frontend"], "issue_number": "2", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.877, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-3a3d576c8dcb53ea", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 13, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"ui_or_frontend": 10, "security_or_auth": 1, "dependency_or_build": 2}, "linked_commit_count": 5, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#2\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_artifact_without_verification_graph\nReasons: source_graph_has_real_artifacts, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: szp2005/ai-tools-pro#2\nRepo: szp2005/ai-tools-pro\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 4\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 13\nLabels: {'test_ci_gap': 1, 'security_auth_secret': 3}\nPolarities: {'bad': 4}\nChanged file labels: {'dependency_or_build': 2, 'security_or_auth': 1, 'ui_or_frontend': 10}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2fd30f99eaa852b2\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/2\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: szp2005/ai-tools-pro\\nAuthor: szp2005 (User)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/2\\nTitle: feat(tools): add token + cost calculator at /tools/token-cost-calculator/\\nBody:\\n## Summary\\n- Adds the Token + Cost Calculator at `/tools/token-cost-calculator/` and `/zh-cn/tools/token-cost-calculator/` on `ai.toolrouteai.com`.\\n- Uses `js-tiktoken` for GPT/Claude-style local estimates and char/4 approximation for Gemini rows.\\n- Adds manually maintained `src/data/llm_pricing.json`, SoftwareApplication JSON-LD, privacy note, Markdown copy, and local Tools index pages.\\n- Updates homepage, header/footer Tools links, and sitemap entries.\\n\\n## Screenshot\\n![Token + Cost Calculator](https://github.com/szp2005/ai-tools-pro/blob/feat/tool-token-calculator/reports/screenshots/token-cost-calculator.png?raw=1)\\n\\n## Lighthouse\\nLocal preview `http://127.0.0.1:4328/tools/token-cost-calculator/`:\\n- Performance: 100\\n- Accessibility: 100\\n- Best Practices: 100\\n- SEO: 100\\n\\n## Related internal links\\n- `/posts/claude-3-5-sonnet-vs-gpt-4o-for-complex-reasoning/`\\n- `/posts/gemini-for-content-writing-vs-gpt-4o/`\\n- `/posts/best-llm-tools\"\n  },\n  {\n    \"id\": \"github-feedback-comment-c283f9975e987f0b\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/2#issuecomment-4473373519\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: issue_comment\\nRepo: szp2005/ai-tools-pro\\nAuthor: cloudflare-workers-and-pages[bot] (Bot)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/2#issuecomment-4473373519\\nTitle: \\nBody:\\n## Deploying ai-tools-pro with &nbsp;<a href=\\\"https://pages.dev\\\"><img alt=\\\"Cloudflare Pages\\\" src=\\\"https://user-images.githubusercontent.com/23264/106598434-9e719e00-654f-11eb-9e59-6167043\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "comment-chain-pattern-assumption_checks-ce47af06ec91eca2", "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": "szp2005/ai-tools-pro", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 312782, "scanner": "foundry_dataset", "fingerprint": "4f406a5c8d93214dc9a49c4859b07001f05c62b955c4b046efff971a55be81bd", "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": "szp2005/ai-tools-pro#1", "human_labels": ["agent_instruction_gap", "api_integration_gap", "deployment_env_gap", "source_or_other", "test_ci_gap", "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.86, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-52ea0ed81870e156", "helicopter_views": {}, "artifact_families": {"docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 8, "source_graph_label": "source_artifact_without_verification_graph", "changed_file_labels": {"ui_or_frontend": 7, "source_or_other": 1}, "linked_commit_count": 5, "helicopter_view_count": 0, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 0, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#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_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: szp2005/ai-tools-pro#1\nRepo: szp2005/ai-tools-pro\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 4\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 8\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1, 'agent_instruction_gap': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 4}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b34032c31954ef6b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/1\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: szp2005/ai-tools-pro\\nAuthor: szp2005 (User)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/1\\nTitle: feat(tools): add AI Subscription Tracker at /tools/ai-subscription-tracker/\\nBody:\\n## Summary\\n- Adds the free AI Subscription Tracker at `/tools/ai-subscription-tracker/` and `/zh-cn/tools/ai-subscription-tracker/` on `ai.toolrouteai.com`.\\n- Implements vanilla JS + localStorage for add/edit/delete, monthly and YTD totals, billing alerts, low-usage cancel suggestions, and CSV import/export.\\n- Adds SoftwareApplication JSON-LD, local-only privacy copy, sitemap entries, and homepage/header/footer Tools links.\\n\\n## Screenshot\\n![AI Subscription Tracker](https://github.com/szp2005/ai-tools-pro/blob/feat/tool-subscription-tracker/reports/screenshots/ai-subscription-tracker.png?raw=1)\\n\\n## Lighthouse\\nLocal preview `http://127.0.0.1:4327/tools/ai-subscription-tracker/`:\\n- Performance: 100\\n- Accessibility: 100\\n- Best Practices: 100\\n- SEO: 100\\n\\n## Related internal links\\n- `/posts/best-ai-tools-for-solopreneurs-on-a-budget/`\\n- `/posts/notion-ai-vs-chatgpt-for-notes/`\\n- `/posts/perplexity-ai-review-2026/`\\n\\n## Validation\\n- `np\"\n  },\n  {\n    \"id\": \"github-feedback-comment-7ddc1e7ebe4a7ac2\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/szp2005/ai-tools-pro/pull/1#issuecomment-4472126306\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: szp2005/ai-tools-pro\\nAuthor: cloudflare-workers-and-pages[bot] (Bot)\\nURL: https://github.com/szp2005/ai-tools-pro/pull/1#issuecomment-4472126306\\nTitle: \\nBody:\\n## Deploying ai-tools-pro with &nbsp;<a href=\\\"https://pages.dev\\\"><img alt=\\\"Cloudflare Pages\\\" src=\\\"https://user-images.githubusercontent.com/23264/106598434-9e719e\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "comment-chain-pattern-assumption_checks-9b52f36e9c192f1f", "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": "szp2005/ai-tools-pro", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 341137, "scanner": "foundry_dataset", "fingerprint": "c9a0d39c2730bb2ed76661a402fb26a9eb35ab20857a2066e1768a7bdb3e1fbf", "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": 2, "feature": 1, "test_ci_gap": 1, "ui_or_frontend": 8, "source_or_other": 1, "deployment_env_gap": 1, "api_integration_gap": 2, "dependency_or_build": 2, "human_feedback_general": 1, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 2, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 115, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 5, "thread_has_comment": 4, "thread_touches_file": 11, "thread_has_pr_review": 1, "chain_has_link_quality": 7, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 11, "thread_has_comment_chain": 5, "comment_chain_links_commit": 7, "comment_chain_touches_file": 55, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 5}, "node_count": 35, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 4, "pr_file": 11, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 5}, "query_type": "motif_query", "thread_key": "szp2005/ai-tools-pro#3", "issue_number": "3", "quality_tiers": {"high_confidence": 3, "weak_supervision": 4}, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-3c9ed030148638da", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 64, "source_or_other": 8, "dependency_or_build": 16}}, "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: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#3\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#3\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#3\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 3\nGraph consistency label: supported_by_high_confidence_link\nNodes: 35\nEdges: 115\nNode types: {'pr_file': 11, 'link_quality': 7, 'comment_chain': 5, 'comment': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 55, 'thread_touches_file': 11, 'issue_chain_touches_file': 11, 'comment_chain_links_commit': 7, 'chain_has_link_quality': 7, 'thread_has_comment_chain': 5, 'comment_has_chain': 5, 'issue_chain_has_comment_chain': 5, 'thread_has_comment': 4, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 8, 'ambiguous_needs_more_evidence': 6, 'comment_has_related_commit_context': 4, 'api_integration_gap': 2, 'dependency_or_build': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'human_feedback_general': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1, 'feature': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 4, 'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "graph-query-motif_query-b1b3f7625a661708", "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": "szp2005/ai-tools-pro", "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: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 341136, "scanner": "foundry_dataset", "fingerprint": "c382c67a984053e98fe4fbb5c4dce970abbcf810ed5483991e193c14d1113349", "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_ci_gap": 1, "ui_or_frontend": 10, "security_or_auth": 1, "dependency_or_build": 2, "security_or_secrets": 1, "security_auth_secret": 3, "claimed_resolved_unverified": 6, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 4, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 12}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 104, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 3, "thread_touches_file": 13, "thread_has_pr_review": 1, "chain_has_link_quality": 6, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 4, "comment_chain_links_commit": 5, "comment_chain_touches_file": 48, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 33, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 3, "pr_file": 13, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 4}, "query_type": "motif_query", "thread_key": "szp2005/ai-tools-pro#2", "issue_number": "2", "quality_tiers": {"high_confidence": 3, "weak_supervision": 3}, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e801c7eed9ae1d6e", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 70, "security_or_auth": 7, "dependency_or_build": 14}}, "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: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#2\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: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#2\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 33\nEdges: 104\nNode types: {'pr_file': 13, 'link_quality': 6, 'comment_chain': 4, 'comment': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 48, 'thread_touches_file': 13, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'thread_has_comment': 3, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 10, 'claimed_resolved_unverified': 6, 'human_reported_issue_then_fix_attempt': 4, 'security_auth_secret': 3, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'security_or_auth': 1, 'security_or_secrets': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_unverified': 12}\nQuality tiers: {'weak_supervision': 3, 'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "graph-query-motif_query-c69b157abdb7626b", "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": "szp2005/ai-tools-pro", "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: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 341135, "scanner": "foundry_dataset", "fingerprint": "5e66249df3f3ca80502ff9f2810037890a404dfe38a9b9f7ea87611ff85f1483", "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, "feature": 1, "test_ci_gap": 1, "ui_or_frontend": 7, "source_or_other": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "agent_instruction_gap": 1, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "comment_has_related_commit_context": 2, "test_gap_without_verification_commit": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 2, "ambiguous_needs_more_evidence": 10}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 79, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 3, "thread_touches_file": 8, "thread_has_pr_review": 1, "chain_has_link_quality": 6, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 4, "comment_chain_links_commit": 5, "comment_chain_touches_file": 32, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 28, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 3, "pr_file": 8, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 4}, "query_type": "motif_query", "thread_key": "szp2005/ai-tools-pro#1", "issue_number": "1", "quality_tiers": {"high_confidence": 3, "weak_supervision": 3}, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-483a79b536c8df72", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 49, "source_or_other": 7}}, "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: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#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: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#1\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#1\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 1\nGraph consistency label: supported_by_high_confidence_link\nNodes: 28\nEdges: 79\nNode types: {'pr_file': 8, 'link_quality': 6, 'comment_chain': 4, 'comment': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 32, 'thread_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'thread_has_comment': 3, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 7, 'ambiguous_needs_more_evidence': 5, '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, 'agent_instruction_gap': 1, 'api_integration_gap': 1, 'source_or_other': 1, 'test_gap_without_verification_commit': 1, 'feature': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 3, 'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/szp2005/ai-tools-pro", "source_id": "graph-query-motif_query-705bacbda8f73818", "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": "szp2005/ai-tools-pro", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 335011, "scanner": "foundry_dataset", "fingerprint": "7147b5baf83e2956ad3323c4b2b82318678e80849067be2b5e79b10b3d7b0993", "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": {"bug_fix": 2, "ui_or_frontend": 7, "source_or_other": 1, "security_or_auth": 1, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "not_resolved_or_not_observed": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 4, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 2, "pr_file": 9, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "szp2005/ai-tools-pro#4", "issue_number": "4", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-7e497f71e3659d6d", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 35, "source_or_other": 5, "security_or_auth": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#4\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 25\nEdges: 56\nNode types: {'pr_file': 9, 'commit': 4, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 9, 'comment_chain_links_commit': 4, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 7, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'security_or_auth': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 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/szp2005/ai-tools-pro", "source_id": "graph-query-motif_query-7d8c9951f1ddc150", "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": "szp2005/ai-tools-pro", "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: szp2005/ai-tools-pro"}, "properties": {"repobilityId": 335010, "scanner": "foundry_dataset", "fingerprint": "985c85c3f4f4bb1868d8e4399908c04c73834bd62f2e87edbed8fb8480e7c90e", "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": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 10, "security_or_auth": 1, "dependency_or_build": 2, "security_or_secrets": 1, "security_auth_secret": 3, "claimed_resolved_unverified": 6, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 4, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 12}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 104, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 3, "thread_touches_file": 13, "thread_has_pr_review": 1, "chain_has_link_quality": 6, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 4, "comment_chain_links_commit": 5, "comment_chain_touches_file": 48, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 33, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 3, "pr_file": 13, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 4}, "query_type": "motif_query", "thread_key": "szp2005/ai-tools-pro#2", "issue_number": "2", "quality_tiers": {"high_confidence": 3, "weak_supervision": 3}, "repo_full_name": "szp2005/ai-tools-pro", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-48b8bdca76de2920", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 70, "security_or_auth": 7, "dependency_or_build": 14}}, "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: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#2\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: szp2005/ai-tools-pro\nThread: szp2005/ai-tools-pro#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: szp2005/ai-tools-pro#2\nRepo: szp2005/ai-tools-pro\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 33\nEdges: 104\nNode types: {'pr_file': 13, 'link_quality': 6, 'comment_chain': 4, 'comment': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 48, 'thread_touches_file': 13, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'thread_has_comment': 3, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 10, 'claimed_resolved_unverified': 6, 'human_reported_issue_then_fix_attempt': 4, 'security_auth_secret': 3, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'security_or_auth': 1, 'security_or_secrets': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_unverified': 12}\nQuality tiers: {'weak_supervision': 3, 'high_confidence': 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/szp2005/ai-tools-pro", "source_id": "graph-query-motif_query-36add6d58ed98e1a", "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": "szp2005/ai-tools-pro", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"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-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "2c7350ac7a5cb9c0", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-01f96f71d9907a8c", "level": "note", "message": {"text": "README lacks setup or run instructions"}, "properties": {"repobilityId": "dfa66d912720d075", "scanner": "scanner-primary", "fingerprint": "01f96f71d9907a8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "01d5f39332013c67", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "6c41357b2d5e4289", "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": "3f200792a2a9655b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}]}]}