{"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: ripe0x/pin", "shortDescription": {"text": "Foundry mined unresolved feedback: ripe0x/pin"}, "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: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#52\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: ripe0x/pin\nThread: ripe0x/pin#52\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#52\nRepo: ripe0x/pin\nIssue/PR number: 52\nGraph consistency label: supported_by_verification_signal\nNodes: 28\nEdges: 35\nNode types: {'commit': 10, 'link_quality': 6, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_fin"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: ripe0x/pin", "shortDescription": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#95\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: ripe0x/pin\nThread: ripe0x/pin#95\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#95\nRepo: ripe0x/pin\nIssue/PR number: 95\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 30\nNode types: {'commit': 8, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: ripe0x/pin", "shortDescription": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#91\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#91\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'build_install_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dac72a8840712a40\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pu"}, "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: ripe0x/pin", "shortDescription": {"text": "Foundry mined test ci gap after feedback: ripe0x/pin"}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#30\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: ripe0x/pin\nThread: ripe0x/pin#30\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#30\nRepo: ripe0x/pin\nIssue/PR number: 30\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 25\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types:"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_schema_ui_api_gap", "name": "Foundry mined schema ui api mismatch: ripe0x/pin", "shortDescription": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "fullDescription": {"text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#75\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#75\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#75\nRepo: ripe0x/pin\nIssue/PR number: 75\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit'"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: ripe0x/pin", "shortDescription": {"text": "Foundry mined bad chains: ripe0x/pin"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#94\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#94\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8d1e722470796215\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/94\",\n    \"text"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: ripe0x/pin", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: ripe0x/pin"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#99\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#99\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#99\nRepo: ripe0x/pin\nIssue/PR number: 99\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_ch"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: ripe0x/pin", "shortDescription": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "fullDescription": {"text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#97\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#97\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#97\nRepo: ripe0x/pin\nIssue/PR number: 97\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "foundry_failing_ci_claim", "name": "Foundry mined claimed resolved with failing ci: ripe0x/pin", "shortDescription": {"text": "Foundry mined claimed resolved with failing ci: ripe0x/pin"}, "fullDescription": {"text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#130\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#130\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#130\nRepo: ripe0x/pin\nIssue/PR number: 130\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 4, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': "}, "properties": {"scanner": "foundry_dataset", "category": "ci", "severity": "critical", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "scanner-02e258e1b1694e0b", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/health.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/health.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-42b25f63c857c814", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/index.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/index.ts:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99b44bfcf855fdee", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/scheduler.ts:218", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/scheduler.ts:218"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4c25e58dcd55088b", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/probe-cid-availability.ts:315", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/probe-cid-availability.ts:315"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b4469eca6c3f5b5b", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/seed-known-artists.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/seed-known-artists.ts:47"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-005a8f84e4bce859", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/scan-fnd-shared.ts:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/scan-fnd-shared.ts:80"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bebab9097d54ac1d", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/refresh-artist.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/refresh-artist.ts:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13f2a8c6dcfa3db0", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/refresh-token.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/refresh-token.ts:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7afacc5f168803d", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/scanners/manifold.ts:814", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/scanners/manifold.ts:814"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91473680d794fcea", "name": "Stray `console.log` in TS/JS \u2014 apps/worker/src/_imported-from-warmer/index.ts:127", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/_imported-from-warmer/index.ts:127"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5da00527c66bd88a", "name": "Stray `console.log` in TS/JS \u2014 apps/web/tests/e2e/fixtures/globalSetup.ts:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/tests/e2e/fixtures/globalSetup.ts:88"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ffd92961e799025", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/CampaignBanner.tsx:38", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/CampaignBanner.tsx:38"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6451635e991e1444", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/TokenCard.tsx:38", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/TokenCard.tsx:38"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ef4d4f7e0fe5e94", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/preserve/PreserveGrid.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/preserve/PreserveGrid.tsx:73"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30f6c6779b385f1e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/dependency/ContractMapTable.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/dependency/ContractMapTable.tsx:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38efaa2be06f3597", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/listings/SellerListingsView.tsx:202", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/listings/SellerListingsView.tsx:202"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f41c1275be0d0a4d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/listings/SovereignBulkPanel.tsx:893", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/listings/SovereignBulkPanel.tsx:893"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff65c74a699c5a2e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/artist/ArtistHeader.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/artist/ArtistHeader.tsx:50"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c4b494158018248", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/artist/ArtistGallery.tsx:310", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/artist/ArtistGallery.tsx:310"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0e5bea61d4e5747", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/CatalogRowLabels.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/CatalogRowLabels.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9defd8afd043b19e", "name": "Stray `console.log` in TS/JS \u2014 apps/web/src/components/catalog/useCatalogWrite.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/src/components/catalog/useCatalogWrite.ts:98"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d38bfd1b2540646", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/ContractPreview.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/ContractPreview.tsx:59"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fcaf74dda8a5313b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/TokenPreview.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/TokenPreview.tsx:53"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3dce1b283eb0e61f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/ImportPlanner.tsx:862", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/ImportPlanner.tsx:862"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da61da1bb41eed12", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/SettledAuctionSummary.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/SettledAuctionSummary.tsx:88"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af5b72233f43da97", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/AuctionPanel.tsx:373", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/AuctionPanel.tsx:373"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a50cfaab612d658e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/TokenPreview.tsx:123", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/TokenPreview.tsx:123"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18a9f40ceab9b176", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/AuctionCard.tsx:114", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/AuctionCard.tsx:114"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91a2f0e8ba58eb6c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/WorkArtistCard.tsx:136", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/WorkArtistCard.tsx:136"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71296433f3ea4dba", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/v2/ActivityRow.tsx:400", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/v2/ActivityRow.tsx:400"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4c3bec8809fb26f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/editions/MintHistory.tsx:33", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/editions/MintHistory.tsx:33"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e96f5e7bacdf8b05", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/migrate/MigratePanel.tsx:798", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/migrate/MigratePanel.tsx:798"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bdd6358a451bed05", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/sites/DeployButtons.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/sites/DeployButtons.tsx:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48ae966159280409", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/dependency/[address]/page.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/dependency/[address]/page.tsx:126"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-673784b14f99812e", "name": "TODO/FIXME marker in shipping code \u2014 apps/web/src/app/artist/[address]/page.tsx:136", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/web/src/app/artist/[address]/page.tsx:136"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71ee4480abdb74cb", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/catalog/[address]/page.tsx:152", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/catalog/[address]/page.tsx:152"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17cd1b36fee387ec", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/auction/new/AuctionNewClient.tsx:289", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/auction/new/AuctionNewClient.tsx:289"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15b0d5581a735fec", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/auction/[house]/[auctionId]/page.tsx:181", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/auction/[house]/[auctionId]/page.tsx:181"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d3cade289162b0c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/editions/page.tsx:56", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/editions/page.tsx:56"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1de684a32f726ba3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/studio/[address]/layout.tsx:86", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/studio/[address]/layout.tsx:86"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-500fbba41dd7725a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/[handle]/[tokenId]/page.tsx:513", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/[handle]/[tokenId]/page.tsx:513"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-110565730b7b150b", "name": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/components/ArtistHero.tsx:58", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/components/ArtistHero.tsx:58"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b750610caf9913cf", "name": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/components/AuctionCard.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/components/AuctionCard.tsx:47"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0c79f932c8f8d0f", "name": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/app/auction/[auctionId]/page.tsx:225", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/app/auction/[auctionId]/page.tsx:225"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a056357c83a178b5", "name": "TODO/FIXME marker in shipping code \u2014 packages/addresses/src/index.ts:18", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/addresses/src/index.ts:18"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5711bc7a764ef3d1", "name": "Dockerfile runs as root: apps/worker/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: apps/worker/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eca5e0717230c5cc", "name": "Docker base image is tag-pinned but not digest-pinned: node:22-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-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-efe21ce600f51bd3", "name": "Dockerfile runs as root: apps/indexer/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: apps/indexer/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0e4204573d940a8", "name": "Docker base image is tag-pinned but not digest-pinned: node:22-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-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-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a741316c2063b064", "name": "Insecure pattern 'node_child_process' in apps/web/scripts/ensure-env-local.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/web/scripts/ensure-env-local.mjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4cb449607f702896", "name": "Very large file: apps/web/src/components/catalog/ImportPlanner.tsx (1619 lines)", "shortDescription": {"text": "Very large file: apps/web/src/components/catalog/ImportPlanner.tsx (1619 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "16 test file(s) for 406 source file(s) (ratio 0.04). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d1ed11de463ffed", "name": "Node manifest has dependencies but no lockfile: apps/worker/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/worker/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a9eb7dc7c6e3880", "name": "Node manifest has dependencies but no lockfile: apps/web/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/web/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81eb1176870ca0fa", "name": "Node manifest has dependencies but no lockfile: apps/indexer/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/indexer/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-184c76dfd7cd2181", "name": "Node manifest has dependencies but no lockfile: packages/addresses/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/addresses/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2699d5f16ae11282", "name": "Node manifest has dependencies but no lockfile: packages/shared/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/shared/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f848f63c43f34053", "name": "Node manifest has dependencies but no lockfile: packages/abi/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/abi/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69c754f2c2ecdf03", "name": "Node manifest has dependencies but no lockfile: packages/token-metadata/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/token-metadata/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "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 125 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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 79 placeholder/mock markers across 35 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "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}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d83ca44cc3b74e10", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/scheduler.ts:131", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/scheduler.ts:131"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-edc6f9c8cbec06aa", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-fnd-collections.ts:16", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-fnd-collections.ts:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb4732da242cd2ed", "name": "Commented-code block (6 lines) in apps/worker/src/tasks/scan-fnd-collections.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in apps/worker/src/tasks/scan-fnd-collections.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d321b34770a35175", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/ponder-drift-check.ts:19", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/ponder-drift-check.ts:19"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c72c2db8e1e9c3b", "name": "Commented-code block (7 lines) in apps/worker/src/tasks/scan-token-transfers.ts:42", "shortDescription": {"text": "Commented-code block (7 lines) in apps/worker/src/tasks/scan-token-transfers.ts:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e79a05c09fb7f663", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-ens.ts:16", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-ens.ts:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6eb5557c884b0edd", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-mint-clones.ts:16", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-mint-clones.ts:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0fe40f2d73aad8b", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/probe-cid-availability.ts:39", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/probe-cid-availability.ts:39"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56456663f31a0671", "name": "Commented-code block (8 lines) in apps/worker/src/tasks/probe-cid-availability.ts:65", "shortDescription": {"text": "Commented-code block (8 lines) in apps/worker/src/tasks/probe-cid-availability.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9fe1c88c7dc34cb5", "name": "Commented-code block (5 lines) in apps/worker/src/tasks/scan-fnd-shared.ts:62", "shortDescription": {"text": "Commented-code block (5 lines) in apps/worker/src/tasks/scan-fnd-shared.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1704a8eeb3d5a201", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/refresh-artist.ts:28", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/refresh-artist.ts:28"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7faa3c8bbcfe7534", "name": "Commented-code block (5 lines) in apps/worker/src/tasks/refresh-artist.ts:102", "shortDescription": {"text": "Commented-code block (5 lines) in apps/worker/src/tasks/refresh-artist.ts:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b2f97ffb6355c93", "name": "Commented-code block (6 lines) in apps/worker/src/tasks/scan-1155-stats.ts:80", "shortDescription": {"text": "Commented-code block (6 lines) in apps/worker/src/tasks/scan-1155-stats.ts:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bacf4a2b413466be", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-contract-identity.ts:34", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-contract-identity.ts:34"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a7155bd95400e4d", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-tl-clones.ts:18", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-tl-clones.ts:18"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72cba40bc9f00b36", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-metadata.ts:23", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-metadata.ts:23"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c810c4f9a365eca9", "name": "Commented-code block (9 lines) in apps/worker/src/tasks/warm-metadata.ts:33", "shortDescription": {"text": "Commented-code block (9 lines) in apps/worker/src/tasks/warm-metadata.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b64d5dd9c3df040", "name": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-pnd-auction-tokens.ts:39", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-pnd-auction-tokens.ts:39"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9bb5b892f4a09ff1", "name": "Commented-code block (9 lines) in apps/worker/src/scanners/manifold.ts:131", "shortDescription": {"text": "Commented-code block (9 lines) in apps/worker/src/scanners/manifold.ts:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea8f5ef35d9fad6a", "name": "Commented-code block (5 lines) in apps/worker/src/_imported-from-warmer/index.ts:152", "shortDescription": {"text": "Commented-code block (5 lines) in apps/worker/src/_imported-from-warmer/index.ts:152"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-255ee3fa89fc2d46", "name": "Commented-code block (6 lines) in apps/worker/src/_imported-from-warmer/foundation-scan.ts:296", "shortDescription": {"text": "Commented-code block (6 lines) in apps/worker/src/_imported-from-warmer/foundation-scan.ts:296"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2077e9fd99c756b2", "name": "Commented-code block (5 lines) in apps/worker/src/_imported-from-warmer/manifold-discovery.ts:270", "shortDescription": {"text": "Commented-code block (5 lines) in apps/worker/src/_imported-from-warmer/manifold-discovery.ts:270"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78a210b01949d840", "name": "Commented-code block (5 lines) in apps/web/src/components/AddressZorb.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/components/AddressZorb.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a72f1a71063c2bc", "name": "Commented-code block (8 lines) in apps/web/src/components/Providers.tsx:66", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web/src/components/Providers.tsx:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d82dbfc169ecbf9c", "name": "Commented-code block (6 lines) in apps/web/src/components/token/TokenMedia.tsx:57", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/components/token/TokenMedia.tsx:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64a775934d6e7d80", "name": "Commented-code block (7 lines) in apps/web/src/components/listings/BulkDelistPanel.tsx:17", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web/src/components/listings/BulkDelistPanel.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72ac5fe0246b2242", "name": "Commented-code block (6 lines) in apps/web/src/components/listings/SovereignBulkPanel.tsx:780", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/components/listings/SovereignBulkPanel.tsx:780"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eccf6729a4ddf960", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/listings/SovereignBulkPanel.tsx:645", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/listings/SovereignBulkPanel.tsx:645"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78a1618397764186", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/artist/ArtistGallery.tsx:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/artist/ArtistGallery.tsx:40"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4af8b2fc83cfc493", "name": "Commented-code block (5 lines) in apps/web/src/components/catalog/useCatalogWrite.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/components/catalog/useCatalogWrite.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4f6ea3b9011a33b", "name": "Commented-code block (7 lines) in apps/web/src/components/catalog/AddEntryForm.tsx:159", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web/src/components/catalog/AddEntryForm.tsx:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c1c7655a18a60c7", "name": "Commented-code block (7 lines) in apps/web/src/components/catalog/AddEntrySection.tsx:42", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web/src/components/catalog/AddEntrySection.tsx:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3a99b8dfc8375d8", "name": "Commented-code block (6 lines) in apps/web/src/components/catalog/ImportPlanner.tsx:127", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/components/catalog/ImportPlanner.tsx:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4e84bf4b93f32af", "name": "Commented-code block (5 lines) in apps/web/src/components/catalog/useCatalogMulticall.ts:143", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/components/catalog/useCatalogMulticall.ts:143"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79e96c899a18d785", "name": "Commented-code block (6 lines) in apps/web/src/components/auction/AuctionPanel.tsx:36", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/components/auction/AuctionPanel.tsx:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ffba26b24ce3c39", "name": "Commented-code block (10 lines) in apps/web/src/components/home/HomeSquare.tsx:109", "shortDescription": {"text": "Commented-code block (10 lines) in apps/web/src/components/home/HomeSquare.tsx:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f2033f70011a3b1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/home/LazyAuctionCard.tsx:104", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/home/LazyAuctionCard.tsx:104"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-52bcfd830959b6b9", "name": "Commented-code block (5 lines) in apps/web/src/components/home/ActiveAuctionsStrip.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/components/home/ActiveAuctionsStrip.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ffd1cc0ecb8fa1b7", "name": "Commented-code block (5 lines) in apps/web/src/components/home/v2/ActivityFeed.tsx:34", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/components/home/v2/ActivityFeed.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a878a27dad9cbeec", "name": "Commented-code block (5 lines) in apps/web/src/components/home/v2/ActivityFeedClient.tsx:119", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/components/home/v2/ActivityFeedClient.tsx:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f37e151c4bec52f", "name": "Commented-code block (7 lines) in apps/web/src/components/migrate/MigratePanel.tsx:51", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web/src/components/migrate/MigratePanel.tsx:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a9fce8d65f7c468", "name": "Commented-code block (6 lines) in apps/web/src/components/tx/tx-ui.tsx:17", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/components/tx/tx-ui.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5bfb6dc25675f92", "name": "Commented-code block (5 lines) in apps/web/src/app/delist/DelistClient.tsx:44", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/app/delist/DelistClient.tsx:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38af83980ffb3ed2", "name": "Commented-code block (5 lines) in apps/web/src/app/api/preserve/writeback/route.ts:127", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/app/api/preserve/writeback/route.ts:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f586fe6d124200f2", "name": "Commented-code block (6 lines) in apps/web/src/app/api/activity/route.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/app/api/activity/route.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5864131cd5ac2076", "name": "Commented-code block (5 lines) in apps/web/src/app/api/meta/[contract]/[tokenId]/route.ts:29", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/app/api/meta/[contract]/[tokenId]/route.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ccc0a57a7554f82", "name": "Commented-code block (7 lines) in apps/web/src/app/api/rpc/route.ts:44", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web/src/app/api/rpc/route.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b6b12238a9ce1dd", "name": "Commented-code block (6 lines) in apps/web/src/app/api/revalidate/route.ts:112", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/app/api/revalidate/route.ts:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd0690d408ea993b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/app/api/revalidate/route.ts:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/app/api/revalidate/route.ts:114"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5852a09c1f034558", "name": "Commented-code block (7 lines) in apps/web/src/app/artist/[address]/page.tsx:70", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web/src/app/artist/[address]/page.tsx:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0d4a6180889ffd7", "name": "Commented-code block (9 lines) in apps/web/src/app/log/page.tsx:42", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web/src/app/log/page.tsx:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7faf21f2aefb917", "name": "Commented-code block (6 lines) in apps/web/src/app/[handle]/[tokenId]/page.tsx:96", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/app/[handle]/[tokenId]/page.tsx:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9eb24a41cfe93a80", "name": "Commented-code block (7 lines) in apps/web/src/app/sites/page.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web/src/app/sites/page.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29fab3aa9b21f4a2", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/reads.ts:18", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/reads.ts:18"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8fdf96575c88b73e", "name": "Commented-code block (5 lines) in apps/web/src/lib/catalog.ts:141", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/catalog.ts:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ef315e2963f6903", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/auctions.ts:37", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/auctions.ts:37"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1d9e8287b29ee99", "name": "Commented-code block (10 lines) in apps/web/src/lib/auctions.ts:686", "shortDescription": {"text": "Commented-code block (10 lines) in apps/web/src/lib/auctions.ts:686"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d54d62bb27fd8c7", "name": "Commented-code block (5 lines) in apps/web/src/lib/rpc-log.ts:65", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/rpc-log.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28b1f9f2b20e2a16", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/indexer-queries.ts:106", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/indexer-queries.ts:106"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e5e6dcf5396ccd7", "name": "Commented-code block (5 lines) in apps/web/src/lib/indexer-queries.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/indexer-queries.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8603816e069a1b5", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/dependency-check.ts:191", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/dependency-check.ts:191"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17803ab22b927b94", "name": "Commented-code block (6 lines) in apps/web/src/lib/dependency-check.ts:386", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/lib/dependency-check.ts:386"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a46331265d60fd68", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/onchain-discovery.ts:281", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/onchain-discovery.ts:281"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-410e0f67a12be0fb", "name": "Commented-code block (9 lines) in apps/web/src/lib/onchain-discovery.ts:171", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web/src/lib/onchain-discovery.ts:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-568b0a0cabd034ee", "name": "Commented-code block (5 lines) in apps/web/src/lib/artist-cache.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/artist-cache.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7edda31bd0907f2", "name": "Commented-code block (6 lines) in apps/web/src/lib/wagmi.ts:14", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/lib/wagmi.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e092c41fcb833871", "name": "Commented-code block (5 lines) in apps/web/src/lib/alchemy-rpc.ts:24", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/alchemy-rpc.ts:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27dfaa3774df957b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/seller-listings.ts:87", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/seller-listings.ts:87"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6fea9902e29933d", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/last-sale.ts:17", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/last-sale.ts:17"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2a2ecc1504bff3e", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/sovereign-house.ts:5", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/sovereign-house.ts:5"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8597d710e231eee", "name": "Commented-code block (9 lines) in apps/web/src/lib/pg-cache.ts:81", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web/src/lib/pg-cache.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6b82f9b63b9a516", "name": "Commented-code block (5 lines) in apps/web/src/lib/artist-queries.ts:34", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/artist-queries.ts:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a4ab71d29b85f2b", "name": "Commented-code block (5 lines) in apps/web/src/lib/metadata-host.ts:91", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/metadata-host.ts:91"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd121a0a44aa6b11", "name": "Commented-code block (6 lines) in apps/web/src/lib/db.ts:62", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/lib/db.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0626d62cb8d2b600", "name": "Commented-code block (5 lines) in apps/web/src/lib/useSequentialCancel.ts:277", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/useSequentialCancel.ts:277"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37d70757a5ef6157", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/transient.ts:10", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/transient.ts:10"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dce4a84e206712ad", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/sovereign.ts:8", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/sovereign.ts:8"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acbcbc8545607e7d", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/superrareV2.ts:11", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/superrareV2.ts:11"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3b8bd0c5daba6c0", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/mint.ts:8", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/mint.ts:8"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0dbea458d23e1e3e", "name": "Commented-code block (5 lines) in apps/web/src/lib/platforms/cancel-calls.test.ts:30", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/platforms/cancel-calls.test.ts:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78bfd89c7c1b714f", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/foundation.ts:48", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/foundation.ts:48"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b1911e9756f80584", "name": "Commented-code block (10 lines) in apps/web/src/lib/platforms/foundation.ts:16", "shortDescription": {"text": "Commented-code block (10 lines) in apps/web/src/lib/platforms/foundation.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d07bc648002964e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/pinning/4everland.ts:139", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/pinning/4everland.ts:139"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc1dc71301be3e19", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/pinning/pinata.ts:98", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/pinning/pinata.ts:98"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c842232103e7369d", "name": "Commented-code block (5 lines) in apps/web/src/lib/import-sources/brinkman-map.ts:130", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/lib/import-sources/brinkman-map.ts:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0be652fe2766d998", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/import-sources/brinkman.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/import-sources/brinkman.ts:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94b0a6437b10f35d", "name": "Commented-code block (9 lines) in apps/web/src/lib/import-sources/normalize.ts:168", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web/src/lib/import-sources/normalize.ts:168"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad36d25db4400a6d", "name": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/import-sources/pnd-indexed.ts:29", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/import-sources/pnd-indexed.ts:29"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-549faa412a771f96", "name": "Commented-code block (6 lines) in apps/web/src/lib/import-sources/pnd-indexed.ts:78", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/lib/import-sources/pnd-indexed.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fe4cf2ba7730074", "name": "Commented-code block (6 lines) in apps/indexer/ponder.schema.ts:318", "shortDescription": {"text": "Commented-code block (6 lines) in apps/indexer/ponder.schema.ts:318"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-398096adba2eefe9", "name": "Commented-code block (7 lines) in apps/indexer/ponder.config.ts:101", "shortDescription": {"text": "Commented-code block (7 lines) in apps/indexer/ponder.config.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e725d172f46cca1a", "name": "Commented-code block (5 lines) in apps/indexer/abis/Catalog.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/indexer/abis/Catalog.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-154c3b5c9a4cc785", "name": "Commented-code block (5 lines) in apps/indexer/abis/TransientAuctionHouse.ts:117", "shortDescription": {"text": "Commented-code block (5 lines) in apps/indexer/abis/TransientAuctionHouse.ts:117"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4212a9d30e2e1eb", "name": "Commented-code block (6 lines) in apps/indexer/src/index.ts:78", "shortDescription": {"text": "Commented-code block (6 lines) in apps/indexer/src/index.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d52a52ef237db64", "name": "Legacy-named symbol `ponder_v1` in scripts/probe-cid-dryrun.mjs:53", "shortDescription": {"text": "Legacy-named symbol `ponder_v1` in scripts/probe-cid-dryrun.mjs:53"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0e54edc23ca881a", "name": "Commented-code block (5 lines) in scripts/probe-cid-dryrun.mjs:257", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/probe-cid-dryrun.mjs:257"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c219a111d0955181", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fork-fast-forward.mjs:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fork-fast-forward.mjs:45"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5325a1c6bdadca72", "name": "Commented-code block (5 lines) in scripts/scan-fnd-discovery-seeds.mjs:5", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/scan-fnd-discovery-seeds.mjs:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07a443a17ab3c2e8", "name": "Commented-code block (5 lines) in scripts/srv2-fork-test.mjs:152", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/srv2-fork-test.mjs:152"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae417069fa27ae41", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/srv2-fork-test.mjs:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/srv2-fork-test.mjs:44"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-898dae431908c30e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-pinata-pin.mjs:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-pinata-pin.mjs:72"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1810cca6f7422fe2", "name": "Commented-code block (5 lines) in scripts/tl-fork-test.mjs:266", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/tl-fork-test.mjs:266"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58fb487f0fe2ddab", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/tl-fork-test.mjs:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/tl-fork-test.mjs:48"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-604ac637d6f4f393", "name": "Commented-code block (6 lines) in scripts/scan-fnd-active-auctions.mjs:6", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/scan-fnd-active-auctions.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-840e75f404dfcc3e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/srv2-spaces-test.mjs:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/srv2-spaces-test.mjs:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67ac0311156e8c25", "name": "Commented-code block (6 lines) in templates/artist-page/components/BidForm.tsx:41", "shortDescription": {"text": "Commented-code block (6 lines) in templates/artist-page/components/BidForm.tsx:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ba750340a226672", "name": "Commented-code block (7 lines) in templates/artist-page/lib/config.ts:25", "shortDescription": {"text": "Commented-code block (7 lines) in templates/artist-page/lib/config.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68c6ac6e0f0ed6ec", "name": "Commented-code block (5 lines) in templates/artist-page/lib/rpc.ts:79", "shortDescription": {"text": "Commented-code block (5 lines) in templates/artist-page/lib/rpc.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-932f4332b417a474", "name": "Commented-code block (5 lines) in templates/artist-page/lib/metadata.ts:29", "shortDescription": {"text": "Commented-code block (5 lines) in templates/artist-page/lib/metadata.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b87565edbc8f23f5", "name": "Commented-code block (7 lines) in templates/artist-page/lib/token.ts:94", "shortDescription": {"text": "Commented-code block (7 lines) in templates/artist-page/lib/token.ts:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2318d9395432751a", "name": "Commented-code block (5 lines) in packages/addresses/src/index.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in packages/addresses/src/index.ts:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-246527d1e74ad917", "name": "Commented-code block (5 lines) in packages/shared/src/ipfs.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/ipfs.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee59809f904307c1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/shared/src/ipfs.ts:300", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/shared/src/ipfs.ts:300"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13bd77153988e769", "name": "Commented-code block (5 lines) in packages/abi/src/transientAuctionHouse.ts:117", "shortDescription": {"text": "Commented-code block (5 lines) in packages/abi/src/transientAuctionHouse.ts:117"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c06b7927acc570f5", "name": "Commented-code block (8 lines) in packages/abi/src/manifoldCreatorCore.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in packages/abi/src/manifoldCreatorCore.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70c2bf1c72333b81", "name": "Commented-code block (6 lines) in packages/token-metadata/src/index.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in packages/token-metadata/src/index.ts:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca45982217d63a14", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/token-metadata/src/index.ts:193", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/token-metadata/src/index.ts:193"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99b55d14ec628940", "name": "37 env vars used in code but missing from .env.example", "shortDescription": {"text": "37 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALCHEMY_MAINNET_URL`, `AWS_LAMBDA_FUNCTION_NAME`, `CI`, `CID_PROBE_ARWEAVE_TIMEOUT_MS`, `CID_PROBE_BATCH_SIZE`, `CID_PROBE_GATEWAY_DELAY_MS`, `CID_PROBE_IPFS_TIMEOUT_MS`, `CID_PROBE_RETRY_AFTER_DAYS` + 29 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bbda9b443e627ee1", "name": "Dangling fetch: POST https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getNFTMetadataBatch (apps/worker/src/scanners/manif", "shortDescription": {"text": "Dangling fetch: POST https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getNFTMetadataBatch (apps/worker/src/scanners/manifold.ts:843)"}, "fullDescription": {"text": "`apps/worker/src/scanners/manifold.ts:843` calls `POST https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getNFTMetadataBatch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/eth-mainnet.g.alchemy.com/nft/v3/<p>/getnftmetadatabatch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c525a7881b77be0", "name": "Dangling fetch: GET http://127.0.0.1:${APP_PORT}/editions/new (apps/web/tests/e2e/fixtures/globalSetup.ts:145)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${APP_PORT}/editions/new (apps/web/tests/e2e/fixtures/globalSetup.ts:145)"}, "fullDescription": {"text": "`apps/web/tests/e2e/fixtures/globalSetup.ts:145` calls `GET http://127.0.0.1:${APP_PORT}/editions/new` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/editions/new`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-05dc456b54052092", "name": "Dangling fetch: GET /api/muri/eligible/${address.toLowerCase()} (apps/web/src/components/muri/MuriMintFlow.tsx:48)", "shortDescription": {"text": "Dangling fetch: GET /api/muri/eligible/${address.toLowerCase()} (apps/web/src/components/muri/MuriMintFlow.tsx:48)"}, "fullDescription": {"text": "`apps/web/src/components/muri/MuriMintFlow.tsx:48` calls `GET /api/muri/eligible/${address.toLowerCase()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/muri/eligible/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9dffc336e0de76d0", "name": "Dangling fetch: POST /api/refresh-token/${contract}/${tokenId} (apps/web/src/components/token/RefreshMetadataButton.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/refresh-token/${contract}/${tokenId} (apps/web/src/components/token/RefreshMetadataButton.tsx:50)"}, "fullDescription": {"text": "`apps/web/src/components/token/RefreshMetadataButton.tsx:50` calls `POST /api/refresh-token/${contract}/${tokenId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/refresh-token/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d274842e29f28f9f", "name": "Dangling fetch: POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()} (apps/web/src/components/list", "shortDescription": {"text": "Dangling fetch: POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()} (apps/web/src/components/listings/BulkDelistPanel.tsx:131)"}, "fullDescription": {"text": "`apps/web/src/components/listings/BulkDelistPanel.tsx:131` calls `POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/seller-listings/revalidate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-53a3e59394c6f195", "name": "Dangling fetch: GET /api/meta/${s.tokenContract}/${s.tokenId.toString()} (apps/web/src/components/listings/SovereignBulk", "shortDescription": {"text": "Dangling fetch: GET /api/meta/${s.tokenContract}/${s.tokenId.toString()} (apps/web/src/components/listings/SovereignBulkPanel.tsx:790)"}, "fullDescription": {"text": "`apps/web/src/components/listings/SovereignBulkPanel.tsx:790` calls `GET /api/meta/${s.tokenContract}/${s.tokenId.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/meta/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70dd70af09fdce01", "name": "Dangling fetch: GET /api/meta/${c.toLowerCase()}/${tokenId} (apps/web/src/components/catalog/useTokenInfo.ts:43)", "shortDescription": {"text": "Dangling fetch: GET /api/meta/${c.toLowerCase()}/${tokenId} (apps/web/src/components/catalog/useTokenInfo.ts:43)"}, "fullDescription": {"text": "`apps/web/src/components/catalog/useTokenInfo.ts:43` calls `GET /api/meta/${c.toLowerCase()}/${tokenId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/meta/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-080c62353160f63f", "name": "Dangling fetch: POST /api/catalog/${connected.toLowerCase()}/revalidate (apps/web/src/components/catalog/useCatalogWrite", "shortDescription": {"text": "Dangling fetch: POST /api/catalog/${connected.toLowerCase()}/revalidate (apps/web/src/components/catalog/useCatalogWrite.ts:84)"}, "fullDescription": {"text": "`apps/web/src/components/catalog/useCatalogWrite.ts:84` calls `POST /api/catalog/${connected.toLowerCase()}/revalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/catalog/<p>/revalidate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0515799155aae90f", "name": "Dangling fetch: GET /api/contract-info/${lower} (apps/web/src/components/catalog/useContractInfo.ts:51)", "shortDescription": {"text": "Dangling fetch: GET /api/contract-info/${lower} (apps/web/src/components/catalog/useContractInfo.ts:51)"}, "fullDescription": {"text": "`apps/web/src/components/catalog/useContractInfo.ts:51` calls `GET /api/contract-info/${lower}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contract-info/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a475e558924c1cb0", "name": "Dangling fetch: POST /api/refresh-artist/${artistAddress} (apps/web/src/components/catalog/RefreshButton.tsx:50)", "shortDescription": {"text": "Dangling fetch: POST /api/refresh-artist/${artistAddress} (apps/web/src/components/catalog/RefreshButton.tsx:50)"}, "fullDescription": {"text": "`apps/web/src/components/catalog/RefreshButton.tsx:50` calls `POST /api/refresh-artist/${artistAddress}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/refresh-artist/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7655e5eb92d72d67", "name": "Dangling fetch: POST /api/catalog/${connected.toLowerCase()}/revalidate (apps/web/src/components/catalog/useCatalogMulti", "shortDescription": {"text": "Dangling fetch: POST /api/catalog/${connected.toLowerCase()}/revalidate (apps/web/src/components/catalog/useCatalogMulticall.ts:150)"}, "fullDescription": {"text": "`apps/web/src/components/catalog/useCatalogMulticall.ts:150` calls `POST /api/catalog/${connected.toLowerCase()}/revalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/catalog/<p>/revalidate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2435e8cf112eb535", "name": "Dangling fetch: GET /api/meta/${contract}/${tokenId} (apps/web/src/components/home/LazyAuctionCard.tsx:104)", "shortDescription": {"text": "Dangling fetch: GET /api/meta/${contract}/${tokenId} (apps/web/src/components/home/LazyAuctionCard.tsx:104)"}, "fullDescription": {"text": "`apps/web/src/components/home/LazyAuctionCard.tsx:104` calls `GET /api/meta/${contract}/${tokenId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/meta/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2622e55845705ccd", "name": "Dangling fetch: GET /api/activity?${params} (apps/web/src/components/home/v2/ActivityFeedClient.tsx:66)", "shortDescription": {"text": "Dangling fetch: GET /api/activity?${params} (apps/web/src/components/home/v2/ActivityFeedClient.tsx:66)"}, "fullDescription": {"text": "`apps/web/src/components/home/v2/ActivityFeedClient.tsx:66` calls `GET /api/activity?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eea4c83bcf750961", "name": "Dangling fetch: GET /api/artist/${address}/ens-url (apps/web/src/components/studio/StudioActionQueue.tsx:58)", "shortDescription": {"text": "Dangling fetch: GET /api/artist/${address}/ens-url (apps/web/src/components/studio/StudioActionQueue.tsx:58)"}, "fullDescription": {"text": "`apps/web/src/components/studio/StudioActionQueue.tsx:58` calls `GET /api/artist/${address}/ens-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/artist/<p>/ens-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf230560b0a679e3", "name": "Dangling fetch: POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()} (apps/web/src/components/migr", "shortDescription": {"text": "Dangling fetch: POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()} (apps/web/src/components/migrate/MigratePanel.tsx:439)"}, "fullDescription": {"text": "`apps/web/src/components/migrate/MigratePanel.tsx:439` calls `POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/seller-listings/revalidate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8fe8c56f4582925", "name": "Dangling fetch: GET /api/artist/${artistAddress}/ens-url (apps/web/src/components/sites/SitePanel.tsx:25)", "shortDescription": {"text": "Dangling fetch: GET /api/artist/${artistAddress}/ens-url (apps/web/src/components/sites/SitePanel.tsx:25)"}, "fullDescription": {"text": "`apps/web/src/components/sites/SitePanel.tsx:25` calls `GET /api/artist/${artistAddress}/ens-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/artist/<p>/ens-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-139686bbf742e87f", "name": "Dangling fetch: GET /api/artist/${targetAddress}/preserve-tokens (apps/web/src/app/preserve/page.tsx:140)", "shortDescription": {"text": "Dangling fetch: GET /api/artist/${targetAddress}/preserve-tokens (apps/web/src/app/preserve/page.tsx:140)"}, "fullDescription": {"text": "`apps/web/src/app/preserve/page.tsx:140` calls `GET /api/artist/${targetAddress}/preserve-tokens` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/artist/<p>/preserve-tokens`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38f7ae5734bde0e2", "name": "Dangling fetch: POST /api/preserve/writeback (apps/web/src/app/preserve/page.tsx:434)", "shortDescription": {"text": "Dangling fetch: POST /api/preserve/writeback (apps/web/src/app/preserve/page.tsx:434)"}, "fullDescription": {"text": "`apps/web/src/app/preserve/page.tsx:434` calls `POST /api/preserve/writeback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/preserve/writeback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dcb55cd17e6b14b0", "name": "Dangling fetch: GET /api/artist/${connected}/tokens?page=0&pageSize=24 (apps/web/src/app/auction/new/AuctionNewClient.ts", "shortDescription": {"text": "Dangling fetch: GET /api/artist/${connected}/tokens?page=0&pageSize=24 (apps/web/src/app/auction/new/AuctionNewClient.tsx:234)"}, "fullDescription": {"text": "`apps/web/src/app/auction/new/AuctionNewClient.tsx:234` calls `GET /api/artist/${connected}/tokens?page=0&pageSize=24` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/artist/<p>/tokens`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d84a2402c2ae4471", "name": "Dangling fetch: GET /api/seller-listings/${sellerAddress.toLowerCase()} (apps/web/src/lib/seller-listings.ts:87)", "shortDescription": {"text": "Dangling fetch: GET /api/seller-listings/${sellerAddress.toLowerCase()} (apps/web/src/lib/seller-listings.ts:87)"}, "fullDescription": {"text": "`apps/web/src/lib/seller-listings.ts:87` calls `GET /api/seller-listings/${sellerAddress.toLowerCase()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/seller-listings/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e11e403db987169", "name": "Dangling fetch: GET /api/meta/${l.nftContract}/${l.tokenId} (apps/web/src/lib/seller-listings.ts:181)", "shortDescription": {"text": "Dangling fetch: GET /api/meta/${l.nftContract}/${l.tokenId} (apps/web/src/lib/seller-listings.ts:181)"}, "fullDescription": {"text": "`apps/web/src/lib/seller-listings.ts:181` calls `GET /api/meta/${l.nftContract}/${l.tokenId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/meta/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca62e618073cb789", "name": "Dangling fetch: GET https://enstate.rs/a/${lowerAddress} (apps/web/src/lib/artist-queries.ts:334)", "shortDescription": {"text": "Dangling fetch: GET https://enstate.rs/a/${lowerAddress} (apps/web/src/lib/artist-queries.ts:334)"}, "fullDescription": {"text": "`apps/web/src/lib/artist-queries.ts:334` calls `GET https://enstate.rs/a/${lowerAddress}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/enstate.rs/a/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41a7647318633769", "name": "Dangling fetch: GET https://api.ensideas.com/ens/resolve/${lowerAddress} (apps/web/src/lib/artist-queries.ts:348)", "shortDescription": {"text": "Dangling fetch: GET https://api.ensideas.com/ens/resolve/${lowerAddress} (apps/web/src/lib/artist-queries.ts:348)"}, "fullDescription": {"text": "`apps/web/src/lib/artist-queries.ts:348` calls `GET https://api.ensideas.com/ens/resolve/${lowerAddress}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.ensideas.com/ens/resolve/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-875c7c06d634ae19", "name": "Dangling fetch: GET https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getContractMetadata?contractAddress=${contract} (app", "shortDescription": {"text": "Dangling fetch: GET https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getContractMetadata?contractAddress=${contract} (apps/web/src/lib/import-sources/pnd-indexed.ts:211)"}, "fullDescription": {"text": "`apps/web/src/lib/import-sources/pnd-indexed.ts:211` calls `GET https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getContractMetadata?contractAddress=${contract}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/eth-mainnet.g.alchemy.com/nft/v3/<p>/getcontractmetadata`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0996f660303536df", "name": "Dangling fetch: POST /api/refresh-token (templates/artist-page/components/RefreshMetadataButton.tsx:44)", "shortDescription": {"text": "Dangling fetch: POST /api/refresh-token (templates/artist-page/components/RefreshMetadataButton.tsx:44)"}, "fullDescription": {"text": "`templates/artist-page/components/RefreshMetadataButton.tsx:44` calls `POST /api/refresh-token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/refresh-token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`apps/indexer/src/api/index.ts` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-316f498f9851e2fa", "name": "Unused endpoint: USE /graphql", "shortDescription": {"text": "Unused endpoint: USE /graphql"}, "fullDescription": {"text": "`apps/indexer/src/api/index.ts` declares `USE /graphql` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18183"}, "properties": {"repository": "ripe0x/pin", "repoUrl": "https://github.com/ripe0x/pin", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: ripe0x/pin"}, "properties": {"repobilityId": 429306, "scanner": "foundry_dataset", "fingerprint": "7cfd46ce2ba41067eed22ea96af035b5cc6b5d8ff672368ebf39f633fa2bfdac", "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": 6, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 4, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_verification_signal": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 6, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 28, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 3, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#52", "issue_number": "52", "quality_tiers": {"unresolved": 1, "assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a47355f6cdcd5e70", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#52\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: ripe0x/pin\nThread: ripe0x/pin#52\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#52\nRepo: ripe0x/pin\nIssue/PR number: 52\nGraph consistency label: supported_by_verification_signal\nNodes: 28\nEdges: 35\nNode types: {'commit': 10, 'link_quality': 6, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 6, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 6, 'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 4, 'unresolved': 1, 'assumption_check': 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/ripe0x/pin", "source_id": "graph-query-motif_query-a778af3126b7e584", "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": "ripe0x/pin", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: ripe0x/pin"}, "properties": {"repobilityId": 429305, "scanner": "foundry_dataset", "fingerprint": "826ee4240d0d00f6e1273dc3843362bfae5182f2ab418e9e3ff2c9fe477d30bb", "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, "deployment_env_gap": 2, "verification_or_tests": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 21, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#34", "issue_number": "34", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-43e3e9872eb1171c", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#34\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: ripe0x/pin\nThread: ripe0x/pin#34\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#34\nRepo: ripe0x/pin\nIssue/PR number: 34\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 21\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, '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: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'deployment_env_gap': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 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/ripe0x/pin", "source_id": "graph-query-motif_query-b471b7c76c796427", "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": "ripe0x/pin", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: ripe0x/pin"}, "properties": {"repobilityId": 429304, "scanner": "foundry_dataset", "fingerprint": "cbb5c421d37b8ac2c18eee03b9677d548a85ce98b8f90591a86ba7f91623c29a", "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": 3, "test_ci_gap": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#30", "issue_number": "30", "quality_tiers": {"unresolved": 1, "assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-083744c4cc9f1c72", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#30\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: ripe0x/pin\nThread: ripe0x/pin#30\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#30\nRepo: ripe0x/pin\nIssue/PR number: 30\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 25\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1, 'assumption_check': 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/ripe0x/pin", "source_id": "graph-query-motif_query-9f334d4aa8195088", "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": "ripe0x/pin", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403042, "scanner": "foundry_dataset", "fingerprint": "b0626736998d2c9b4f1797860b2266d100b947a392e7b98de889fea0987c6777", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 3, "ui_workflow_gap": 1, "deployment_env_gap": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#95", "issue_number": "95", "quality_tiers": {"high_confidence": 4, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-953786cd7b385413", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#95\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: ripe0x/pin\nThread: ripe0x/pin#95\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#95\nRepo: ripe0x/pin\nIssue/PR number: 95\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 30\nNode types: {'commit': 8, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'claimed_resolved_with_verification_signal': 4, 'bug_fix': 3, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-87f3b5f87f4f37f8", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403041, "scanner": "foundry_dataset", "fingerprint": "8f02731b0843fd2768ebc787e3cc0d02b02fad43e6e9762f6b6bd48b88f7bdae", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 7, "ui_workflow_gap": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#77", "issue_number": "77", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-615473dc9efb21bf", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#77\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: ripe0x/pin\nThread: ripe0x/pin#77\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#77\nRepo: ripe0x/pin\nIssue/PR number: 77\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-1e3c7b7569e419f1", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403040, "scanner": "foundry_dataset", "fingerprint": "8d109a09afdfae9f2d50493574ef5cace98a2a66717f39cb4b83b6a98b7c9d78", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 6, "deployment_env_gap": 1, "verification_or_tests": 3, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#75", "issue_number": "75", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ec141fb9ab3ba1dc", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#75\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: ripe0x/pin\nThread: ripe0x/pin#75\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#75\nRepo: ripe0x/pin\nIssue/PR number: 75\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 6, 'claimed_resolved_with_verification_signal': 4, 'verification_or_tests': 3, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-88a074b513869da7", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403039, "scanner": "foundry_dataset", "fingerprint": "52b7d57e796755f1173bea6a3e2bffa81abed612ac1b6d24775f3870668a28bc", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "data_schema": 2, "deployment_env_gap": 1, "security_or_secrets": 2, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#64", "issue_number": "64", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ed5afa60fa989d2d", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#64\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: ripe0x/pin\nThread: ripe0x/pin#64\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#64\nRepo: ripe0x/pin\nIssue/PR number: 64\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 30\nNode types: {'commit': 7, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'claimed_resolved_unverified': 3, 'data_schema': 2, 'security_or_secrets': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-21def31703419ce2", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403038, "scanner": "foundry_dataset", "fingerprint": "3647aa41479258688a3f1ebd14e3813cfd21e8bd268af117a2170bc2ee6858aa", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 27, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 7, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#57", "issue_number": "57", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-d5f9b55cd12ae2f8", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#57\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: ripe0x/pin\nThread: ripe0x/pin#57\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#57\nRepo: ripe0x/pin\nIssue/PR number: 57\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 27\nNode types: {'commit': 6, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 7, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-66c519df391ea1d4", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403037, "scanner": "foundry_dataset", "fingerprint": "d01391759884704f534f3a999880239afc2010510b2f20306d06a56a4ddc31de", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 6, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#54", "issue_number": "54", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-e4a6bd9ff382e01c", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#54\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: ripe0x/pin\nThread: ripe0x/pin#54\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#54\nRepo: ripe0x/pin\nIssue/PR number: 54\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 6, 'claimed_resolved_with_verification_signal': 4, 'verification_or_tests': 3, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-3525133c8bd72061", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403036, "scanner": "foundry_dataset", "fingerprint": "707d4da98223f7dc825a795dea62284aec8f91eaa97dcd1268f5d67a8e99fa54", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 5, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#53", "issue_number": "53", "quality_tiers": {"high_confidence": 4, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-9ef01e3cd25d2c07", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#53\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: ripe0x/pin\nThread: ripe0x/pin#53\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#53\nRepo: ripe0x/pin\nIssue/PR number: 53\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 30\nNode types: {'commit': 7, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 5, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-a714b9fdd6fbf381", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403035, "scanner": "foundry_dataset", "fingerprint": "284a7507b9dab1ec6bdae5a87ecec5d3b549048722b653d580187df89b61ea16", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 6, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 4, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 2, "claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 6, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 28, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 3, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#52", "issue_number": "52", "quality_tiers": {"unresolved": 1, "assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c603d91b04e7ca62", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#52\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: ripe0x/pin\nThread: ripe0x/pin#52\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#52\nRepo: ripe0x/pin\nIssue/PR number: 52\nGraph consistency label: supported_by_verification_signal\nNodes: 28\nEdges: 35\nNode types: {'commit': 10, 'link_quality': 6, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 6, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 6, 'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 4, 'unresolved': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-28baea1e5547114f", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403034, "scanner": "foundry_dataset", "fingerprint": "ae711153a314778ba7b33fdea4b5777ef8d3f5dac7616b2151bb86c2692ea18d", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 7, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#47", "issue_number": "47", "quality_tiers": {"high_confidence": 4, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-2d3c21f8020acc63", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#47\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: ripe0x/pin\nThread: ripe0x/pin#47\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#47\nRepo: ripe0x/pin\nIssue/PR number: 47\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'comment_has_related_commit_context': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-98c0d34436560e7c", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403033, "scanner": "foundry_dataset", "fingerprint": "abe2a63fcda0ba4daf7633f46c7e95697627c9f94f58e05872d41bdbe380910e", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 6, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#42", "issue_number": "42", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-dab393ab6663f81a", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#42\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: ripe0x/pin\nThread: ripe0x/pin#42\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#42\nRepo: ripe0x/pin\nIssue/PR number: 42\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 30\nNode types: {'commit': 10, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 6, 'bug_fix': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-1b74526a25ea4700", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403032, "scanner": "foundry_dataset", "fingerprint": "d6fdf539c88ca236b2a21bd866368f6818491f637dae46332eaf1dc942f4359e", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 3, "test_ci_gap": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#30", "issue_number": "30", "quality_tiers": {"unresolved": 1, "assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-0333cfff8268aeaf", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#30\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: ripe0x/pin\nThread: ripe0x/pin#30\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#30\nRepo: ripe0x/pin\nIssue/PR number: 30\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 25\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-a59e15d28c8ac232", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403031, "scanner": "foundry_dataset", "fingerprint": "d7a176d103f85bdf3e29a6d22f181d623f711befdc4f12596f8857dfbdf2bf10", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "ui_workflow_gap": 1, "deployment_env_gap": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#27", "issue_number": "27", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-1cd891f0ed43871f", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#27\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: ripe0x/pin\nThread: ripe0x/pin#27\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#27\nRepo: ripe0x/pin\nIssue/PR number: 27\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 30\nNode types: {'commit': 8, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 4, 'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-20cace3e79c56caa", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403030, "scanner": "foundry_dataset", "fingerprint": "b8b8e6a1b12cb9db408ca21081308a085a54f3edccd55f8c9be9dbfff8e1d736", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 3, "deployment_env_gap": 1, "api_integration_gap": 1, "verification_or_tests": 7, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#26", "issue_number": "26", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ca25cb9867f6aecb", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#26\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: ripe0x/pin\nThread: ripe0x/pin#26\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#26\nRepo: ripe0x/pin\nIssue/PR number: 26\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 30\nNode types: {'commit': 10, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 7, 'claimed_resolved_with_verification_signal': 4, 'bug_fix': 3, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-cb456813bb30fd7e", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403029, "scanner": "foundry_dataset", "fingerprint": "2b351b87cedaf1a5fee50fc1e6c66e55975055cce022e9337275d95f61a47462", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "deployment_env_gap": 1, "verification_or_tests": 6, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#19", "issue_number": "19", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-958123d4c56d90f7", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#19\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: ripe0x/pin\nThread: ripe0x/pin#19\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#19\nRepo: ripe0x/pin\nIssue/PR number: 19\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 30\nNode types: {'commit': 10, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 6, 'bug_fix': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-ce203f01edd4bfd8", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403028, "scanner": "foundry_dataset", "fingerprint": "cf9124d034a9708d0d2f22e04a11a91c796b53fa49b423657dc5da4eaf99fde3", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 3, "ui_or_frontend": 1, "ui_workflow_gap": 1, "ci_failure_signal": 1, "generated_provenance": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_failing_ci_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#130", "issue_number": "130", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ddf6363b4c4edad3", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#130\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: ripe0x/pin\nThread: ripe0x/pin#130\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#130\nRepo: ripe0x/pin\nIssue/PR number: 130\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 4, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 4, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_failing_ci_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'generated_provenance': 1, 'ci_failure_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-ac9b324d60aa5531", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403027, "scanner": "foundry_dataset", "fingerprint": "33ea913520f600fdce99fa407ee60bf07aaf6322a3845951b48a15d551df9d5f", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "ui_or_frontend": 1, "ui_workflow_gap": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#128", "issue_number": "128", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-b6d2f5ed0565bf34", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#128\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: ripe0x/pin\nThread: ripe0x/pin#128\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#128\nRepo: ripe0x/pin\nIssue/PR number: 128\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-cf79ef4a5ac5e85d", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403026, "scanner": "foundry_dataset", "fingerprint": "1ce129d4921bdf74b5dd1e24260e93638a050e48bca064d387ea2ad51541e9bc", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "ui_or_frontend": 1, "api_integration_gap": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#125", "issue_number": "125", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-4f8386f22b633fdd", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#125\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: ripe0x/pin\nThread: ripe0x/pin#125\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#125\nRepo: ripe0x/pin\nIssue/PR number: 125\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-12ec67d3106db00f", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403025, "scanner": "foundry_dataset", "fingerprint": "c775f94b5dd52fc9a522e5cbab4d54dc6977200bccedea772aca100a9d9934a3", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 3, "data_schema": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#113", "issue_number": "113", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-e623d44ceb3bfda8", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#113\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: ripe0x/pin\nThread: ripe0x/pin#113\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#113\nRepo: ripe0x/pin\nIssue/PR number: 113\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 35\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ui_or_frontend': 3, 'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'schema_or_data': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'data_schema': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-43f451f3be94b7cf", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403024, "scanner": "foundry_dataset", "fingerprint": "69abc9b9332b7808098813936bafcd3d8b1baeb5df5a21c217ba2ce4bfd849ef", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "verification_or_tests": 3, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#107", "issue_number": "107", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-8ee029597e526aba", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#107\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: ripe0x/pin\nThread: ripe0x/pin#107\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#107\nRepo: ripe0x/pin\nIssue/PR number: 107\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-694356ae6a7526b5", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403023, "scanner": "foundry_dataset", "fingerprint": "ca231c80ea193da65aee4b3dc128b3f398ae6dab067befb84e9f047162672fd4", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "verification_or_tests": 3, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#106", "issue_number": "106", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-d5254efc756992f0", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#106\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: ripe0x/pin\nThread: ripe0x/pin#106\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#106\nRepo: ripe0x/pin\nIssue/PR number: 106\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-c59f40ccb692b335", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: ripe0x/pin"}, "properties": {"repobilityId": 403022, "scanner": "foundry_dataset", "fingerprint": "4ae1becb92f255e842a0a0616341c455a033e9d3f4cad8ae01bc8df8c44fdf19", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "test_ci_gap": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#103", "issue_number": "103", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-7dcd4a8df576fb4f", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#103\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: ripe0x/pin\nThread: ripe0x/pin#103\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#103\nRepo: ripe0x/pin\nIssue/PR number: 103\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-06a5ee76a020f3c3", "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": "ripe0x/pin", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381604, "scanner": "foundry_dataset", "fingerprint": "6c754ce4581290281af264cf241bf90b72ce41aafd51485b9264a0e0f5b883f8", "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": "ripe0x/pin#91", "human_labels": ["build_install_failure", "deployment_env_gap"], "issue_number": "91", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-55c9eed4b0599c14", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#91\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#91\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'build_install_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dac72a8840712a40\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/91\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/91\\nTitle: artist-page restyle (mono header + TokenCard) + template media video support\\nBody:\\nCommits the in-progress artist-page work from the main worktree, rebased onto latest `main` (incl. #90). Two scoped commits:\\n\\n## 1. `apps/web` \u2014 artist-page restyle\\n- **ArtistHeader**: compact mono name, address as an evm.now link + copy button, mono \\\"N works \u00b7 N active auctions\\\" stats.\\n- New shared **`TokenCard`** frame (mono title in a tinted footer); **ArtistGallery** and **MoreFromContract** render through it.\\n- Minor Navbar/Footer + artist/token page adjustments.\\n\\n## 2. `templates/artist-page` \u2014 token media video/animation support\\n- `TokenMedia` takes `image` + `animationUrl` and renders video when present.\\n- `AuctionCardImage` handles a video stuffed in the image field with no extension.\\n- `metadata.ts` surfaces `animationUrl`; auction page passes it through.\\n\\n## Notes\\n- Integrated `#90` first (clean ff + no-conflict re-apply); the template auction page keeps both the #90 footer and the new `animationUrl` wiring.\\n- Excluded a stray\"\n  },\n  {\n    \"id\": \"github-feedback-comment-58bbcadbea328bdd\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/91#issuecomment-4523048793\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/91#issuecomment-4523048793\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 0e93bc15e1bfa4283af118169ac4081d3c007f2a |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-f625664f80bd4cf7", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381603, "scanner": "foundry_dataset", "fingerprint": "975d14cbad4a0db2ad89caf391195fa180133cb853ac1ed1fee907e8e62c5df7", "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": "ripe0x/pin#90", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "90", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-e137e1f259fd2bb8", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#90\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#90\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-36854d658b39b3c8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/90\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/90\\nTitle: style(artist-page): align template with main site type/whitespace\\nBody:\\n## Summary\\n\\nBrings the self-hosted artist template in line with the main PND artist-page restyle (type + whitespace), verified in a local preview.\\n\\n- **Hero** \u2014 small mono name (`text-base font-mono`), address as an evm.now link + copy button, stats as mono `N auctions \u00b7 N live`. Dropped the big bold name and the standalone Auction house pill.\\n- **Cards** \u2014 mono titles in a tinted `bg-surface-muted` footer, stacked above the caption; standard gray border on all (removed the active-state highlight); eased line-boxes/spacing.\\n- **Auction CTA buttons** \u2014 `text-[11px] font-mono uppercase tracking-wider`.\\n- **Navbar** \u2014 theme toggle removed.\\n- **Footer** \u2014 theme toggle relocated here; arrows + Wallet/Factory links dropped; now renders on the auction/token detail page too. Left label reads \\\"&lt;artist&gt;'s **independent auction house**\\\" with that phrase linking to the house on evm.now.\\n- New `CopyAddressButton` client component.\\n\\n## Verification\\n\\n- [x] `\"\n  },\n  {\n    \"id\": \"github-feedback-comment-f59e99bb598ff264\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/90#issuecomment-4522989636\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/90#issuecomment-4522989636\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | e6cf00f9590a76d47e8a110afc2623f8f2f79970 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-2203e98be201b4b9", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381602, "scanner": "foundry_dataset", "fingerprint": "be3775f12c46153e5392e62cc0205c8d39d3e82fb122c13fc97ffd1cde057d16", "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": "ripe0x/pin#89", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "89", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-58d2ee9e3c089146", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#89\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#89\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-532d52425a6c2b14\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/89\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/89\\nTitle: fix(web): auction panel shows Awaiting first bid for no-bid auctions\\nBody:\\n## Summary\\n\\nA Sovereign auction with **no bids** was showing the header **\\\"Live auction\\\"** on PND, while the self-hosted template correctly showed **\\\"Awaiting first bid\\\"** (e.g. token 12's auction, `firstBidTime = 0`).\\n\\nRoot cause: `getPhase()` correctly returns `\\\"no-bids\\\"` for an auction with no first bid, but the panel's `headerLabel` and `dotColor` ternaries only handled `\\\"settled\\\"` and `\\\"ended-unsettled\\\"` \u2014 so `\\\"no-bids\\\"` fell through to the `\\\"Live auction\\\"` default. The read layer (`readPndAuctionForToken` \u2192 `awaitingFirstBid = first_bid_time === \\\"0\\\"`) was correct all along; only the label was missing the case.\\n\\nFix: add the `\\\"no-bids\\\"` branch to both \u2014 label **\\\"Awaiting first bid\\\"** and a static (non-pulsing) dot so it doesn't read as actively live.\\n\\n## Verification\\n\\n- [x] `tsc --noEmit` passes for `apps/web`\\n- [x] Matches on-chain truth (auction 14 / token 12: `firstBidTime = 0`, no bidder) and the self-hosted template's behavior\\n- [ ] Vis\"\n  },\n  {\n    \"id\": \"github-feedback-comment-673c690eef964ce0\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/89#issuecomment-4522722438\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/89#issuecomment-4522722438\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 805d929950bc8f2ad0a65b48a0a3be7681965d15 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span>\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-2e26ac5eaf268253", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381601, "scanner": "foundry_dataset", "fingerprint": "129f1d826a2490978490b191246c9e5e3eb8ef9347ff9b23420a901934880450", "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": "ripe0x/pin#88", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "88", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-03a05a865b77c501", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#88\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#88\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a0fba6be8f50ee45\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/88\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/88\\nTitle: feat(web): Token not found UI for non-existent tokens\\nBody:\\n## Summary\\n\\nA token id that was never minted (e.g. pasting an **auction id** into the **token-id** URL slot \u2014 `\u2026/14` when the highest token is 12) rendered a blank artwork shell with a `#id` fallback, looking exactly like a metadata-load failure. Now it shows a clear **\\\"Token not found\\\"** page.\\n\\n## How it avoids false 404s\\n\\nExistence is decided by a *positive* on-chain signal only \u2014 `tokenExistsOnChain()` returns:\\n- `true` \u2014 `ownerOf` returned an address\\n- `false` \u2014 **confirmed ERC-721** contract (ERC-165 check) whose `ownerOf` reverts \u2192 genuinely doesn't exist\\n- `null` \u2014 ERC-1155 / non-standard / RPC error \u2192 render normally\\n\\nThe probe runs **only when the indexer AND metadata both have nothing** (we were about to render blank), so:\\n- It never fires for indexed tokens or ones mid-self-heal \u2192 **no regression to the metadata self-heal**, and no RPC on the common path.\\n- A real-but-unindexed fresh mint returns `true` (ownerOf works) \u2192 renders normally, not 404.\\n\\n#\"\n  },\n  {\n    \"id\": \"github-feedback-comment-c6984aa8844a2e1f\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/88#issuecomment-4522643274\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/88#issuecomment-4522643274\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 9594bc87f4013b2fdca287ba6b6a6a11ad6079ac |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy l\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-709bb2c2b901a933", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381600, "scanner": "foundry_dataset", "fingerprint": "408e0cb81f34a58bfd7f242532f632548e6a3af46b463faf16bf464733a55185", "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": "ripe0x/pin#87", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "87", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-51f7bc943d453e92", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#87\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#87\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8716479bbc855356\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/87\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/87\\nTitle: fix(web,worker): self-heal failed token metadata (no more 7-day blanks)\\nBody:\\n## Summary\\n\\nFollow-up to #85. Fixes the root cause behind tokens (e.g. b888b's #11/#12) loading blank: PND conflated \\\"metadata fetch failed\\\" with \\\"token genuinely has no metadata,\\\" wrote an all-NULL row for both, and only retried it after **7 days**. New mints get fetched before their arweave upload propagates \u2192 blank row \u2192 stuck for a week.\\n\\nThe resolver only sets `raw_uri` when it actually retrieved the file, so that's the success signal:\\n\\n- **Web read path** (`onchain-discovery.ts`): a row WITH `raw_uri` is final (returned as-is, even if sparse; never re-fetched). A row with `raw_uri` NULL is a *failed* fetch \u2192 treated like a cache miss and re-resolved on view, throttled by a 60s cooldown so reloads / dead links don't fan out. A blank token now self-heals on the next view.\\n- **Worker sweep** (`warm-metadata.ts`): retry `raw_uri IS NULL` rows on a short cadence (`WARMER_RETRY_AFTER` default 5 min, was 7 days); never touch rows with `raw_uri`\"\n  },\n  {\n    \"id\": \"github-feedback-comment-3369114970329249\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/87#issuecomment-4522508430\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/87#issuecomment-4522508430\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 7c59c454c14568bad7729e34b06580a5db4043a8 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | h\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-0112d31368727a09", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381599, "scanner": "foundry_dataset", "fingerprint": "2e909c14a9e5c1c89dfc9038fc5067dc5ffdabcc0c0c8c8bccbfd59e2d3a4f8f", "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": "ripe0x/pin#86", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "86", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-db11f25a20239246", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 9, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#86\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#86\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 9\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d4261dcae566420d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/86\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/86\\nTitle: feat(token): move Refresh-metadata button under the Source list\\nBody:\\nMoves the Refresh-metadata button from beside the title to the bottom of the sidebar, under the Source (Metadata/Artwork) links \u2014 it operates on the same source data. Still self-gates to owner/creator + admins.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-7efdb2ae49d6256a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/86#issuecomment-4521982830\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/86#issuecomment-4521982830\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 7f857f5b65bcf766f75425b4a27380775752d57a |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netlify.com/projects/art-pin/deploys/6a10a941f069fd0008fd8159 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\ude0e</span> Deploy Preview | [https://deploy-preview-86--art-pin.netlify.app](https://deploy-preview-86--art-pin.netlify.app) |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udcf1</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTg2LS1hcnQtcGluLm5ldGxpZnkuYXBwIn0.UKKH8aBHqOLHoXszBW_qgzqmUKpaS01J9sJ8C6FJCIg)<br /><br />_Use your smartphone camera to open QR code link._</details> |\\n---\\n<!-- [art-pin Preview](https://deploy-preview-86--art-pin.netlify.app) -->\\n_To edit notification comments on pul\"\n  }\n]\nChanged files:\n[]\nL\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-c7cc91504a8189c6", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381598, "scanner": "foundry_dataset", "fingerprint": "d352ee1e606134f636018e16b113192ee55f951f60f7874a7354ac1f9a988cd8", "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": "ripe0x/pin#85", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "85", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1de27793e546d27f", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 15, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#85\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#85\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 3\nLinked commit count: 15\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 2, 'deployment_env_gap': 1}\nPolarities: {'bad': 3}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1504047dfdbbcd5a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/85\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/85\\nTitle: feat(web,worker): per-token Refresh metadata button\\nBody:\\n## Summary\\n\\nAdds a per-token \\\"Refresh metadata\\\" button on the token page (owner/creator only), so a stuck or stale title/image can be fixed on demand instead of waiting for the background sweep \u2014 directly motivated by tokenId 11 on b888b's collection (\\\"The Pond Remembers\\\") showing as `#11`: its metadata resolves fine now, but PND is sitting on a sentinel row that won't retry for 7 days.\\n\\n**Worker**\\n- `tasks/refresh-token.ts` \u2014 force re-resolve `tokenURI` and upsert `token_metadata`. On a failed/empty resolve it only bumps `fetched_at` and **never overwrites good content with a sentinel** (a manual refresh must not make a row worse).\\n- Single-flight `refreshTokenQueue` + drain (every 2s) in the scheduler.\\n- `POST /jobs/refresh-token/:contract/:tokenId` (secret-gated, mirrors `refresh-artist`).\\n\\n**Web**\\n- `/api/refresh-token/[contract]/[tokenId]` \u2014 validate \u2192 **rate-limit once/hour/token** via the stored `fetched_at` (no migration) \u2192 forward to worker. 404 for unkn\"\n  },\n  {\n    \"id\": \"github-feedback-comment-60e44931199d8cb7\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/85#issuecomment-4520271213\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/85#issuecomment-4520271213\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | d359f947e6e49a93fd23a2131ef4a4873a2b14dc |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-30eff79d1a971be5", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381597, "scanner": "foundry_dataset", "fingerprint": "17af097207c9867a03db38fda36efc49da3a485b4ebe7aa9b05c057a5bab1c81", "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": "ripe0x/pin#83", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "83", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-16849e296c86ec78", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#83\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#83\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-47f30b6529921459\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/83\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/83\\nTitle: feat(artist-page): Refresh metadata button on the auction page\\nBody:\\n## Summary\\n\\nA visitor-facing \\\"Refresh metadata\\\" control on the auction page, for when a token's title/image changes (reveal, correction, swapped media) and shouldn't wait out the 24h cache.\\n\\n- New public `POST /api/refresh-token` that invalidates **only one token's** metadata tag and revalidates the viewed auction path \u2014 tiny blast radius, so it's safe without a secret (unlike the owner-only `/api/revalidate`).\\n- **Server-side rate limiting** (can't be bypassed from the client): 30s per-token cooldown + per-IP burst cap. Best-effort in-memory to keep the template dependency-free; a high-traffic deploy could back it with KV.\\n- The button calls the endpoint, then `router.refresh()` to pull the updated metadata into the page, with a local cooldown so it can't be mashed.\\n\\nCost note: `revalidateTag` only *marks* the cache entry stale \u2014 the real on-chain/gateway re-fetch happens once on the next render regardless of click volume, so the rate limit mainly pro\"\n  },\n  {\n    \"id\": \"github-feedback-comment-8bb049a36a2b394d\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/83#issuecomment-4519144485\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/83#issuecomment-4519144485\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | e5c8114887cfdc05ffcaad157badef8017d2fd02 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | ht\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-e91b3c4d4a873013", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381596, "scanner": "foundry_dataset", "fingerprint": "80ad8455e3c747702af767ab18ec8597e6d4058b392b279c40b0a9ee3a1efe33", "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": "ripe0x/pin#82", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "82", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-173a03dd95e05643", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#82\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#82\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6a8336ed401ab63f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/82\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/82\\nTitle: feat(artist-page): on-demand metadata revalidation (one token or whole site)\\nBody:\\n## Summary\\n\\nMetadata is cached 24h, but it isn't always immutable (reveals, corrected metadata, swapped media). This adds a way for the site owner to force a refresh without waiting for the TTL.\\n\\n- Each token's cache entry now carries a **per-token tag** (`token-metadata:<contract>:<id>`) alongside the global `token-metadata` tag.\\n- New `POST /api/revalidate`:\\n  - `?token=0xCONTRACT:TOKENID` \u2192 refresh one token\\n  - no param \u2192 refresh every token\\n  - gated by a `REVALIDATE_SECRET` env var (endpoint disabled if unset) so it can't be spammed to hammer RPC / IPFS gateways. POST only; secret via `x-revalidate-secret` header or `?secret=`.\\n- Documented in `.env.example` and the README.\\n\\n## Verification (local `next start`)\\n\\n- [x] 401 with no secret / wrong secret; 405 on GET\\n- [x] 200 + `all-token-metadata` for whole-site; 200 + normalized `contract:id` for single token\\n- [x] 400 on malformed `token` param\\n- [x] Builds, types + lint pass; route\"\n  },\n  {\n    \"id\": \"github-feedback-comment-a26e75c26912cf7b\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/82#issuecomment-4519068175\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/82#issuecomment-4519068175\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 1aaebcd9bc2c83aeba09c1c13f8a31d80c33be8b |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy lo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-76854fd87bee3940", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381595, "scanner": "foundry_dataset", "fingerprint": "710e205ef350cdbc038299002d77ad3e6bcb13e81c58e974f61b76e69330db11", "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": "ripe0x/pin#80", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "80", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-0ed83ca53e938885", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#80\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#80\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6d9e19750e6e40b9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/80\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/80\\nTitle: docs: root onboarding notes + v2 doc audit + ponder/ cleanup\\nBody:\\n## Summary\\n\\nOnboarding notes and a doc audit so future sessions stop reconstructing the architecture from stale docs / a stale local env (the failure mode that cost a recent session hours).\\n\\n**New onboarding (Job 1)**\\n- `AGENTS.md` (+ `CLAUDE.md` \u2192 `@AGENTS.md`): apps layout (web reads Postgres / worker owns all chain scanning / indexer = Ponder discovery-only), the discovery-vs-token-scanning cost rule, prod = `maglev` DB with `INDEXER_SCHEMA=ponder_v1`, the stale untracked `ponder/` trap, worker RPC global throttle + Alchemy backstop, migrations flow (+ flagged `016` prod drift), deploy topology, and \\\"don't revive the `*-into-ponder` branches.\\\"\\n\\n**Doc audit/fixes (Job 2)**\\n- `README.md`: corrected \\\"No Netlify / one Railway project\\\" \u2014 web actually deploys on **Netlify** (`netlify.toml`); worker+indexer+pg on Railway. `apps/web/railway.json` is vestigial.\\n- `docs/adding-a-platform.md`: **rewritten for v2**. The old doc described web-side `lazy_*` scannin\"\n  },\n  {\n    \"id\": \"github-feedback-comment-e0c15ded33c6990a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/80#issuecomment-4514464262\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/80#issuecomment-4514464262\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 1580f729c334885a10334fbdc8d2f0f92bbc8ec2 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log |\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-71cb0830cee547e7", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381594, "scanner": "foundry_dataset", "fingerprint": "9251e50bca541eb309e09826fb5e77b05a1cf97478a39a5bc949ebf7b08d91f6", "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": "ripe0x/pin#79", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "79", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-76f6ce71bff4b98a", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#79\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#79\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5630f0cd104c0494\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/79\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/79\\nTitle: ERC1155 edition count + mint history (worker-side)\\nBody:\\n## What & why\\nMint-protocol (and other) ERC-1155 token pages showed no edition count and no mint history. Root cause: the worker's `scan-1155-stats` derives supply from an on-chain `totalSupply(id)` call, which **reverts** on Mint protocol contracts (no `ERC1155Supply`), and there was no mint-history source. The mint-clone scanner already fetched the `TransferSingle`/`TransferBatch` mint events but discarded the `value` and per-event detail.\\n\\nThis computes both from events the scanner is already pulling \u2014 no new `getLogs`, no Ponder change, no architecture move (discovery stays in `apps/indexer`, scanning stays in `apps/worker`).\\n\\n## Changes\\n- **`db/migrations/017_token_1155_mints.sql`** \u2014 mint-history table (one row per mint event).\\n- **`apps/worker/src/scanners/erc1155-mints.ts`** \u2014 keep the mint `value` + recipient + tx, write a `token_1155_mints` row per mint (deduped `getBlock` per mint block for real timestamps).\\n- **`apps/worker/src/tasks/scan-1155-stats.ts\"\n  },\n  {\n    \"id\": \"github-feedback-comment-b5010e5092a0e99c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/79#issuecomment-4511826585\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/79#issuecomment-4511826585\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 7820ace885176f58975ffad8f32d804c3aed27b7 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | http\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-e6698ca61aaa0c2c", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381593, "scanner": "foundry_dataset", "fingerprint": "e8a862ee43b746c0ed75e6d573982598fbc66d49aa5eb83c3139a14f860ed749", "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": "ripe0x/pin#78", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "78", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-4cf9645100cb0896", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#78\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#78\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-16aaa34642a92a46\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/78\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/78\\nTitle: feat(worker): index tokens auctioned on non-platform contracts\\nBody:\\n## Summary\\nTokens sold via a PND/sovereign auction on a contract outside the known platform list (Foundation/SuperRare/Mint/TL/Manifold) were never indexed \u2014 so the token page showed no artist/owner/provenance/image (only the auction panel, which reads `pnd_auctions`).\\n\\nNew `scan-pnd-auction-tokens` worker task ingests any `(contract, token)` in `pnd_auctions` not yet in `artist_tokens`:\\n- Finds the mint (`Transfer(0x0 \u2192 recipient, tokenId)`, tokenId-topic-filtered, walking back from the listing block) and records the **mint recipient** as creator \u2014 not the auction seller (who isn't necessarily the artist).\\n- **Attribution guard (option B):** only credit the creator when the mint recipient equals an auction seller or is a known artist; otherwise skip rather than assert a wrong creator.\\n- Once a row lands, existing `scan-token-transfers` / `warm-metadata` / `resolveNewTokenOwner` fill owner/provenance/image. No web change needed (`getTokenOnChainData` a\"\n  },\n  {\n    \"id\": \"github-feedback-comment-af72e6eb68e6a018\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/78#issuecomment-4510960971\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/78#issuecomment-4510960971\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | f53dcce9b50e7c8a79133047308f6ebefd817de4 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https:\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-2a82bb790bc116a4", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381592, "scanner": "foundry_dataset", "fingerprint": "3e387bf28444f6d4d8d0b7347d02ac121368e4f381b7ff54f4e2702158733ba6", "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": "ripe0x/pin#77", "human_labels": ["deployment_env_gap", "ui_workflow_gap"], "issue_number": "77", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-54582dd738cf6a42", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#77\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#77\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'ui_workflow_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f3bbe28099d35654\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/77\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/77\\nTitle: fix(artist-page): bid panel reflects new bids promptly\\nBody:\\n## Summary\\n\\nAfter placing a bid, the auction page's bid panel could keep showing \\\"Awaiting first bid\\\" / reserve price for a while even though the bid had landed on-chain.\\n\\nIt self-corrected on the next refetch \u2014 the panel's live `auctions(id)` read polls every 12s \u2014 but the poll **pauses while the tab is backgrounded** (react-query's default `refetchIntervalInBackground: false`), which is exactly what happens during the wallet popup / tx confirmation. So the update didn't land until the user refocused the tab.\\n\\nTwo small changes:\\n- **`refetchIntervalInBackground: true`** on the `auctions(id)` and `getMinBidAmount` reads, so the poll keeps running through the bid flow and the panel updates promptly \u2014 one extra poll during an active bid, no steady-state RPC change.\\n- **Drop the SSR `initialData` seed** on the `auctions(id)` read so the live read is the single source of truth (first paint still uses the same server `initial.*` values via the existing `?? BigInt(initia\"\n  },\n  {\n    \"id\": \"github-feedback-comment-03627aa8505d19c2\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/77#issuecomment-4510698193\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/77#issuecomment-4510698193\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | c98cb017d9657eff5b387d5b9916c3ac967246d6 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-47f4062becfda7aa", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381591, "scanner": "foundry_dataset", "fingerprint": "be2a2c34bf83200297945c323bbf869d9f05dfcc8cf0ecc981d5eeff162fb217", "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": "ripe0x/pin#76", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "76", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-72b6538601c79cc1", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#76\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#76\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b5f7df3b2dd2d1b1\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/76\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/76\\nTitle: fix(artist-page): one grid card per token (dedupe cancelled relists)\\nBody:\\n## Summary\\n\\nThe auction grid rendered one card per auction, so a token that was listed, cancelled, and relisted multiple times appeared multiple times \u2014 including the cancelled listings as standalone token cards.\\n\\nThe grid now shows **one card per token**, keeping the most relevant auction per work (active > ending > listed > settled > cancelled, newest auctionId breaking ties). Tokens whose only auctions were cancelled are dropped. `getAllAuctions` stays complete, so direct links to any auction (including cancelled ones) still resolve on the detail page.\\n\\n## Test plan\\n\\n- [x] `next build` against a live house where token 10 was listed/cancelled twice then relisted live\\n- [x] Grid collapses 12 cards \u2192 10 unique tokens; token 10 shown once as the live auction (11), cancelled auctions 9 & 10 dropped\\n- [x] `/auction/10` (cancelled) still returns 200 via direct link\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-e658b2f8c7124f60\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/76#issuecomment-4510517201\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/76#issuecomment-4510517201\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 92871d42de3c8b7af62ebe49e9e66874acab8005 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netlify.com\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-e19c451d74b596db", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381590, "scanner": "foundry_dataset", "fingerprint": "dfa1cbaaffbfce0e7e38539256f74989a1afce82d27d94880249484022ccc072", "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": "ripe0x/pin#71", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "71", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-876064984e55a880", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#71\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#71\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b5497f63901e4f2c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/71\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/71\\nTitle: feat(catalog-import): pre-populate from indexed data\\nBody:\\n## Summary\\nRe-lands #70 on a fresh base. #70's branch was cut from `feat/v2-rebuild`, which squash-merged into `main` via #69 \u2014 so #70 went DIRTY when retargeted to `main`. This branch is the net diff of #70 applied cleanly onto post-#69 `main` (verified: zero diff vs #70's tip across all 18 touched files).\\n\\n- Indexed-work pre-fill panel on `/catalog/[address]`\\n- `ImportPlanner` redesign: flat owner-controlled list, select-all, total-supply, merged manual-add form\\n- Recency-first contract ordering\\n- `ARCHITECTURE.md` (Ponder-vs-worker split)\\n- Runtime-aware DB pool (tiny on serverless, real pool long-running)\\n- Catalog ISR 60s -> 1h\\n- Worker `scan-fnd-shared` (Foundation 1/1 backfill scoped to known_artists)\\n\\n## Test plan\\n- [x] Net diff matches #70 tip exactly (no conflict markers)\\n- [x] Deploy preview spot-check: 5 artists' token totals match v2 DB (2101/2028/1606/1431/1253)\\n- [ ] Deploy-preview build green\"\n  },\n  {\n    \"id\": \"github-feedback-comment-6fad2b2ae567ab75\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/71#issuecomment-4508781333\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/71#issuecomment-4508781333\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | a09657c49233a6907cb1d2d253deb5c276784786 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netlify.com/projects/art-pin/deploys/6a0f\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-907682eaffc91551", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381589, "scanner": "foundry_dataset", "fingerprint": "9d62f22bda5e9f4d585a5ccb5b9d5dd0eb504ac0b439f76525278fdf49d66087", "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": "ripe0x/pin#70", "human_labels": ["deployment_env_gap", "human_feedback_general", "security_auth_secret"], "issue_number": "70", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-5180317f083cdf3c", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 11, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#70\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#70\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 3\nLinked commit count: 11\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 2, 'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-696eae422372043c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/70\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/70\\nTitle: feat(catalog-import): pre-populate from indexed data\\nBody:\\n## Summary\\n\\n- New `pnd-indexed` import-source adapter (server-only) reads from `public.artist_tokens` UNION the Ponder `${INDEXER_SCHEMA}.fnd_artist_tokens` / `srv2_artist_tokens` shared-platform tables, joined with `public.token_metadata` for titles + image URLs. Any artist with indexed tokens gets a one-click prefill of the Catalog declaration form.\\n- Refactors the import-source registry from a one-source-per-artist map keyed by address into a provider pattern: each source carries a stable `id` and the page picks via `?source=` (with a small picker rendered when more than one applies). Brinkman's bespoke adapter stays; pnd-indexed covers everyone else.\\n- Dedup against the on-chain Catalog snapshot is unchanged \u2014 pnd-indexed emits everything indexed for the artist and `normalize.ts` filters already-declared tokens downstream, so the artist gets an honest \\\"already in catalog\\\" count alongside the prefill.\\n\\n## Notes\\n\\n- Chain hardcoded to mainnet (all indexed platf\"\n  },\n  {\n    \"id\": \"github-feedback-comment-64ec49586ee47e6a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/70#issuecomment-4493854500\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/70#issuecomment-4493854500\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | a0477fa72728889725470f08e25469b65da8a045 |\\n|<span aria-hidd\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-afa4d155bdde9b60", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381588, "scanner": "foundry_dataset", "fingerprint": "84f0eab1abf0c39f0c64dbbebe64f5c43e9ca6a18f18e2a5b995155c0830b62d", "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": "ripe0x/pin#68", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "68", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-f5ddd889d1a9b242", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#68\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#68\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-3d892c9f187c1ca0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/68\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/68\\nTitle: ponder: index SuperRare V2 artist-tokens; remove web-side scan\\nBody:\\n## Summary\\n\\nFinal artist-token migration on the long-term plan. After this lands plus #64 / #65 / #66 / #67, the only platform still using the web-side lazy-scan path is Manifold (Etherscan-driven, can't fit Ponder cleanly).\\n\\nSimpler than #66 / #67 because SR V2 is a single static contract \u2014 no factory pattern. Mints arrive as \\\\`Transfer(from=0x0, to=artist)\\\\` directly to the creator, so no \\\\`tokenCreator()\\\\` follow-up is needed.\\n\\n## Ponder side\\n\\n**Config** \u2014 registers \\\\`SuperRareNFT\\\\` at \\\\`0xb932\u2026b9e0\\\\` (start block 8_000_000, Aug 2019).\\n\\n**Schema** \u2014 one new table:\\n- \\\\`srv2_artist_tokens\\\\` (PK = \\\\`\\\\${contract}-\\\\${tokenId}\\\\`)\\n\\n**Handler** (\\\\`ponder/src/SRV2NFT.ts\\\\`):\\n- \\\\`SuperRareNFT:Transfer\\\\` (filtered to \\\\`from == 0x0\\\\`) \u2192 insert \\\\`srv2_artist_tokens\\\\` with \\\\`creator = to\\\\`. SR's mint flow mints directly to the artist, so \\\\`to\\\\` is the creator without follow-up.\\n\\n## Web side\\n\\n| File | Change |\\n|------|--------|\\n| \\\\`apps/web/src/lib/indexer-queries.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-a18f538709d4e95d\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/68#issuecomment-4468491978\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/68#issuecomment-4468491978\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 130275c37a826b23c1d0b756b8e7679fb6549503 |\\n|<span aria-hidden=\\\"t\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-1c98b55b3e2fe725", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381587, "scanner": "foundry_dataset", "fingerprint": "0ead0ef0e1944e6699623a509d4cbca3a7dc4b5d7e17aa4af38eb025dedb439c", "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": "ripe0x/pin#67", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "67", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1ba6f44b2ad20279", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#67\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#67\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9160f4f710773c4c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/67\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/67\\nTitle: ponder: index Transient Labs artist-tokens; remove web-side scan\\nBody:\\n## Summary\\n\\nSecond of the three artist-token migrations on the long-term plan (after #66 Mint). Replaces \\\\`scanTransientArtistTokens\\\\` + the \\\\`lazy_tl_artist_*\\\\` tables with Ponder handlers writing to \\\\`<schema>.tl_creators\\\\` + \\\\`<schema>.tl_artist_tokens\\\\`. Same shape as #66.\\n\\n## Ponder side\\n\\n**Config** \u2014 registers \\\\`TLUniversalDeployer\\\\` at \\\\`0x7c24\u202629f3f\\\\` (start block 19_062_900, Jan 2024) and the dynamic-factory \\\\`TLCollection\\\\` source subscribing to ERC-721 \\\\`Transfer\\\\` on every clone.\\n\\n**Schema** \u2014 two new tables:\\n- \\\\`tl_creators\\\\` (PK = clone contract address; stores \\\\`sender\\\\` deployer + \\\\`cType\\\\`/\\\\`version\\\\` for diagnostics)\\n- \\\\`tl_artist_tokens\\\\` (PK = \\\\`\\\\${contract}-\\\\${tokenId}\\\\`)\\n\\n**Handlers** (\\\\`ponder/src/TL.ts\\\\`):\\n- \\\\`TLUniversalDeployer:ContractDeployed\\\\` \u2014 filters to \\\\`cType.startsWith(\\\"ERC721\\\")\\\\`, inserts \\\\`tl_creators\\\\` row. ERC-1155 clones skipped to match the prior lazy-scan scope.\\n- \\\\`TLCollection:Transfer\\\\` (filtered to \\\\`from\"\n  },\n  {\n    \"id\": \"github-feedback-comment-8aff7d45ac2f1b7c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/67#issuecomment-4468480620\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/67#issuecomment-4468480620\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | df27654c96ba2ed2abae89c52a269c4040a5f7ff |\\n|<span aria-\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-edbc54a223271ce2", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381586, "scanner": "foundry_dataset", "fingerprint": "7a0813ebb55a4fa3c3929952c0a0fe83eb5f5def8dc9b54a715acd8008a7ec7c", "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": "ripe0x/pin#66", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "66", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-051be57120656c69", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#66\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#66\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-891bb904767755f7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/66\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/66\\nTitle: ponder: index Mint protocol; remove web-side scan path\\nBody:\\n## Summary\\n\\nMint protocol artist-token enumeration moves out of the web app's pull-based scan (\\\\`scanMintArtistTokens\\\\` + \\\\`lazy_mint_*\\\\` tables + \\\\`public.mint_creators\\\\`) into Ponder. Web reads become point lookups against \\\\`ponder_v*.mint_artist_tokens\\\\`; the Mint creator allow-list that feeds \\\\`known_artists\\\\` now comes from \\\\`ponder_v*.mint_creators\\\\`.\\n\\nFirst of the three artist-token migrations (Mint \u2192 TL \u2192 SR V2) on the long-term plan. Builds on the b9278d2 pattern that's already in production (auction state for SR V2 + TL \u2014 PRs #62, #63).\\n\\n## Ponder side\\n\\n**\\\\`ponder/ponder.config.ts\\\\`** \u2014 registers:\\n- \\\\`MintFactory\\\\` at \\\\`0xd717\u2026b670\\\\` (start block 21_167_599)\\n- \\\\`MintCollection\\\\` as a dynamic-factory source \u2014 Ponder subscribes to \\\\`TransferSingle\\\\` + \\\\`TransferBatch\\\\` on every clone the Factory has emitted\\n\\n**\\\\`ponder/ponder.schema.ts\\\\`** \u2014 two new tables:\\n- \\\\`mint_creators\\\\` (PK = clone contract address, \\\\`address\\\\` = deployer)\\n- \\\\`mint_artist_tokens\"\n  },\n  {\n    \"id\": \"github-feedback-comment-39e7624617a32761\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/66#issuecomment-4468463321\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/66#issuecomment-4468463321\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 23a763abe3e3c191d00f0eb0320882e4e411b4dd |\\n|<span aria-hidden=\\\"tru\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-d26e7f62842ab783", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381585, "scanner": "foundry_dataset", "fingerprint": "6d7480eff5fe49951546c77b09ea9e18f2b71cdb846fbba278cc9f77867e8561", "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": "ripe0x/pin#65", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "65", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d1f15fb348e4c268", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#65\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#65\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e2a04434f1457a26\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/65\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/65\\nTitle: cron: batch external-platform refresh so it survives at scale\\nBody:\\n## Problem\\n\\nThe daily Netlify Scheduled Function made one \\\\`fetch()\\\\` to \\\\`/api/cron/refresh-external-indexes\\\\` and let that route iterate every \\\\`known_artists\\\\` row serially. Netlify's HTTP edge has a ~30s inactivity timeout that the route's \\\\`maxDuration = 300\\\\` cannot override. As soon as \\\\`known_artists\\\\` grew past ~10\u201315 entries the cron 504'd on its first batch and the tail of artists never got refreshed.\\n\\nThis was the silent steady-state breakage that surfaced during today's Mint cohort backfill incident. Adding the 79 Mint creators pushed \\\\`known_artists\\\\` to 153, well past the breaking point.\\n\\n## Shape change\\n\\n**Scheduled function becomes the orchestrator** (\\\\`apps/web/netlify/functions/refresh-external-indexes-cron.ts\\\\`):\\n\\n1. Connects to Postgres directly (it already has \\\\`DATABASE_URL\\\\` via Netlify env).\\n2. Snapshots \\\\`known_artists\\\\` into an in-memory list.\\n3. POSTs one batch of addresses (default 8) per HTTP call to the route. Each batch f\"\n  },\n  {\n    \"id\": \"github-feedback-comment-3d5af5dda6931352\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/65#issuecomment-4468402616\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/65#issuecomment-4468402616\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 1890b9b85d32968a8eda2ec4231b72a990b2ad33 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> La\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-39d6c8f5653c85d8", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381584, "scanner": "foundry_dataset", "fingerprint": "c46ce51499147dd3dc77e8e8f55ed86a4b39e993548509a5da327dd631f3c08a", "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": "ripe0x/pin#64", "human_labels": ["data_schema_persistence", "deployment_env_gap"], "issue_number": "64", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-588fc8453ff0df85", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#64\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#64\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-437f2099f14e7349\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/64\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/64\\nTitle: cleanup: remove SR V2 + TL lazy-scan code superseded by Ponder\\nBody:\\n## Summary\\n\\nFollow-up to PR #62 + #63. With SR V2 and TL auction state now flowing through Ponder (production on \\\\`ponder_v2\\\\`), the hand-rolled scanners and their cache tables are unreferenced. This deletes them.\\n\\n**Net change: -971 lines.**\\n\\n## What this removes\\n\\n| File | Status |\\n|------|--------|\\n| \\\\`apps/web/src/lib/platforms/superrareV2-scan.ts\\\\` | deleted (286 lines) |\\n| \\\\`apps/web/src/lib/platforms/transient-scan.ts\\\\` | deleted (394 lines) |\\n| \\\\`apps/web/src/lib/lazy-index.ts\\\\` | -298 lines (4 helper blocks) |\\n| \\\\`apps/web/src/lib/platforms/superrareV2.ts\\\\` | -5 lines (\\\\`discoverArtistAuctions\\\\` hook + import) |\\n| \\\\`apps/web/src/lib/platforms/transient.ts\\\\` | -5 lines (same) |\\n\\nLazy-index helpers removed:\\n- \\\\`LazySuperrareV2ActiveAuction\\\\` type\\n- \\\\`readSuperrareV2ActiveAuctions\\\\`, \\\\`writeSuperrareV2ActiveAuctions\\\\`\\n- \\\\`LazyTransientActiveAuction\\\\` type\\n- \\\\`readTransientActiveAuctions\\\\`, \\\\`writeTransientActiveAuctions\\\\`\\n- \\\\`readSrv2ArtistAuct\"\n  },\n  {\n    \"id\": \"github-feedback-comment-620faa9b2e60bbb0\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/64#issuecomment-4468376198\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/64#issuecomment-4468376198\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | c278446ce11c5586931aa62caf4788eb14a318af |\\n|<span aria-hid\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-81d03f26ba6234cf", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381583, "scanner": "foundry_dataset", "fingerprint": "9783fc06c033f8720b06cf992a3cc66ca21a177bd4fec3ea84519dfd458d7523", "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": "ripe0x/pin#63", "human_labels": ["deployment_env_gap", "runtime_failure"], "issue_number": "63", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-a9d8dd6100d00072", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 9, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#63\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#63\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 9\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'runtime_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0a781643b564ddee\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/63\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/63\\nTitle: ponder: defensive find-or-skip on SR V2 + TL lifecycle handlers\\nBody:\\n## Bug\\n\\nPR #62 wired SR V2 Bazaar + TL Auction House into Ponder, but its 7 per-auction lifecycle handlers (AuctionBid, AuctionSettled, BuyNowFulfilled, ListingCanceled, CancelAuction) crash with \\\\`RecordNotFoundError\\\\` whenever they receive an event for an auction whose corresponding \\\\`NewAuction\\\\` / \\\\`ListingConfigured\\\\` was emitted **pre-startBlock**.\\n\\nResult: Ponder hit the first such event 17 blocks into TL backfill (block 24,500,028, a TL \\\\`BuyNowFulfilled\\\\` for a listing configured before block 24,500,000) and entered a container restart loop. Backfill stuck at 0.1%.\\n\\n## Fix\\n\\nAdds the same find-or-skip pattern already in use on the PND handlers (see \\\\`SovereignAuctionHouse:AuctionBid\\\\`):\\n\\n\\\\`\\\\`\\\\`ts\\nconst existing = await context.db.find(tlAuctions, { id })\\nif (!existing) return\\nawait context.db.update(tlAuctions, { id }).set(...)\\n\\\\`\\\\`\\\\`\\n\\nApplied to all 7 lifecycle handlers across both platforms. No functional change for in-scope rows; just stops cras\"\n  },\n  {\n    \"id\": \"github-feedback-comment-7f7ea42167a03422\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/63#issuecomment-4468032314\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/63#issuecomment-4468032314\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* canceled.\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 8b445b7e569d26050e5eb8698ea5eb484f29ac2b |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest d\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-99647ac9aa76a101", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381582, "scanner": "foundry_dataset", "fingerprint": "9a620c11c15930ff0b7bb1982e60e4da8b830a2126516f670dbd22f3fb11f953", "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": "ripe0x/pin#62", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "62", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-c23a4ca92ec66f9f", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#62\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#62\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-95ed03ccda092138\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/62\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/62\\nTitle: ponder: index SR V2 Bazaar + TL Auction House (rebased)\\nBody:\\n## Summary\\n\\nRebases and ships the May 1 work on \\\\`ponder-srv2-tl-indexer\\\\` (commit \\\\`b9278d2\\\\`) that moves active-auction state for SuperRare V2 and Transient Labs out of the web app's hand-rolled scanners and into Ponder. PND, FND, Catalog, and now SR V2 + TL are all read from a single indexer.\\n\\nThis unblocks the long-term plan to migrate the remaining external platforms (Mint, TL/SR artist-tokens) to Ponder using the same pattern.\\n\\n## Scope (what this PR does)\\n\\n| Area | Change |\\n|------|--------|\\n| \\\\`ponder/ponder.config.ts\\\\` | Registers \\\\`SuperRareBazaar\\\\` (start block 24.8M) and \\\\`TransientAuctionHouse\\\\` (start block 24.5M) alongside the existing FND/PND/Catalog contracts |\\n| \\\\`ponder/ponder.schema.ts\\\\` | New tables \\\\`srv2_auctions\\\\`, \\\\`tl_auctions\\\\` with \\\\`creator\\\\` column for the artist-seller filter |\\n| \\\\`ponder/src/index.ts\\\\` | 9 new handlers (4 SR Bazaar + 5 TL Auction House). \\\\`creator\\\\` resolved at insert via \\\\`tokenCreator()\\\\` (TL falls back to \\\\`\"\n  },\n  {\n    \"id\": \"github-feedback-comment-d6d1e82f3cf8fd4a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/62#issuecomment-4467911773\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/62#issuecomment-4467911773\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | f0a435e66172cf0207e76f58fe3188c6bf9ab8f8 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</s\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-f8bf3b3e064c9bce", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381581, "scanner": "foundry_dataset", "fingerprint": "f35a610bff8ae67191802cf7a6ab95a6ac688c314234bcc0cb39e5a8cace115d", "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": "ripe0x/pin#61", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "61", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-2b390d2989707113", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#61\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#61\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-51f696d27aae242d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/61\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/61\\nTitle: artist-cache: stop caching empty enrichment results\\nBody:\\n## Context\\n\\nProduction poison reported on [/artist/0xcb43078c32423f5348cab5885911c3b5fae217f9](https://pnd.ripe.wtf/artist/0xcb43078c32423f5348cab5885911c3b5fae217f9): page stuck on skeleton, then showing 0 of 26 works. Recovered only by hitting `/api/revalidate`.\\n\\nSame pattern likely silently affecting other artists right now \u2014 we only learn about it when a user complains.\\n\\n## Root cause\\n\\nWhen every token in a `getCachedEnrichedPage` call filters to null during a single cold fill \u2014 a transient RPC timeout on the burn-check multicall combined with an IPFS gateway flake during metadata resolve \u2014 `enrichTokens` returns `[]`. `unstable_cache` then persists `[]` under the 24h TTL, so every subsequent visitor gets the same useless empty array.\\n\\n[3dc0423](https://github.com/ripe0x/pin/commit/3dc04237e2781135c11eedc44cf744a1235f2508) hardened the per-token metadata fetch (multi-gateway fallback) but didn't close this hole at the aggregate level: the cache still trusts w\"\n  },\n  {\n    \"id\": \"github-feedback-comment-4d4e9a00f228373d\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/61#issuecomment-4466659684\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/61#issuecomment-4466659684\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 52c6fa353eb99a0c9d0dace293c30e20e8d3b6dd |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | ht\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-1d4bfa3ec4f9d1f1", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381580, "scanner": "foundry_dataset", "fingerprint": "14cdda86a94349a5295473413aed24a0e97e2b087f2797d5d6314f16b2d10264", "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": "ripe0x/pin#59", "human_labels": ["deployment_env_gap", "runtime_failure"], "issue_number": "59", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-f8a547d66522fd55", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#59\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#59\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'runtime_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-18e05f2af0914637\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/59\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/59\\nTitle: ponder: versioned DATABASE_SCHEMA + artist-page error boundary\\nBody:\\n## Context\\n\\nTwo related fixes for the production incident where Ponder crashed in a loop after the catalog schema additions in #49 changed the build hash. The indexer service in `wholesome-creation` Railway project entered restart-loop, the web app fell through to RPC for every indexer query, cold-path SSR on `/artist/[address]` exceeded Netlify's 26s function cap, and users saw the default Next.js crash overlay (no `error.tsx` boundary).\\n\\n## What landed\\n\\n**Versioned `DATABASE_SCHEMA` convention.** Indexer schema is now `ponder_v1`. Every schema-changing release should bump the suffix (`_v1` \u2192 `_v2` \u2192 \u2026) so the upgrade flow is \\\"rename + flip env vars + drop old,\\\" not \\\"drop everything + 1h re-sync.\\\"\\n\\n- `db/migrations/022_known_artists_view.sql` \u2014 schema name parameterized as a single `ponder_schema` constant. Future bump touches one literal.\\n- `apps/web/src/lib/indexer-queries.ts` \u2014 fallback default `\\\"ponder\\\"` \u2192 `\\\"ponder_v1\\\"`. Env var (`INDEXER_SCHEMA`) is t\"\n  },\n  {\n    \"id\": \"github-feedback-comment-0a8b0ecd2a369825\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/59#issuecomment-4464330873\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/59#issuecomment-4464330873\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | e1db299e76a80bbc8ef84c549e9797d191547c8e |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-cbaee9dd0816bfb1", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381579, "scanner": "foundry_dataset", "fingerprint": "a160faded38f9121ce57be75f0800e4de97c2b9965a03ff9c71cc0cf8e0c9250", "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": "ripe0x/pin#58", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "58", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-02c32a7601e5ba1f", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#58\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#58\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b6a1d020bb5032f3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/58\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/58\\nTitle: platforms: add Mint protocol (Visualize Value) as fourth external index\\nBody:\\n## Summary\\n\\nAdds Mint protocol (https://github.com/visualizevalue/mint) alongside Manifold, SuperRare V2, and Transient Labs in the per-artist external indexer. Same lazy-table + cursor + Promise.all + refresh-button pipeline; one new adapter, one new migration, one new pair of lazy-index helpers.\\n\\n## Architecture\\n\\n- **Factory:** mainnet \\\\`0xd717Fe677072807057B03705227EC3E3b467b670\\\\`, deployed at block 21167599 (tx [0x57b1ad0\u202646ce650](https://evm.now/tx/0x57b1ad0587f0ec24f4341d3abcf988ea0396b2bc3662f131fc42ffa0446ce650?chainId=1)).\\n- **Per-artist discovery:** Factory emits \\\\`Created(address indexed ownerAddress, address contractAddress)\\\\` on every clone deploy. \\\\`ownerAddress\\\\` is indexed \u2192 one cheap topic-filtered \\\\`eth_getLogs\\\\` returns this artist's full clone list across all of Factory history.\\n- **Per-clone token discovery:** ERC-1155, so \\\\`TransferSingle\\\\` + \\\\`TransferBatch\\\\` filtered on \\\\`from = 0x0\\\\` since the artist's \\\\`last_scanned_b\"\n  },\n  {\n    \"id\": \"github-feedback-comment-32876f708803372c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/58#issuecomment-4463882740\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/58#issuecomment-4463882740\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 67091b97ae8fdbef0ab91dc013232fbcce72afeb |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest de\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-c7ec8dc2a81e927d", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381578, "scanner": "foundry_dataset", "fingerprint": "0e280d01c582aadd66a6a6cc98ddf1f957e476bb9fe5f21ecded620fdbc648bd", "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": "ripe0x/pin#56", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "56", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-450d12ad2b5ad0b6", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#56\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#56\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-df28108b2f3c2210\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/56\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/56\\nTitle: platforms: awaitable lazy-index writers + refresh delta in button\\nBody:\\n## Summary\\n\\nTwo fixes on top of #55.\\n\\n### 1. Status row write was getting cut off\\n\\nThe lazy-index write helpers (`writeManifoldArtistTokens`, `writeSrv2*`, `writeTransient*`, `writeManifoldContracts`) used `void (async () => { ... })()` fire-and-forget. The scan functions invoked them without await (since they returned void). On Netlify, the route's response triggered runtime teardown which cut off the in-flight write promise mid-iteration.\\n\\nConfirmed in production: ripe0x's refresh ran, 24 manifold token rows landed with fresh timestamps, but the final status-row INSERT (which advances `last_scanned_block`) never ran. Next refresh's incremental window therefore re-scans from null cursor every time.\\n\\nFix: convert helpers to `async ... Promise<void>` and add `await` at all call sites (all inside scan functions; verified no consumers outside the scan paths).\\n\\n### 2. Button reported total, not delta\\n\\nThe success message said \\\"24 tokens indexed\\\" after r\"\n  },\n  {\n    \"id\": \"github-feedback-comment-5c3f1dc7b524d982\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/56#issuecomment-4460454470\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/56#issuecomment-4460454470\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 4f9350430a1e70abc40572ffbfebf223e221a7a4 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy lo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-82247cb0fce4195a", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381577, "scanner": "foundry_dataset", "fingerprint": "d49d118fa1c8b228fc9e2f1bf9d70eae505c81d97602c9afad783b1695f86ffe", "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": "ripe0x/pin#51", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "51", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-0281a555b14d9a60", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#51\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#51\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4edb056088633349\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/51\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/51\\nTitle: platforms: gate external-platform writes to known artists only\\nBody:\\nExternal NFT platforms (Manifold, SuperRare V2, Transient Labs) aren't indexed by Ponder \u2014 per-artist data is pulled from Alchemy NFT API + Etherscan on demand and stored in Postgres. Without a gate, any visit to /artist/<random> triggered an Alchemy fan-out, exposing the bill to anonymous crawler traffic. This adds the gate.\\r\\n\\r\\nWhat\\r\\n\\r\\n- db/migrations/022_known_artists_view.sql defines a `known_artists` view over Ponder tables (pnd_houses owners + fnd_collections creators + fnd_artist_tokens minters + catalog_* declarants when those tables exist). Defensive: catalog branches are included only if the corresponding ponder.catalog_* tables exist at migration time, since catalog support is a newer Ponder schema addition.\\r\\n- lib/known-artists.ts exports `isKnownArtist(address)`. Fails closed on DB error \u2014 a degraded DB never expands the spend surface.\\r\\n- lib/external-indexer.ts orchestrates per-artist refreshes:\\r\\n  - `refreshArtist(address)` deletes status\"\n  },\n  {\n    \"id\": \"github-feedback-comment-aec92e35373b951c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/51#issuecomment-4456379757\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/51#issuecomment-4456379757\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 40782d711ae3055b1bc7a564a7d9c0b607cd6c53 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-a3ff2dbe9b9c8c79", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381576, "scanner": "foundry_dataset", "fingerprint": "c0951776d25169b12049ae23a14ae8423802bb7bcbb9e53af51945ebf0e5e0c5", "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": "ripe0x/pin#47", "human_labels": ["api_integration_gap", "deployment_env_gap"], "issue_number": "47", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-b3b423005410ba3a", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#47\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#47\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8f134a9cfdd740c7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/47\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/47\\nTitle: catalog: rename ArtistRecordRegistry \u2192 Catalog + redeploy\\nBody:\\nFull project rename of ArtistRecordRegistry \u2192 Catalog. Contract source, every dapp code path (lib, API, page, components, types, hooks), UI copy, URLs, ABI exports, and address constants now all use the \\\"catalog\\\" framing.\\n\\n## On-chain\\n\\n- New contract deployed and Etherscan-verified at [`0x43efE30B60Ef6Ba300D97F9936eDbE099d619CD4`](https://etherscan.io/address/0x43efE30B60Ef6Ba300D97F9936eDbE099d619CD4).\\n- Salt: `keccak256(\\\"Catalog\\\")`.\\n- Previous deploy at `0xAF00...3272` is abandoned (it remains verified there as `ArtistRecordRegistry` but is no longer referenced from the dapp).\\n\\n## Backwards compatibility\\n\\n- `/record` and `/record/[address]` \u2192 permanent redirects to `/catalog`.\\n- `/api/record/[address]` and `/api/record/[address]/revalidate` \u2192 permanent redirects to the `/api/catalog/*` equivalents.\\n- The dependency-report's \\\"Declare in your catalog\\\" deep link keeps working through the redirect.\\n\\n## Tests + verification\\n\\n- 90/90 forge tests pass against the\"\n  },\n  {\n    \"id\": \"github-feedback-comment-256c9fe6834f417b\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/47#issuecomment-4446708285\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/47#issuecomment-4446708285\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 74346219a0a41c9af54f0679942bcb7f4f2121bd |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest d\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-9461c940ed3ef4a5", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381575, "scanner": "foundry_dataset", "fingerprint": "c44225291d6ec225ef1f86bf705a74ff10038f1c03aacd59c9362068f8f73a55", "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": "ripe0x/pin#28", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "28", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-3dc1e095de1bfd47", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#28\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#28\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-98213b7be424d50c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/28\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/28\\nTitle: footer: drop NFTMarket and Contracts links\\nBody:\\n## Summary\\n\\nDrop the two protocol-pointer links from the global footer's link row:\\n- `NFTMarket` (Etherscan-style address view)\\n- `Contracts` (`fnd-protocol` GitHub)\\n\\nThese were inherited from the archived `index-prev` landing's link row when the footer was promoted to a global element. Trimming both keeps the row focused on audience-facing destinations.\\n\\nFinal link row: **About \u00b7 Sites \u00b7 GitHub \u00b7 Created by ripe**\\n\\n## Test plan\\n\\n- [ ] Scroll to the footer on `/`, an artist page, a token page, `/about`\\n- [ ] Confirm the link row reads About \u00b7 Sites \u00b7 GitHub \u00b7 Created by ripe \u2014 no NFTMarket, no Contracts\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-d145b2ab7c66c256\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/28#issuecomment-4392483872\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/28#issuecomment-4392483872\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | f158a41289d5f4deee5b65f8fbddd955065143a5 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netlify.com/projects/art-pin/deploys/69fbb8d7a247970008444278 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\ude0e</span> Deploy Preview | [https://deploy-preview-28--art-pin.netlify.app](https://deploy-preview-28--art-pin.netlify.app) |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udcf1</span> Preview on mobile | <details><summary> T\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-a214efebd2b434e1", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381574, "scanner": "foundry_dataset", "fingerprint": "c3e2133b87b766b03d4bb51571403af337498a8548f52fa332ea60a73eddd176", "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": "ripe0x/pin#25", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "25", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-8e3ce8a531e50aa5", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#25\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#25\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6c6424ed9e7b54d5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/25\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/25\\nTitle: Tighten footer tagline; move \\\"Created by ripe\\\" to row end\\nBody:\\n## Summary\\n\\n- Rephrase the global footer tagline from `{SITE_TITLE} \u2014 open artist infrastructure on Ethereum.` to `Artist owned infrastructure on Ethereum`. Drops the brand-acronym prefix and shifts the framing from \\\"open\\\" to \\\"artist owned\\\" \u2014 clearer about the audience the platform serves.\\n- Move `Created by ripe` from second to last in the link row so the byline reads as the closer after the protocol-y links (`Sites`, `GitHub`, `NFTMarket`, `Contracts`).\\n- Drops the now-unused `SITE_TITLE` import.\\n\\n## Test plan\\n\\n- [ ] Run dev, scroll to the footer on `/`, an artist page, a token page, `/preserve`\\n- [ ] Confirm the tagline reads \\\"Artist owned infrastructure on Ethereum\\\" with no `{SITE_TITLE}` prefix\\n- [ ] Confirm link order is Sites \u2192 GitHub \u2192 NFTMarket \u2192 Contracts \u2192 Created by ripe\\n- [ ] On narrow viewports, confirm the link row still wraps cleanly (`flex flex-wrap`)\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-47799aab7e075792\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/25#issuecomment-4390129189\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/25#issuecomment-4390129189\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 849ca879cf906d1e81e00cc510b46c3987b35bd5 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netli\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-4b9354c20f2a6787", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381573, "scanner": "foundry_dataset", "fingerprint": "092dd4966578a781850df345589b5455a00f6c7056808a603fdc7d92769c5b66", "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": "ripe0x/pin#24", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "24", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-2f220b39b6ae26cd", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#24\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#24\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-321037bee1c251da\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/24\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/24\\nTitle: Add global supporters footer thanking funding-works backers\\nBody:\\n## Summary\\n\\n- Adds a global site Footer (mounted in the root layout) that shows a small \\\"Thank you. Supported by:\\\" block listing every unique address that has ever minted from the FundingWorksRipe campaign contract (`0xA78846573c4eDA142DFe10335F560a5cF3486894`).\\n- Promotes the inline footer that previously lived only on `app/page.tsx` into a true global element so artist, auction, token, and other routes get the same chrome.\\n- Removes the duplicated inline footer from `app/page.tsx` and `app/index-prev/page.tsx`. The combined link list (`Sites`, `Created by ripe`, `GitHub`, `NFTMarket`, `Contracts`) now renders site-wide.\\n\\n## How it stays cheap on RPC\\n\\nSupporter list is fetched once per 24h and shared across every visitor and Netlify sandbox. Two-layer cache:\\n- **L1** `unstable_cache` (in-process per sandbox)\\n- **L2** `pgCache` (shared Postgres) \u2014 first sandbox to miss writes the result; every other sandbox hits Postgres on its first L1 miss instead of pa\"\n  },\n  {\n    \"id\": \"github-feedback-comment-8d7504a51d2a7c90\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/24#issuecomment-4390068906\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/24#issuecomment-4390068906\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 0357f77ced02d57014cfccb9db1c80acce92791e |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log |\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-e51cb46bb7f586c8", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381572, "scanner": "foundry_dataset", "fingerprint": "725ee083a69a62a734fc4c6eca493b0ec28d71a2e04ec849067ed22e95a301e3", "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": "ripe0x/pin#20", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "20", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ed37adc569155793", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#20\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#20\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9579fb0737f4a077\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/20\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/20\\nTitle: Index Foundation in Ponder + pre-filter artist scans against the index\\nBody:\\n## Summary\\n\\n- Adds Ponder handlers for Foundation contracts (NFT, NFTMarket, NFTCollectionFactoryV1/V2, factory-spawned collection clones). The activity feed query already read from `ponder.fnd_*` but those tables had no writers. Foundation events (mints, auction lifecycle, buy-now sales, collection deploys) will now appear in the homepage feed alongside PND events.\\n- Adds a Ponder pre-filter to `discoverFoundationArtistRefs` so per-artist token discovery short-circuits as a Postgres point lookup. Previously, every `/artist/<addr>` page render fanned out to 6 parallel `eth_getLogs` scans against ~13M blocks. With FND indexed, that becomes 1 SQL query.\\n- Adds `robots: { index: false, follow: false }` to artist pages with zero platform tokens. Stops search-engine crawlers from walking deeper into addresses surfaced via the activity feed (bidders/winners/sellers who aren't creators).\\n\\n## Why\\n\\nA recent overnight bot crawl ran a ~\\\\$100 Alchemy CU bi\"\n  },\n  {\n    \"id\": \"github-feedback-comment-58f60c39eba63512\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/20#issuecomment-4384481528\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/20#issuecomment-4384481528\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 370af83528dadac687a814b2504b37e7fa30701a |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | ht\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-8da0a5935162f554", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381571, "scanner": "foundry_dataset", "fingerprint": "42ddedb5c4c1ff5d092de822330a73b05e76c65a2ad5858dd1cd9b98e698f5bb", "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": "ripe0x/pin#18", "human_labels": ["deployment_env_gap", "security_auth_secret"], "issue_number": "18", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ac8ed60ddf3c204a", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#18\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#18\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a4712e7348007848\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/18\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/18\\nTitle: Pre-warm token metadata + lazy-scroll activity feed; promote feed to /\\nBody:\\n## Summary\\n\\n- **Pre-warm token metadata** via a Ponder-sidecar worker so the web app never pays first-view RPC + IPFS cost.\\n- **Lazy-scroll activity feed** with cursor pagination \u2014 scrolls indefinitely with zero RPC fan-out per page.\\n- **Promote the activity feed to `/`**; the previous grid landing is preserved at `/index-prev`.\\n\\n## What changed\\n\\n### `packages/token-metadata/` (new)\\nPure RPC + IPFS resolver extracted from `apps/web/src/lib/onchain-discovery.ts`. Both the web app and the new worker share parsing logic for ERC-721 `tokenURI` / ERC-1155 `uri`, `data:` URIs, and IPFS gateway fallback.\\n\\n### `apps/metadata-warmer/` (new)\\nLong-lived sidecar to Ponder. Slow loop scans the indexer source tables (`pnd_auctions`, `fnd_auctions`, `fnd_artist_tokens`, `fnd_buy_nows`, `fnd_sales`) for `(contract, tokenId)` refs missing from `token_metadata`, calls the shared resolver, upserts results. Failed (all-null) rows retry on a 7-day cadence.\\n\\n- `npm \"\n  },\n  {\n    \"id\": \"github-feedback-comment-e0a89e456646c6f7\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/18#issuecomment-4383641562\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/18#issuecomment-4383641562\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 22c7b239282f70c956f6e8fc6116d8050a5e1520 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-048f82c9e0b4ef81", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381570, "scanner": "foundry_dataset", "fingerprint": "94f646ae9acbb736f521a5d5449bfe571d41f5cd3ca65e46637d15bead286e22", "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": "ripe0x/pin#15", "human_labels": ["deployment_env_gap"], "issue_number": "15", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.581, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-e141c0e78f165358", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#15\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#15\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-55a8cf02f79d62f8\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/15#issuecomment-4367671924\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/15#issuecomment-4367671924\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* canceled.\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | bf5d5a068b9ff5e343a6fac1cdc5327a6ecbc8bd |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netlify.com/projects/art-pin/deploys/69f7f31fa7449e0008f1f52e |\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c4184f9d5f8836b7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"architecture\": 1, \"ci\": 2, \"docs\": 1}\nHelicopter views: {\"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-aa200c5f4faeff52", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381569, "scanner": "foundry_dataset", "fingerprint": "c8736184f3898b78841993c242083961aa7f47489824f89b0d3adbfb4117b36f", "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": "ripe0x/pin#13", "human_labels": ["deployment_env_gap"], "issue_number": "13", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.581, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-2ad8f45524d89274", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#13\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#13\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-eeec47faae6ded67\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/13#issuecomment-4367254802\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/13#issuecomment-4367254802\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* canceled.\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 33471f290dd41a1b755dbf610fdb236e456f476e |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netlify.com/projects/art-pin/deploys/69f7c2fc3843290008ddecba |\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3c9d980fea03f34f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"architecture\": 1, \"ci\": 2, \"docs\": 1}\nHelicopter views: {\"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-6891057d7ce0ab59", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381568, "scanner": "foundry_dataset", "fingerprint": "979a3c2712f588e7d01d4f5f9510ad71a94e831fc77c73af6334f10b2ee9a7a8", "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": "ripe0x/pin#126", "human_labels": ["security_auth_secret", "ui_or_frontend"], "issue_number": "126", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-efc9a9b257aa708b", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 8, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 8}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#126\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#126\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 8\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 8}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e1cc8406e60a613a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/126\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/126\\nTitle: feat(web): PND logo, collapsible search, mobile hamburger nav\\nBody:\\n## What\\n\\nNavbar overhaul, three coherent pieces:\\n\\n1. **PND logo** replaces the text wordmark. Inlined as SVG with `fill=currentColor` so it flips black\u2194white via the themed `--color-fg` (no `dark:` invert hack). Sized `h-4`.\\n2. **Collapsible search.** Rests as a search icon and expands into a pill on desktop, removing the always-on bar (and the permanent full-width mobile search row) that made search over-prominent.\\n3. **Mobile hamburger.** On `<md`, search + \\\"For artists\\\" links + wallet collapse behind a hamburger; the panel drops below the fixed header and overlays content. Desktop layout is unchanged.\\n\\nTo avoid duplicating the wallet markup and link list across the two layouts, shared pieces were extracted: `ArtistActionLinks`, `WalletButton`, `useArtistSearch`, and `nav-icons` (`SearchIcon`/`MenuIcon`).\\n\\n## Verification\\n\\nExercised in a local dev server across breakpoints and themes:\\n- Mobile collapsed: logo + hamburger only.\\n- Mobile open: full-wid\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-634c88d16b40fca3\",\n    \"filename\": \"apps/web/src/components/ArtistActionLinks.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 67,\n    \"deletions\": 0,\n    \"changes\": 67,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/ba0833686d213d33dc5e3ff242e283f6cd637ebd/apps%2Fweb%2Fsrc%2Fcomponents%2FArtistActionLinks.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-913b060c8f223c34\",\n    \"filename\": \"apps/web/src/components/HeaderSearch.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 68,\n    \"deletions\": 0,\n    \"changes\": 68,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/ba0833686d213d33dc5e3ff242e283f6cd637e\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-cbc436df60fa2f1f", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381567, "scanner": "foundry_dataset", "fingerprint": "fc3224f16267a3cba63662374054898e0ba2cfed431523e50a18af6aa4f736ae", "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": "ripe0x/pin#124", "human_labels": ["api_or_backend", "security_auth_secret", "ui_or_frontend"], "issue_number": "124", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-024d36e5ce10d58b", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 2, "ui_or_frontend": 3}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#124\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#124\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 2, 'ui_or_frontend': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-210d0dbb25857600\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/124\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/124\\nTitle: fix(web): remove the dead /api/auction/revalidate POSTs\\nBody:\\n## What\\n\\nRemoves the dead `POST /api/auction/revalidate?contract=\u2026&tokenId=\u2026` calls fired after a successful auction tx. That API route was removed in the v2 rebuild (commit `3aa1636`) \u2014 the `apps/web/src/app/api/auction/` directory no longer exists \u2014 so every post-tx POST 404'd silently. Actual freshness already comes from `router.refresh()` and the 30s auction-state cache TTL, both untouched here.\\n\\n## Changes\\n\\n- **`AuctionPanel.tsx`** \u2014 `useRevalidateAuctionOnSuccess` \u2192 `useRefreshAuctionOnSuccess(isSuccess)`, which just calls `router.refresh()` on a confirmed tx. With the dead fetch gone, the `autoRefresh: false` call sites in `SettleSection` and `SellerActions` were left as literal no-ops (those components already defer `router.refresh()` to their success-banner dismiss handlers), so they're removed. Bid path still auto-refreshes in place; settle/cancel/update-reserve still wait for banner dismiss \u2014 behavior is preserved exactly.\\n- **`SovereignBulkPanel.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-dd43660033fa147f\",\n    \"filename\": \"apps/web/src/app/api/catalog/[address]/revalidate/route.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/250b4b3a31d6477fbfa1d7767d8bc191da87ae1e/apps%2Fweb%2Fsrc%2Fapp%2Fapi%2Fcatalog%2F%5Baddress%5D%2Frevalidate%2Froute.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-355bcc1a49ba0c2a\",\n    \"filename\": \"apps/web/src/app/api/seller-listings/revalidate/route.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"http\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-1759552826516dbb", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381566, "scanner": "foundry_dataset", "fingerprint": "1a3dd2bcf2aac4264b459793db3824eb51331b7a5a53d5a134839d56b2fa3623", "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": "ripe0x/pin#123", "human_labels": ["schema_or_data", "security_auth_secret", "ui_or_frontend"], "issue_number": "123", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-00453c34a3babcbc", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 7, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"schema_or_data": 1, "ui_or_frontend": 6}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#123\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#123\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 7\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 6, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0b92119adceb67cc\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/123\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/123\\nTitle: fix(web): filter burned works from artist grids; 404 burned token pages\\nBody:\\n## Problem\\n\\nA burned token (e.g. [`0xb34bb17b\u2026/32`](https://pnd.fyi/0xb34bb17b5bdd8bc8cc1374eb58ca36085b8acb5a/32)) sat in the artist profile grid as a blank tile, and its token page rendered an empty-metadata shell instead of a not-found.\\n\\n`ownerOf(32)`/`tokenURI(32)` revert with `ERC721NonexistentToken(32)` (OZ v5) while siblings 30/31/33 resolve \u2014 a confirmed burn. Nothing in the data layer knew the token no longer existed: the worker records a burn as `token_owners.owner = 0x0` for *admitted* artists, but the grid never filtered on it, and the **seed/unclaimed path** (this contract is an unclaimed, seeded Foundation collection) only enumerates mints, never burns.\\n\\n## Fix\\n\\nA persisted `burned` signal captured **for free** from the `tokenURI` read the grid already makes \u2014 **zero new RPC**:\\n\\n- `resolveTokenMetadataWithState()` classifies a `tokenURI` revert as `exists: false` when it carries a recognized nonexistent-token error (OZ v5 `ERC72\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-482f26c9abb1c440\",\n    \"filename\": \"apps/web/src/app/[handle]/[tokenId]/page.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 8,\n    \"deletions\": 1,\n    \"changes\": 9,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/6c06c3134b6987205afe93fe030db754b14800ff/apps%2Fweb%2Fsrc%2Fapp%2F%5Bhandle%5D%2F%5BtokenId%5D%2Fpage.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-d2ef12d7a9bde1d7\",\n    \"filename\": \"apps/web/src/lib/onchain-discovery.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 87,\n    \"deletions\": 7,\n    \"changes\": 94,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/6c06c3134b69\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-612c1f1aa0a64c4b", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381565, "scanner": "foundry_dataset", "fingerprint": "53185c65f1b6f9090c951226b8b035ac45bdf34e7a093233bcc2c06ca8cfbe20", "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": "ripe0x/pin#122", "human_labels": ["docs_or_claims", "schema_or_data", "security_auth_secret", "ui_or_frontend"], "issue_number": "122", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-af4bc27c3dbcea2f", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 46, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1, "schema_or_data": 2, "ui_or_frontend": 43}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#122\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#122\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 46\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'ui_or_frontend': 43, 'schema_or_data': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b91114b99c368e31\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/122\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/122\\nTitle: Split the artist page into a public profile + /studio owner workspace\\nBody:\\n## Problem\\n\\nThe logged-in artist page put all admin functionality at the top: four owner-gated panels (migration banner, third-party listings management, sovereign bulk list/cancel, site deploy promo) stacked between the header and the art. Beyond the clutter, SovereignBulkPanel's loaders fired a per-token \\\\`ownerOf\\\\` + \\\\`hasAuctionFor\\\\` sweep (~1,700 proxied eth_calls for an 851-work artist) plus a full \\\\`AuctionCreated\\\\` log scan on **every** visit the artist paid to their own public page.\\n\\n## Architecture\\n\\nTwo parallel address-scoped surfaces:\\n\\n- **Public record pages stay public.** \\\\`/artist/[address]\\\\` is now header \u2192 gallery \u2192 catalog record, for everyone. The only owner affordance is a one-line StudioBar ribbon (\\\"Your public page \u2014 this is what visitors see\\\") with at most two attention chips and an \\\"Open studio\\\" button. \\\\`/catalog/[address]\\\\` becomes a pure read-only record with an owner-gated \\\"Manage in studio\\\" link where the edit UI us\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-bd76e50bc6ba9199\",\n    \"filename\": \"AGENTS.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 3,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/1ece9604ebd4bbcf07480374457792c75d80afa3/AGENTS.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-c52fefebd0fce216\",\n    \"filename\": \"apps/web/src/app/artist/[address]/import/page.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 9,\n    \"deletions\": 153,\n    \"changes\": 162,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/1ece9604ebd4bbcf07480374457792c75d80afa3/apps%2Fweb\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-54cd2213422988b0", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381564, "scanner": "foundry_dataset", "fingerprint": "8862abe7145a80d610955cb159efffc05a25d2905f90606374d2f7cbec4ff0e0", "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": "ripe0x/pin#121", "human_labels": ["security_auth_secret", "ui_or_frontend"], "issue_number": "121", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d90370f71b78a3bb", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#121\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#121\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0f1219567458c10c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/121\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/121\\nTitle: Template: complete the pure-neutral gray ramp for dark mode\\nBody:\\n## Problem\\n\\n`templates/artist-page/app/globals.css` re-tuned only gray-100/200/400/600 under `.dark`, but template components use `text-gray-300` (ArtistHero link separator) and `text-gray-500` (16 sites across ArtistHero, AuctionCard, BidForm, BidHistory, SettledSummary). Those shades fell through to Tailwind v4's blue-tinted default palette and did not flip in dark mode \u2014 same bug #120 fixed in apps/web.\\n\\n## Fix\\n\\nSame treatment as #120, byte-identical hex values: define the full pure-neutral gray-50..950 ramp in `@theme` and mirror it under `.dark` with the role-preserving mapping (low shades stay surfaces, high shades stay text). CSS-only; no component changes needed.\\n\\n## Component sweep (the #120 `bg-fg`/`text-bg` check)\\n\\n- No colored hues (red/amber/emerald/...) anywhere in the template, so the callout-hue dark overrides from #120 are not needed.\\n- No `bg-white`/`text-white`/`text-black` pairings to convert \u2014 the bid/nav buttons already use semantic\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-14300a874814f2d1\",\n    \"filename\": \"templates/artist-page/app/globals.css\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 35,\n    \"deletions\": 2,\n    \"changes\": 37,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/faf13b712b036ecc05ad79e10414f62ea4ef2882/templates%2Fartist-page%2Fapp%2Fglobals.css\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5521ecea2486a62f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-fbf7227af0857b47", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381563, "scanner": "foundry_dataset", "fingerprint": "c51edcf249660523cbeb9c2683821a0ad72ebceb9f9500da8f71767c8d669ca9", "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": "ripe0x/pin#120", "human_labels": ["security_auth_secret", "ui_or_frontend"], "issue_number": "120", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-5a0efadab6f56865", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 11, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 11}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#120\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#120\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 11\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 11}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8736fbf05f1a0ff4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/120\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/120\\nTitle: Remove the editions nav link; complete the dark-mode color ramps\\nBody:\\n## What\\n\\nTwo fixes for the live site:\\n\\n**1. Nav: drop the \\\"Release an edition\\\" link.** The /editions/new page is not live yet, so the For artists menu should not advertise it. The page itself still exists for direct navigation and e2e.\\n\\n**2. Dark mode: complete the color ramps.** The .dark block only re-tuned gray-100/200/400/600. Every other neutral shade (gray-50/300/500/700/800/900) and all the callout hues (red, amber, emerald, green, rose, indigo, yellow, blue) fell through to Tailwind's blue-tinted defaults and never flipped. Most visible on /sites, where the hero list (\\\"your work. your contracts. your fees.\\\") rendered #364153 on a near-black background.\\n\\n## How\\n\\nFollows the file's existing philosophy (re-tune the scale once in globals.css so utilities flip with no per-class dark: variants):\\n\\n- Define the full pure-neutral gray ramp in @theme (light) and mirror it under .dark. This also removes Tailwind's blue-cast grays from light mode, which\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-2785285bb4dbe71b\",\n    \"filename\": \"apps/web/src/app/artist/[address]/error.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/2eac3a4eb23ab709193061c6283476422642000e/apps%2Fweb%2Fsrc%2Fapp%2Fartist%2F%5Baddress%5D%2Ferror.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-08cc556fcef71dfa\",\n    \"filename\": \"apps/web/src/app/artist/[address]/import/page.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 2,\n    \"deletions\": 2,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/2eac3a4eb23ab70919306\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-ef30e059851ab08b", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381562, "scanner": "foundry_dataset", "fingerprint": "a8aa38be0ff80c978b4db793a24626b7cb90dc2ebb6474dae2368f48b8605aee", "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": "ripe0x/pin#118", "human_labels": ["security_auth_secret", "ui_or_frontend"], "issue_number": "118", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-fe69cbbd8826b00c", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#118\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#118\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1258b4de42839908\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/118\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/118\\nTitle: feat(web): crawl-cost guards \u2014 resolution budget + robots policy\\nBody:\\nBounds the worst case discussed after #116 (a sweep of all ~49k unclaimed artist pages triggering on-demand metadata resolution).\\n\\nInvestigation first: **layer 1 (declared-crawler gating) already existed everywhere** \u2014 artist pages short-circuit bots into a shell before gallery work, the pagination API returns empty JSON to bot UAs behind a 30/min/IP limit + single-flight, and /api/meta 404s crawlers. So this PR adds the two genuinely missing layers and deliberately avoids duplicating the first:\\n\\n- **Resolution budget (spoofed UAs):** per-instance 120/min cap on courtesy resolutions in `enrichTokens`. Converts an adversarial unmetered sweep into ~$2/day worst case; humans never notice; over-budget tiles self-heal later (write-through makes every granted resolution permanent progress).\\n- **robots.ts:** artist/token pages stay indexable; `/api/` and `?page=` deep pagination disallowed; 2s crawl-delay paces polite sweeps.\\n\\nVerified locally: robots.txt \"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-9a4403c902993a97\",\n    \"filename\": \"apps/web/src/app/robots.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 29,\n    \"deletions\": 0,\n    \"changes\": 29,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/745f164f1d934b25ac2e0677b562c1e2ee827dfd/apps%2Fweb%2Fsrc%2Fapp%2Frobots.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-f7796d0f2700accb\",\n    \"filename\": \"apps/web/src/lib/onchain-discovery.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 43,\n    \"deletions\": 6,\n    \"changes\": 49,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/745f164f1d934b25ac2e0677b562c1e2ee827dfd/apps%2Fweb%2Fsrc%2Flib%2Fonchain-discovery.t\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-58176aee8313e879", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381561, "scanner": "foundry_dataset", "fingerprint": "8d7e517e8d0dd8de0ae045e5a5b6e1ae9a31e7ffc8928490277dce365670e996", "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": "ripe0x/pin#115", "human_labels": ["security_auth_secret", "ui_or_frontend"], "issue_number": "115", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-a9a49c6d67479248", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#115\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#115\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c1952fe2062f4aed\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/115\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/115\\nTitle: feat(artist): unclaimed pages \u2014 every FND artist renders from the discovery seeds\\nBody:\\nPhase 2 of the artist-admission plan (follows #113): `/artist/<address>` works for every Foundation artist \u2014 all ~49k collection creators and ~31.5k shared-contract minters \u2014 not just the 161 admitted ones.\\n\\n**How:** `discoverArtistTokenRefs` unions indexed rows with the frozen seeds: shared mints come straight from Postgres; deployed collections enumerate their tokens on demand (one cached getLogs per collection, Transfer-from-zero, 24h pgCache, capped at 40 newest collections per artist, degrades gracefully on RPC failure). Indexed rows win on dedup, so pages upgrade in place on admission. Cache key v5\u2192v6 clears the poisoned empty-refs entries.\\n\\n**RPC:** demand-driven only \u2014 nothing recurring, nothing for pages nobody views; a cold view costs ~2 pg queries + \u226440 cached getLogs.\\n\\n**Verified:** unadmitted artist (zero indexed rows) renders 31 works incl. on-demand collection enumeration; admitted artist (djkero, 578 works) unchanged\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-7f250a36ea9d94ed\",\n    \"filename\": \"apps/web/src/lib/artist-cache.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 4,\n    \"deletions\": 1,\n    \"changes\": 5,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/ed3e86c9f1b3f618da1e6e883c9ca65062f73566/apps%2Fweb%2Fsrc%2Flib%2Fartist-cache.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-f2d8a504692a346d\",\n    \"filename\": \"apps/web/src/lib/onchain-discovery.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 125,\n    \"deletions\": 1,\n    \"changes\": 126,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/ed3e86c9f1b3f618da1e6e883c9ca65062f73566/apps%2Fweb%2Fsrc%2Flib%2Foncha\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-3e63263ba0e5d03b", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381560, "scanner": "foundry_dataset", "fingerprint": "808b7069c97e1d24ac1152091a174592da293d6d62edc9d09fa39d1884aa89be", "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": "ripe0x/pin#112", "human_labels": ["security_auth_secret", "ui_or_frontend"], "issue_number": "112", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-24bca30ca8e36068", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#112\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#112\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-530caa92b0d82d9b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/112\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/112\\nTitle: fix(auction): read Foundation fee split live instead of a stale 15% hint\\nBody:\\nFollow-up to #109. The fee box on Foundation auctions rendered a hardcoded 15% protocol fee / 10% royalty / 75% seller \\\"published schedule\\\" \u2014 but settle events show Foundation cut the protocol fee to 5% and then to **0% (~block 25.1M, 2026-05)**. The panel was overstating the platform's take and understating artist/seller proceeds on every FND auction.\\n\\n`readFndFees` now calls `getFeesAndRecipients(contract, tokenId, price)` \u2014 the same math settlement pays out, per-token royalty overrides included. Failure degrades to no fee box (both call sites already catch to null) rather than wrong numbers. One cached eth_call per viewed FND token per 30s.\\n\\nVerified in preview against live chain values: primary shows \\\"Artist receives 100% / Foundation fee 0%\\\", secondary shows 10/90/0 with ETH amounts matching the contract at the current reserve.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-e84c3cebd618e1bd\",\n    \"filename\": \"apps/web/src/components/auction/AuctionPanel.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 6,\n    \"changes\": 7,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/c667fde0e919f8794531e3a9cce177485260a7d2/apps%2Fweb%2Fsrc%2Fcomponents%2Fauction%2FAuctionPanel.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-0cb94cb58e2e2b4e\",\n    \"filename\": \"apps/web/src/lib/auctions.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 30,\n    \"deletions\": 11,\n    \"changes\": 41,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/c667fde0e919f8794531e3a9cce177485260a7d2/apps%2Fweb%2Fsrc%2Flib%2Fauctions.ts\"\n  }\n]\nLinke\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-0675f1fbc9d69ba4", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381559, "scanner": "foundry_dataset", "fingerprint": "d71bfe3f3652a7356d12f8ada26d4ac7ad8992bd1406473dd7bea6caa974e47b", "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": "ripe0x/pin#11", "human_labels": ["deployment_env_gap", "human_feedback_general", "security_auth_secret"], "issue_number": "11", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-79bb9592affcfa58", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 15, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#11\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#11\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 3\nLinked commit count: 15\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 2, 'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-647b01519a055a0b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/11\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/11\\nTitle: ponder: index SR V2 Bazaar + TL Auction House (single indexer)\\nBody:\\n## Summary\\n\\nMove SR V2 + TL active-auction state into the existing Ponder service. PND, SR V2, and TL now share one indexer; the hand-rolled scanners become unused for the home grid (deletion in a follow-up PR after backfill is verified).\\n\\n## Changes\\n\\n- **\\\\`ponder/ponder.schema.ts\\\\`** \u2014 \\\\`srv2_auctions\\\\` + \\\\`tl_auctions\\\\` tables, mirroring the lazy active-auction shape with a \\\\`creator\\\\` column for the artist-seller filter\\n- **\\\\`ponder/ponder.config.ts\\\\`** \u2014 register SR Bazaar (start block ~30 days behind head; trims backfill from hours to minutes) and TL Auction House (recent deploy; full backfill cheap)\\n- **\\\\`ponder/src/index.ts\\\\`** \u2014 9 handlers (4 SR V2, 5 TL). \\\\`creator\\\\` resolved at insert via \\\\`context.client.readContract\\\\` \u2014 one read per auction creation, replacing the multicall sweep we did per cron tick. TL falls back to \\\\`owner()\\\\` for clones that don't implement \\\\`tokenCreator\\\\`\\n- **\\\\`apps/web/src/lib/indexer-queries.ts\\\\`** \u2014 \\\\`getActiveSrV2\"\n  },\n  {\n    \"id\": \"github-feedback-comment-834aa9c163913d93\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/11#issuecomment-4360649504\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/11#issuecomment-4360649504\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | b9278d2348a1a5e12126cf7399f73a2b8586f\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-1c6865bc2d5dd2ca", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381558, "scanner": "foundry_dataset", "fingerprint": "6ee1551c08cbe610c7047727e8d876be20f76b7b9498993237787b2de7d6020d", "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": "ripe0x/pin#108", "human_labels": ["security_auth_secret"], "issue_number": "108", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f76b7a747c6a195b", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#108\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#108\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d15104db4b4995d0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/108\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/108\\nTitle: Releases v1: open-edition release protocol (contracts, web, e2e)\\nBody:\\nFresh-start build of the release protocol from the product brief \u2014 deliberately not inherited from the merged (undeployed) editions system. Plan reviewed and approved; decisions made on Dave's behalf during implementation are logged for review in **docs/releases-v1-decisions.md** (read this before the mainnet deploy step).\\n\\n## Protocol\\n- **ReleaseFactory full-deploys one immutable ERC721A contract per release** \u2014 terms (price, window, supply, gate, fee snapshot) are Solidity immutables in the artist's own bytecode. No proxies, no clones, no upgrade path for anyone. Factory runtime 18.8KB (5.7KB EIP-170 headroom, suite alarm at 23KB).\\n- **Flat per-token surface fee added on top of an untouchable artist price** \u2014 fee exists only when a mint names a surface; immutably zero when price is zero. Strict msg.value equality.\\n- **Pull payments both legs** (artistBalance + owed[surface]); mints make zero external calls, so no recipient can ever brick a live wi\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-eb2299e7a5873599\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-39e3e583de393207", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381557, "scanner": "foundry_dataset", "fingerprint": "abb0cf0a460fb0e6e0dd02d8fb8cd8151b719b188ee8c0387603e405f0ff118c", "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": "ripe0x/pin#105", "human_labels": ["security_auth_secret"], "issue_number": "105", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1681c7b7a827196c", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#105\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#105\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-461c49551f1c7af4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/105\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/105\\nTitle: fix(provenance): real mint/transfer dates instead of \\\"Jan 1, 1970\\\"\\nBody:\\nERC-721 transfer rows were stored with block_time = 0 (the scanner\\nskipped eth_getBlockByNumber to save RPC), so every mint/transfer in the\\ntoken-page provenance timeline rendered as the Unix epoch.\\n\\n- worker: scan-token-transfers now resolves the real block time per\\n  distinct block (deduped + throttled, mirroring the erc1155-mints\\n  scanner) on forward scans, plus a bounded self-draining backfill that\\n  fills existing block_time = 0 rows in token_transfers and the matching\\n  transferred_at_time in token_owners. eth_getBlockByNumber is served by\\n  the free public RPCs, so the drain is ~$0; the per-tick bound is purely\\n  pacing.\\n- web: Provenance never renders a 0/missing timestamp as a date; it shows\\n  a \\\"Transaction\\\" link instead, covering the catch-up window before the\\n  backfill drains and any unresolved straggler.\\n\\nERC-1155 already resolves block_time in its own scanner, so it is\\nunaffected.\\n\\nCo-Authored-By: Claude Opus 4.8 (1M context) <nore\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-50632476feb58614\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtif\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-1d582c622af72aae", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381556, "scanner": "foundry_dataset", "fingerprint": "3c5b0cf8438a6fa381a621df630cc2b71e1842f5da4d9f435641805dfd7e09f3", "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": "ripe0x/pin#104", "human_labels": ["security_auth_secret"], "issue_number": "104", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-246242536cc3b179", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#104\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#104\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2792f036bc735e4e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/104\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/104\\nTitle: feat(auction): per-token auction history in provenance + per-auction pages\\nBody:\\n## Why\\n\\nA token can be auctioned **more than once** \u2014 e.g. sold on one PND sovereign auction house, then re-auctioned by the buyer on their *own* house. The token page previously surfaced only the single latest auction (`getAuctionForToken` \u2192 active, else `getSettledAuctionForToken` \u2192 one most-recent settled, PND-only, `LIMIT 1`), so **every earlier sale was invisible**, and the transfer-only provenance showed escrow legs as confusing \\\"transferred to a contract\\\" rows.\\n\\n## What\\n\\n- **Auction sales merged into the Provenance timeline.** New `getTokenAuctionSales` (PND `settled` + FND `finalized`, sales-only, newest-first, **zero RPC**) drives enriched `Sold` entries: price, seller \u2192 winner, the venue (\\\"via alice.eth's auction house\\\" / \\\"on Foundation\\\"), each linking to the auction's own page.\\n- **Escrow-leg dedup.** The seller\u2192house / house\u2192winner / cancel-return transfers an auction emits are folded out \u2014 matched by settlement-tx hash + a kno\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-bda3cd0ebc464821\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact famil\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-4a009425ca1dc1a4", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381555, "scanner": "foundry_dataset", "fingerprint": "dfd639116707ce69a044f025370739e801636b9d1e804172ed32c9549326ea15", "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": "ripe0x/pin#102", "human_labels": ["security_auth_secret"], "issue_number": "102", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-a329702bbf4b8c9a", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#102\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#102\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8c8bed959e81e7cf\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/102\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/102\\nTitle: fix(token): render Mint editions via hosted renderer (black-canvas fix)\\nBody:\\n## Fix black-canvas artwork for Mint editions (hosted renderer)\\n\\n[Token 0xba1901\u2026/566 \\\"frameworks within frameworks\\\"](https://pnd.ripe.wtf/0xba1901b542aa58f181f7ae18ed6cd79fda779c62/566) and other Mint protocol editions rendered as a **solid black canvas**.\\n\\n### Root cause\\nMint editions embed their animated p5 art as a ~2.4MB `data:text/html` `animation_url`. Rendering that data URI directly in our iframe fails two ways:\\n1. The embedded sketch's camera zooms out unbounded \u2192 recedes to an empty (black) frame. (Confirmed: the script *runs* \u2014 its console logs the sketch \u2014 it just paints nothing.)\\n2. The 2.4MB blob also overflows Next's 2MB `unstable_cache`.\\n\\n### Fix\\nPoint Mint tokens' `animation_url` at Mint's content host \u2014 `https://content.mint.vv.xyz/<contract>/tokens/<tokenId>/animation` \u2014 the same renderer mint.vv.xyz uses. It sizes and runs the art correctly. The tiny URL also keeps the giant data URI out of the page payload. Non-Mint toke\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1420ebd7c124ec49\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact famil\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-0735464566411c87", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381554, "scanner": "foundry_dataset", "fingerprint": "b0ea9ef6d7f8bd2d4eff18f880d53d6d63f4fb19ec5d9ce236b210bb1f9525e5", "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": "ripe0x/pin#101", "human_labels": ["security_auth_secret"], "issue_number": "101", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "ripe0x/pin", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-1c342810aa494d91", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#101\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#101\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-24553013773d33eb\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/101\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/101\\nTitle: fix(token): give HTML animation_url iframe a real box (black-canvas fix)\\nBody:\\n## Fix black-canvas artwork for HTML / generative tokens\\n\\nGenerative HTML `animation_url` art \u2014 e.g. Mint protocol's gzip-packed p5 sketches like [token 0xba1901\u2026/566 \\\"frameworks within frameworks\\\"](https://pnd.ripe.wtf/0xba1901b542aa58f181f7ae18ed6cd79fda779c62/566) \u2014 rendered as a solid **black canvas**.\\n\\n### Root cause\\nNot a data or script-execution problem \u2014 the sketch runs fine. The `TokenMedia` HTML-branch iframe used `aspect-square h-[80vh]`, which **collapsed to 0\u00d70**: an iframe has no intrinsic content size, so as a flex child the \\\"square from height\\\" derivation degenerated to zero width \u2192 zero height. The scripts executed but had no box to paint into, and the `bg-black` fill showed through.\\n\\n### Fix\\nSize the iframe with explicit width **and** height (`h-[80vh] w-[80vh] max-w-full`) so it can't collapse. One line; applies to every HTML/generative `animation_url` token, not just Mint.\\n\\n### Verification\\n- Decoded token 566's `animatio\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-220b1071724a4696\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact fa\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-2003b3cad82c12b2", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: ripe0x/pin"}, "properties": {"repobilityId": 381553, "scanner": "foundry_dataset", "fingerprint": "5fc70c995543a1ea67583d1b1e764381e5992bf765a61c50f98bde076210c3fc", "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": "ripe0x/pin#100", "human_labels": ["security_auth_secret"], "issue_number": "100", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d5ad6f078108a75f", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: ripe0x/pin\nThread: ripe0x/pin#100\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#100\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-aa396dddecf1d318\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/100\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/100\\nTitle: feat(mint): Mint protocol in the feed + live mint CTA\\nBody:\\n## Mint protocol (mint.vv.xyz) in the feed + live mint CTA\\n\\nSurfaces Mint open-edition activity in the landing feed and lets visitors collect open editions on-chain.\\n\\n### Feed\\n- New `getActivityFeed` branch reads Mint mints from `public.artist_tokens` (`platform='mint'`), ordered by a precomputed `mint_time`. A lateral join surfaces the first mint's recipient so the row reads **\\\"<minter> minted <token> by <artist>\\\"** (collector as subject, creator credited); falls back to **\\\"<artist> minted <token>\\\"** when the minter is the creator or no minter is recorded (Foundation 1/1s).\\n\\n### Token page\\n- New `MintEditionCTA` collects open editions on-chain: `mint(tokenId, amount)`, price = `block.basefee * 60_000` (read fresh at click, modest buffer \u2014 no refund), 24h window derived from `mint_time + 24h` (no on-chain `mintOpenUntil` read). Loading / open / closed states.\\n- Shared `components/tx/tx-ui.tsx` extracted from `AuctionPanel` (`formatWriteError`, `useChainNowSec`\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c3855275559814e7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact famil\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-assumption_checks-97b5683d143e2d2e", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 419757, "scanner": "foundry_dataset", "fingerprint": "e2bdaf4bb53a2ee74f78aedc082531c058c0d84ddf17a52efda3427a729c616f", "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": 3, "test_ci_gap": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#30", "issue_number": "30", "quality_tiers": {"unresolved": 1, "assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ca836445968544cc", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#30\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: ripe0x/pin\nThread: ripe0x/pin#30\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#30\nRepo: ripe0x/pin\nIssue/PR number: 30\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 25\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-0c28368edf3dbfc5", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 419756, "scanner": "foundry_dataset", "fingerprint": "71a3b0297e65f91f992c2d0409ce2513d79edc9d8c93f558532f9c56950cea81", "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, "test_ci_gap": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#103", "issue_number": "103", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-57eb841cbc9692b0", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#103\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: ripe0x/pin\nThread: ripe0x/pin#103\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#103\nRepo: ripe0x/pin\nIssue/PR number: 103\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-5f8c6f7a5991c991", "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": "ripe0x/pin", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 411005, "scanner": "foundry_dataset", "fingerprint": "d67202719e04184d8d448a6ee6cc73fd9d42c0aa769f9e3b63b8e3cf31f4a0e3", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 6, "deployment_env_gap": 1, "verification_or_tests": 3, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#75", "issue_number": "75", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-861f2b4ca8bfcce3", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#75\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#75\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#75\nRepo: ripe0x/pin\nIssue/PR number: 75\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 6, 'claimed_resolved_with_verification_signal': 4, 'verification_or_tests': 3, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-fcba00f2590d89ca", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 411004, "scanner": "foundry_dataset", "fingerprint": "9277a04adc327b533ff3ba0798b4e626736ccf9bdfcd2413df267a996bb76b03", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 2, "data_schema": 2, "deployment_env_gap": 1, "security_or_secrets": 2, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#64", "issue_number": "64", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-d024f5ed81f01a55", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#64\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#64\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#64\nRepo: ripe0x/pin\nIssue/PR number: 64\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 30\nNode types: {'commit': 7, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'claimed_resolved_unverified': 3, 'data_schema': 2, 'security_or_secrets': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-d8500ce104288df1", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 411003, "scanner": "foundry_dataset", "fingerprint": "89024a7d21721c099fcdb3f0cadbb3d3ac745e054881e78e5044b2721f2330f6", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 4, "deployment_env_gap": 1, "verification_or_tests": 6, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#19", "issue_number": "19", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-b4b18e3fbde8676a", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#19\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#19\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#19\nRepo: ripe0x/pin\nIssue/PR number: 19\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 30\nNode types: {'commit': 10, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 6, 'bug_fix': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-39a153bec84f7c29", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 411002, "scanner": "foundry_dataset", "fingerprint": "10815d4c45b0dbc8908156f870d8e6c0a0310a2b7d3f33cd15addffdc1f581b9", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 5, "schema_or_data": 1, "ui_or_frontend": 6, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 37, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 7, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 7, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 7, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#123", "issue_number": "123", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-4a1f2bba91d6e2a5", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 24}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: ripe0x/pin\nThread: ripe0x/pin#123\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#123\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#123\nRepo: ripe0x/pin\nIssue/PR number: 123\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 37\nNode types: {'pr_file': 7, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 7, 'comment_chain_touches_file': 7, 'issue_chain_touches_file': 7, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 6, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-5daac75ea9d830ba", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 411001, "scanner": "foundry_dataset", "fingerprint": "98ac42690f470d363ac7d97751b75000a63d41518af2d992029a6378a8bc5c7c", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 5, "docs_or_claims": 1, "schema_or_data": 2, "ui_or_frontend": 43, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 86, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 46, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 60, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 46, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#122", "issue_number": "122", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-eff0bf7426114dbd", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"docs_or_claims": 4, "schema_or_data": 8, "ui_or_frontend": 172}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: ripe0x/pin\nThread: ripe0x/pin#122\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#122\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#122\nRepo: ripe0x/pin\nIssue/PR number: 122\nGraph consistency label: supported_by_high_confidence_link\nNodes: 60\nEdges: 86\nNode types: {'pr_file': 46, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 46, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 43, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'schema_or_data': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'docs_or_claims': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-eac5da79b7784e3a", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 411000, "scanner": "foundry_dataset", "fingerprint": "3b7ae69ae744dab6f887f5eb153bd783ad72b94de90607b3fcdfedf070de9388", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 3, "data_schema": 1, "schema_or_data": 1, "ui_or_frontend": 3, "source_or_other": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#113", "issue_number": "113", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-4f7cf4cbcf804f53", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#113\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#113\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#113\nRepo: ripe0x/pin\nIssue/PR number: 113\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 35\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ui_or_frontend': 3, 'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'schema_or_data': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'data_schema': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-ac3dbf82ee4cbe4c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 410999, "scanner": "foundry_dataset", "fingerprint": "1aa93a3a05618d6118a5165629be323fd6196de066dfd4ed35f2702372065072", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 4, "schema_or_data": 1, "ui_or_frontend": 11, "source_or_other": 2, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 54, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 14, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 28, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 14, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#109", "issue_number": "109", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e48be99e39c580c5", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 44, "source_or_other": 8}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#109\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#109\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#109\nRepo: ripe0x/pin\nIssue/PR number: 109\nGraph consistency label: supported_by_verification_signal\nNodes: 28\nEdges: 54\nNode types: {'pr_file': 14, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 14, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 11, 'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'schema_or_data': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-6e9d6c190993441b", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 410998, "scanner": "foundry_dataset", "fingerprint": "e4d57d61627784516b97cc8bf096c59cd0e7bfb14170cd4f2d7feaff12dd4671", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 2, "verification_or_tests": 3, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#107", "issue_number": "107", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-20e6c06651644b9f", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#107\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#107\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#107\nRepo: ripe0x/pin\nIssue/PR number: 107\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-2122a14742a60e25", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: ripe0x/pin"}, "properties": {"repobilityId": 410997, "scanner": "foundry_dataset", "fingerprint": "9291cb9afe9eabac259941549306dfd04f5add424fca79a21b86d5ed21a2d270", "category": "quality", "severity": "high", "confidence": 0.76, "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": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 2, "verification_or_tests": 3, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#106", "issue_number": "106", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-addcfc95ef0cbcb1", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#106\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: ripe0x/pin\nThread: ripe0x/pin#106\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#106\nRepo: ripe0x/pin\nIssue/PR number: 106\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-f19a845f83c69767", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390759, "scanner": "foundry_dataset", "fingerprint": "13c4f6268271db6f1e78baa98c45efabe191a73f1b13b09ac4506c0eebdcb7b6", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#94", "human_labels": ["deployment_env_gap", "mock_placeholder"], "issue_number": "94", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1b824170dce312c3", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#94\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#94\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8d1e722470796215\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/94\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/94\\nTitle: fix(artist-page): same content-presence guard in the template resolver\\nBody:\\nMirrors #93 in the template. Without this, a gateway error/garbage 200 \u2014 a JSON body that parses but has no name/description/image/animation_url \u2014 would get cached for 24h with a `#tokenId` placeholder, even though the real metadata was reachable. Now `fetchFromTokenUri` returns null in that case, the outer cached fn throws, and the next request retries.\\n\\nTypechecks clean.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-887efdc9b673683a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/94#issuecomment-4523282744\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/94#issuecomment-4523282744\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 3832a044eb38dd8ee3ff7aaf719cc2b6723bd058 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netlify.com/projects/art-pin/deploys/6a10e2dd0c02dc00084ad1c7 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\ude0e</span> Deploy Preview | [https://deploy-preview-94--art-pin.netlify.app](https://deploy-preview-94--art-pin.netlify.app) |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udcf1</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTk0LS1hcnQtcGluLm5ldGxpZnkuYXBwIn0.XEG8ASPC0vGUKfRZKlfxG6oc-XQdLSwuLiHh6zjj8xU\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-ac74c326d8cfba76", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390758, "scanner": "foundry_dataset", "fingerprint": "44e3e87524bedaf00badf83916389a11096833ba3d9997f50dc3b92ebf866da5", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#93", "human_labels": ["deployment_env_gap", "mock_placeholder"], "issue_number": "93", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-51c9d6359fe3fedb", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#93\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#93\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d50b69964184c299\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/93\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/93\\nTitle: fix(metadata): content-presence (not raw_uri) as the resolved signal\\nBody:\\n## The recurring \\\"stuck blank token\\\" bug, root-caused\\n\\nToken `0x3b3ee1931dc30c1957379fac9aba94d1c48a5405/133281` shows a placeholder, but its metadata is **available** \u2014 `ipfs://QmbZ\u2026/metadata.json` resolves to name \\\"he died so we could like\\\" via nftstorage.link/dweb.link (ipfs.io 403s it, but `fetchFromIpfs` falls through). The OG-meta route returns `raw_uri` SET with **null** name/description/image.\\n\\nThat's the bug. The resolver stamps `raw_uri` onto **any** parsed JSON, including a gateway error/rate-limit/garbage 200 that has no metadata fields. #87 then treated \\\"`raw_uri` set\\\" as *resolved, final, never re-fetch* \u2014 so one bad fetch pinned the token blank forever.\\n\\n**`raw_uri` is a false success signal.** Fix: key everything off **content presence** instead.\\n\\n- **Resolver** (`packages/token-metadata`): `metadataOrNull()` returns null if the fetched body has none of `name`/`description`/`image`/`animation_url` \u2014 a non-metadata 200 is no longer acc\"\n  },\n  {\n    \"id\": \"github-feedback-comment-e0c78f7a85c167c7\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/93#issuecomment-4523150034\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/93#issuecomment-4523150034\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | c579fb7b3f38693b308b29943c275e31227909f8 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.n\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-76ec1c08a0ff3101", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390757, "scanner": "foundry_dataset", "fingerprint": "106594e79841619696822bc3064e5541bf1c87d7b807171a137997005a98db1a", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#81", "human_labels": ["deployment_env_gap", "mock_placeholder"], "issue_number": "81", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1144481c3e4f61ff", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#81\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#81\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2ef1d2fb1509b4a6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/81\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/81\\nTitle: fix(artist-page): stop transient metadata failures from sticking for an hour\\nBody:\\n## Summary\\n\\nAn artist reported token titles/images intermittently dropping to a placeholder + `#tokenId` for ~an hour, then recovering with no change. Same class of bug as the \\\"Auction house not deployed\\\" one: a transient off-chain fetch failure getting cached as if it were the truth.\\n\\n`getTokenMetadata` reads `tokenURI` on-chain then fetches the metadata JSON off-chain (this collection: `arweave.net`; others: public IPFS gateways). On any failure it returned `null`, and the result was cached with `revalidate: 1h` \u2014 so a single slow/failed fetch poisoned the cache for the full hour, then self-healed when the entry expired and the next fetch succeeded. Hourly revalidation of immutable metadata also meant frequent needless re-fetches, each another chance to hit (and cache) a failure.\\n\\n## Changes (all in `lib/metadata.ts`)\\n\\n- **Cache successes for 24h, not 1h.** Metadata is immutable; a daily recheck still catches reveals / late IPFS pins. Far l\"\n  },\n  {\n    \"id\": \"github-feedback-comment-8fc3a9844b8d3e1d\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/81#issuecomment-4519030141\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/81#issuecomment-4519030141\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | ddc9674b9175141a2b85538f06650f62b2d65ef6 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.netli\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-5a82152e8cfbdf78", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390756, "scanner": "foundry_dataset", "fingerprint": "6de3f99396bdc36d0cb1e00b315b08b673263347ac61fda33f939cfa563f21e9", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#72", "human_labels": ["deployment_env_gap", "mock_placeholder"], "issue_number": "72", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-ab75bad8adf19788", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#72\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#72\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a13813f4699a0a63\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/72\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/72\\nTitle: feat(metadata): resolve ipns:// token URIs and media\\nBody:\\n## Summary\\nTokens whose `tokenURI` (and embedded `image`) use `ipns://` rendered as placeholders \u2014 the IPFS helpers only handled `ipfs://` / `https://\u2026/ipfs/`. The worker's `resolveTokenMetadata` threw on `fetch(\\\"ipns://\u2026\\\")` and stored a placeholder; `ipfsToHttp` passed `ipns://` through unchanged so media never rendered.\\n\\n- `@pin/shared`: add `extractIpnsPath`, `ipnsToGatewayUrl`, `fetchFromIpns`, `IPNS_GATEWAYS`; route `ipns://` through `ipfsToHttp`.\\n- `@pin/token-metadata`: add an `ipns://` fetch branch in `resolveTokenMetadata`.\\n- IPNS resolves via `ipfs.io` / `dweb.link` (name-resolving), not CID-scoped gateways.\\n\\nAffects one token in the current DB (`0x6dd9\u2026cae` #1) but generalizes to any IPNS token.\\n\\n## Test plan\\n- [x] Verified live: `fetchFromIpns` returns \\\"Supervised Portrait 1\\\"; `preview.png` is `200 image/png`\\n- [x] `ipfsToHttp` converts `ipns://` \u2192 gateway URL; `ipfs://` unchanged\\n- [x] worker + web typecheck clean\\n- [ ] Post-merge: redeploy worker, clea\"\n  },\n  {\n    \"id\": \"github-feedback-comment-dc35d7ec8355b51e\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/72#issuecomment-4509001867\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/72#issuecomment-4509001867\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 53ee7adbfa91f2c61abeee876b9180091d31cd46 |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://ap\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-4927cadfc6752cfb", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390755, "scanner": "foundry_dataset", "fingerprint": "f9d0d2cec77b7ac303820c527e6f23fef036bafbc0a97525def989744bb70bbe", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#60", "human_labels": ["deployment_env_gap", "mock_placeholder"], "issue_number": "60", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-e3e70ab3effe9da2", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#60\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#60\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c507f6c0101691c3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/60\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/60\\nTitle: ponder: catch the hardcoded ponder.* refs #59 missed\\nBody:\\n## Context\\n\\nFollowup to #59. Walking through the new \\\"Versioned schema upgrades\\\" docs as a dry run surfaced three call sites #59 missed \u2014 they hardcoded `ponder.*` instead of reading `INDEXER_SCHEMA`. After last PR's rename to `ponder_v1`, two of these were silently broken in production:\\n\\n| File | Status post-#59 |\\n|---|---|\\n| `apps/web/src/lib/sovereign-house.ts:53` | Live bug. `getSovereignHouseOf` swallows the error and falls through to on-chain RPC \u2014 artist page still rendered, just RPC-fanning-out for every house lookup instead of the indexer point query. |\\n| `apps/web/src/app/api/cron/indexer-drift-check/route.ts` (4 refs) | Live bug. Drift-check cron would fail next time it ran. |\\n| `apps/web/src/lib/onchain-discovery.ts:203` | Comment-only. Bumped for clarity. |\\n| `db/migrations/017_pnd_tx_hashes.sql` | Historical migration; already applied, but parameterized so it's safely re-runnable on a fresh DB pointed at a new schema. |\\n\\n## What landed\\n\\n- `sovereign-ho\"\n  },\n  {\n    \"id\": \"github-feedback-comment-3d37ef99acdd4492\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/60#issuecomment-4464387161\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: ripe0x/pin\\nAuthor: netlify[bot] (Bot)\\nURL: https://github.com/ripe0x/pin/pull/60#issuecomment-4464387161\\nTitle: \\nBody:\\n### <span aria-hidden=\\\"true\\\">\u2705</span> Deploy Preview for *art-pin* ready!\\n\\n\\n|  Name | Link |\\n|:-:|------------------------|\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd28</span> Latest commit | 2a8669ca4647fbbdb2a5ce36318d0a0847721cbe |\\n|<span aria-hidden=\\\"true\\\">\ud83d\udd0d</span> Latest deploy log | https://app.\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-00d472e2f6b302d2", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390754, "scanner": "foundry_dataset", "fingerprint": "d4ecda718eff156c16873978b897c76b0194b895a1519d71327adcf8ae846089", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#130", "human_labels": ["ui_or_frontend", "ui_workflow_gap"], "issue_number": "130", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_with_failing_ci_signal", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-10e21826b8ffc19a", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 4, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 1, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#130\nOutcome: claimed_resolved_with_failing_ci_signal\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#130\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_with_failing_ci_signal\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 1\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-92fb1f7d92a77711\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/130\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/130\\nTitle: feat(web): credit djkero for PND logo in footer\\nBody:\\nAdds a small credits block to the global footer.\\n\\n- New \\\"PND logo by djkero\\\" line, linking to djkero's artist profile (`/artist/0xc83e83677dd95618686ac9af2cd48972f1b72c22`).\\n- Moves \\\"Created by ripe\\\" out of the nav links and pairs it with the djkero credit in a small section below the \\\"Artist owned infrastructure on Ethereum\\\" tagline.\\n- Nav links are now just About / Guides / Sites / Log / GitHub + theme toggle.\\n\\nVerified in the local preview at desktop and mobile widths.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-a56c11f4f484d58a\",\n    \"filename\": \"apps/web/src/components/Footer.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 27,\n    \"deletions\": 11,\n    \"changes\": 38,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/28cafd68be1afb9fd74092356449a23411a19c99/apps%2Fweb%2Fsrc%2Fcomponents%2FFooter.tsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-277092cb21267d5d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"architecture\": 1, \"ci\": 2, \"docs\": 1}\nHelicopter view\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-239b9c92d3d8b005", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390753, "scanner": "foundry_dataset", "fingerprint": "0187c7bcfddfd35a141dd56e403a5270de567c0fab481ee79f7b64f1c150e432", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#129", "human_labels": ["security_auth_secret", "ui_or_frontend"], "issue_number": "129", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_with_failing_ci_signal", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-50642fd150acb486", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 4, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#129\nOutcome: claimed_resolved_with_failing_ci_signal\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#129\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_with_failing_ci_signal\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 2\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-71bb226cdd516cd4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/129\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/129\\nTitle: Paginate the bulk-delist / studio listings panel\\nBody:\\n## Problem\\n\\nThe studio Listings tab (and `/delist`'s owner path) loaded everything at once. For an artist with hundreds of listings \u2014 djkero has **294** \u2014 that's one `/api/meta` call **and** one IPFS image/video thumbnail per token, plus that many DOM rows. The listing set itself is a single cheap pg-cached API call; the metadata fan-out and render are the heavy part.\\n\\n## Approach\\n\\nRender and resolve metadata **one page at a time** (`PAGE_SIZE = 30`).\\n\\nThe key insight: **cancellation never needs metadata** \u2014 it only needs `contract` / `tokenId` / `platform`. So selection stays global. \\\"Select all\\\" still selects every listing across every page and cancels them all, which is the entire point of the leave-platforms flow. Pagination is purely a display + load-bounding concern.\\n\\n- **`useSellerListings`**: metadata resolution is split out of the fetch into a reusable `resolveMeta(listings)` that skips already-resolved tokens, streams results in throttled batches, and tra\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-595868e5f1baa205\",\n    \"filename\": \"apps/web/src/components/listings/BulkDelistPanel.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 123,\n    \"deletions\": 17,\n    \"changes\": 140,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/63e9ebf16b998221608937d12097830ae6e927e3/apps%2Fweb%2Fsrc%2Fcomponents%2Flistings%2FBulkDelistPanel.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-e0bf334bb267b00e\",\n    \"filename\": \"apps/web/src/lib/useSellerListings.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 94,\n    \"deletions\": 45,\n    \"changes\": 139,\n    \"blob_url\": \"https://github\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-193790465f722976", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390752, "scanner": "foundry_dataset", "fingerprint": "3430d510816ce23ac5423c9dca8ade98ce8a1f638faf61de9ca8acf683a8629f", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#127", "human_labels": ["mock_placeholder", "ui_or_frontend"], "issue_number": "127", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d640321ab885b6e9", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#127\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#127\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-82e50a989dd848cc\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/127\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/127\\nTitle: fix(web): use the PND logo for the favicon\\nBody:\\n## What\\n\\nReplaces the leftover **\\\"CG\\\"** placeholder favicon (`apps/web/src/app/icon.svg`) with the PND logo \u2014 the same wordmark paths as the navbar `Logo`, in white on the existing black tile.\\n\\nKept as a **solid tile** rather than a `currentColor` mark: favicons can't inherit the page's light/dark theme, and a black tile reads on both light and dark browser chrome (this is what the prior icon already did).\\n\\n## Verification\\n\\nServed from the dev server (`/icon.svg` \u2192 `200 image/svg+xml`) and rendered at favicon sizes on light/dark/gray backgrounds:\\n- Sharp from 32px up; recognizable at 16/24px.\\n- Consistent contrast on all three chrome backgrounds.\\n\\nFollow-up branched off updated `main` after #126 merged (per the repo's squash-merge workflow).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-4e17e12b0cccb745\",\n    \"filename\": \"apps/web/src/app/icon.svg\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 11,\n    \"deletions\": 3,\n    \"changes\": 14,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/30803a8c4791a9fb75c8578112bd5f0d58872bad/apps%2Fweb%2Fsrc%2Fapp%2Ficon.svg\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d3e5481719361cea\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-1e6f81aff65ec1cd", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390751, "scanner": "foundry_dataset", "fingerprint": "a3170e32e7a9e080f15b04998b8f1d5e5ea0dc7a21f7b57227dec0437b63dc21", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#116", "human_labels": ["mock_placeholder", "ui_or_frontend"], "issue_number": "116", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-a5f3ade2f49aaba5", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#116\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#116\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2a400fa9e3991b2c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/116\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/116\\nTitle: fix(artist): resolve missing gallery metadata on demand\\nBody:\\nFollow-up to #115: unclaimed artist pages rendered every tile as the \\\"NFT #id\\\" placeholder because `enrichTokens` is pg-only (`token_metadata` is worker-warmed \u2014 admitted artists only), and the placeholder pages then got cached for 24h.\\n\\n`enrichTokens` now courtesy-resolves content-less refs via `resolveTokenMetadataDirect` (concurrency 8, \u226430 per call), which **writes through** to `token_metadata` \u2014 each token resolves once ever, then serves from Postgres for everyone (including the worker-side consumers). Enriched-page cache v6\u2192v7 clears the cached placeholders on deploy.\\n\\nRPC: demand-driven, \u226430 tokenURI+IPFS resolutions per cold gallery page, amortizing to zero as the table fills.\\n\\nVerified on owlcean.eth (271 works, unadmitted): page one renders 24 real titles/images.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-c0ca7c5116c76b5b\",\n    \"filename\": \"apps/web/src/lib/artist-cache.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 4,\n    \"deletions\": 1,\n    \"changes\": 5,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/1de07f86d32e858731a4c01c740e962e6f35772c/apps%2Fweb%2Fsrc%2Flib%2Fartist-cache.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-744d7346e44ce7f7\",\n    \"filename\": \"apps/web/src/lib/onchain-discovery.ts\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 42,\n    \"deletions\": 0,\n    \"changes\": 42,\n    \"blob_url\": \"https://github.com/ripe0x/pin/blob/1de07f86d32e858731a4c01c740e962e6f35772c/apps%2Fweb%2Fsrc%2Flib%2Fonchain-discovery.ts\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-daa1c781b2de6f65\"]\nSource graph evidence:\nSource evidence repo gra\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-7012be3573f93d3d", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: ripe0x/pin"}, "properties": {"repobilityId": 390750, "scanner": "foundry_dataset", "fingerprint": "268caed97503202a66c3355870a395417cf93a2d30098dfb718e28b49c7d4ce9", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "ripe0x/pin#111", "human_labels": ["mock_placeholder"], "issue_number": "111", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "ripe0x/pin", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-6b59d31e0e79c508", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 4, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: ripe0x/pin\nThread: ripe0x/pin#111\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: ripe0x/pin#111\nRepo: ripe0x/pin\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a77d7f03abc2fd30\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/ripe0x/pin/pull/111\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: ripe0x/pin\\nAuthor: ripe0x (User)\\nURL: https://github.com/ripe0x/pin/pull/111\\nTitle: fix(feed): hide mint rows whose metadata fetch permanently fails\\nBody:\\n## Problem\\n\\nMint events with a broken tokenURI rendered as bare \\\"`<addr>` minted `#<id>`\\\" rows with a zorb placeholder, forever. Trigger case: FND shared-contract token 133282, whose on-chain URI is `ipfs://https://ipfs.io/ipfs/<cid>/<makersplace-contract>` \u2014 a double-scheme URI pointing at a MakersPlace metadata archive *directory* (42k files, none for this token). Unresolvable by anyone (Alchemy's NFT API fails on it too).\\n\\nWorse, the feed's render-path enrichment kept re-resolving the dead URI on every 30s homepage revalidation, indefinitely.\\n\\n## Fix\\n\\nThe two `mint` branches of `getActivityFeed` (FND shared mints, Mint-protocol editions) now LEFT JOIN `token_metadata` and drop a row only when **all three** hold: a metadata row exists, it's all-null (resolution attempted and failed), and the mint is older than a 1h grace window.\\n\\n- **No row yet \u2192 show.** Rendering is what triggers the enrichment attempt + write-through; hiding these would leave unknow\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-56687b8d59b90f81\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: ripe0x/pin\nGraph label: source_backed_multi_signal_graph\nNodes: 10\nEdges: 14\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 4, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 4, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"architect\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "comment-chain-pattern-bad_chains-ce60778787054894", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: ripe0x/pin"}, "properties": {"repobilityId": 414574, "scanner": "foundry_dataset", "fingerprint": "2f6a4000343ffc70b73ad780fff858bfe07ca9340c924e44c87b6f7bf8da5860", "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": 3, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#99", "issue_number": "99", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-d590bb9ab589dd53", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#99\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#99\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#99\nRepo: ripe0x/pin\nIssue/PR number: 99\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-a51a3f5c5e7ae283", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414573, "scanner": "foundry_dataset", "fingerprint": "ff352024c1a88375133f39a077b72fccaf377708883ba33d0c4cfdba8019c59a", "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": 3, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#98", "issue_number": "98", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6d136b83576625c4", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#98\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#98\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#98\nRepo: ripe0x/pin\nIssue/PR number: 98\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-fcda43576c33677c", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414572, "scanner": "foundry_dataset", "fingerprint": "00de304a6e9ebe674e750f608305fcea42181499ed0aeaa0bcbd7f5664daf76e", "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": 4, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#90", "issue_number": "90", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-dd84c551b42e3ba0", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#90\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#90\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#90\nRepo: ripe0x/pin\nIssue/PR number: 90\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 26\nNode types: {'commit': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-b7f16bc63b25b538", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414571, "scanner": "foundry_dataset", "fingerprint": "cd7c4a4f7a4306bd9595c4f5563e4e55d45a47f2ba45926a121e6c721c9a4736", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#89", "issue_number": "89", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-099b4b5ad7879625", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#89\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#89\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#89\nRepo: ripe0x/pin\nIssue/PR number: 89\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-e3d6f85ec90d2645", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414570, "scanner": "foundry_dataset", "fingerprint": "37d83e51d5010d5080574765d64089ac19db4d2ca22a4632bcc6302ddb5fb7ab", "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": 4, "deployment_env_gap": 1, "security_or_secrets": 3, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#88", "issue_number": "88", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-12cd77f84e6f72eb", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#88\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#88\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#88\nRepo: ripe0x/pin\nIssue/PR number: 88\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 4, 'security_or_secrets': 3, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-3f15a548fa1fb494", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414569, "scanner": "foundry_dataset", "fingerprint": "df0dff20d0b1aef4b345a1e00f4cdda35ac4ae51787aa7ad4296098f2e8b00ff", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "verification_or_tests": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#87", "issue_number": "87", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ca717ca8c71584db", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#87\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#87\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#87\nRepo: ripe0x/pin\nIssue/PR number: 87\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 26\nNode types: {'commit': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-794d956d1ca0b26a", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414568, "scanner": "foundry_dataset", "fingerprint": "21d09e8f163121a3e14fca7c470dd369c064e4bd41c65de5cfaf1cfd9fa020f9", "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": 4, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 9, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#86", "issue_number": "86", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a0908b61d46eeffc", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#86\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#86\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#86\nRepo: ripe0x/pin\nIssue/PR number: 86\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 25\nNode types: {'commit': 7, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 9, '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: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-f0038671a273fddd", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414567, "scanner": "foundry_dataset", "fingerprint": "04c88e663bea23e7f8d946c748a9807258b0ad3c9e6935e8b0bfd876aacf3e92", "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": 7, "deployment_env_gap": 1, "security_or_secrets": 3, "security_auth_secret": 2, "verification_or_tests": 2, "claimed_resolved_unverified": 4, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 2, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 8, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 36, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 27, "node_types": {"repo": 1, "commit": 12, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "ripe0x/pin#85", "issue_number": "85", "quality_tiers": {"high_confidence": 4, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ea1cfedf45cf4f19", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#85\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#85\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#85\nRepo: ripe0x/pin\nIssue/PR number: 85\nGraph consistency label: supported_by_verification_signal\nNodes: 27\nEdges: 36\nNode types: {'commit': 12, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 15, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 7, 'claimed_resolved_unverified': 4, 'security_or_secrets': 3, 'security_auth_secret': 2, 'human_reported_issue_then_fix_attempt': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 8, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 4, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-c0a256c41350b782", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414566, "scanner": "foundry_dataset", "fingerprint": "b29e5fa52bb3c24efcfb50e8e873c7662d5ba28fff1f86f668cedfce3ffdbc6a", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#83", "issue_number": "83", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-49d6d9bbc100e533", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#83\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#83\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#83\nRepo: ripe0x/pin\nIssue/PR number: 83\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-b8b2edff22baaaac", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414565, "scanner": "foundry_dataset", "fingerprint": "908aa30f19c52b98f40c1cfd4c6acacb991ac2f78106874d1cd9f1104d3a2a01", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#82", "issue_number": "82", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6408f2c505a34332", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#82\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#82\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#82\nRepo: ripe0x/pin\nIssue/PR number: 82\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-9976ca199c62ca89", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414564, "scanner": "foundry_dataset", "fingerprint": "ebef6a20e517823d881d8d6a26cff5d6ae8abe90580004ea031c4eb86d985eed", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 3, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#80", "issue_number": "80", "quality_tiers": {"high_confidence": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-b0e7e24c6555172e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#80\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#80\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#80\nRepo: ripe0x/pin\nIssue/PR number: 80\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'verification_or_tests': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 4}\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/ripe0x/pin", "source_id": "graph-query-motif_query-7a28f231299a1b0c", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414563, "scanner": "foundry_dataset", "fingerprint": "b548e360ce24e179a27df4f519b1673832603d64fa17e72b74bf88886885a6fc", "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": 6, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#79", "issue_number": "79", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-f7ea22e908226332", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#79\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#79\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#79\nRepo: ripe0x/pin\nIssue/PR number: 79\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 6, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-0a6e5047f12d4e94", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414562, "scanner": "foundry_dataset", "fingerprint": "3c12a5f34fef42431d570b6c46595ba14f6cc6197ad1ebc53bb66a88e3ed84b9", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#78", "issue_number": "78", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-7592a171cc7862bd", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#78\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#78\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#78\nRepo: ripe0x/pin\nIssue/PR number: 78\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'security_or_secrets': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-be3a7bc7c4f2da53", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414561, "scanner": "foundry_dataset", "fingerprint": "38fc097b0d9272b3f8150db873ab0c9d307d95bcf0167b7c44b4b3ef9feec93a", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#76", "issue_number": "76", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-c558ae9ce3af3bcd", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#76\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#76\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#76\nRepo: ripe0x/pin\nIssue/PR number: 76\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 26\nNode types: {'commit': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-4b2cc0c58d12b88c", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414560, "scanner": "foundry_dataset", "fingerprint": "b5f39afed94d0983601772a348a91bcf691aa887e5d0efb0dad3a0a4fe0b3ffb", "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": 5, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#71", "issue_number": "71", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-2905b82c931a787e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#71\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#71\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#71\nRepo: ripe0x/pin\nIssue/PR number: 71\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 26\nNode types: {'commit': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-10e62715a1c3c4e3", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414559, "scanner": "foundry_dataset", "fingerprint": "410ddfbbbe7c3997a83e0d6a5543bf99359ddca6f3be287a217fe6f5eaf87e82", "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": 6, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 2, "human_feedback_general": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "ambiguous_needs_more_evidence": 2, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "ripe0x/pin#70", "issue_number": "70", "quality_tiers": {"high_confidence": 4, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-3481ef9fdfc6de80", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#70\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#70\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#70\nRepo: ripe0x/pin\nIssue/PR number: 70\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 32\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 11, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 6, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_feedback_general': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'high_confidence': 4, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-3e8335572ee04157", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414558, "scanner": "foundry_dataset", "fingerprint": "3343210a000e9344d0a52d51e6b7f84c86cf9a0c3f126c0abe78a8cb7c58d0d6", "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": 4, "deployment_env_gap": 1, "security_or_secrets": 3, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#68", "issue_number": "68", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a3cdf712cd427f5d", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#68\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#68\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#68\nRepo: ripe0x/pin\nIssue/PR number: 68\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 4, 'security_or_secrets': 3, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-b1b091ee22212a73", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414557, "scanner": "foundry_dataset", "fingerprint": "80348e14a670b5657e68b8601079feb595d893ecb57de18de522e811a994101f", "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": 4, "deployment_env_gap": 1, "security_or_secrets": 3, "security_auth_secret": 1, "verification_or_tests": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#67", "issue_number": "67", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-3e4a8bd23016ca06", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#67\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#67\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#67\nRepo: ripe0x/pin\nIssue/PR number: 67\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 26\nNode types: {'commit': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 4, 'security_or_secrets': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-746d62e7a5913af2", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414556, "scanner": "foundry_dataset", "fingerprint": "fed426f36345bedacc0ab9f933018dc2ae930d152612ed7c4f967292a87d1f08", "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": 3, "deployment_env_gap": 1, "security_or_secrets": 3, "security_auth_secret": 1, "verification_or_tests": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#66", "issue_number": "66", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e38cccf09471c1e2", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#66\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#66\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#66\nRepo: ripe0x/pin\nIssue/PR number: 66\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 7, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'security_or_secrets': 3, 'bug_fix': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-d1f25c152a9394ed", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414555, "scanner": "foundry_dataset", "fingerprint": "5c56d44b1120e3abbe1d6bffe9dd73e4a41448f8b92632116be07e24be50fc73", "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": 3, "deployment_env_gap": 1, "security_or_secrets": 3, "security_auth_secret": 1, "verification_or_tests": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#65", "issue_number": "65", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-bee1ad34a95675ef", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#65\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#65\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#65\nRepo: ripe0x/pin\nIssue/PR number: 65\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 7, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'security_or_secrets': 3, 'bug_fix': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-6286e5fbaf3625f4", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414554, "scanner": "foundry_dataset", "fingerprint": "bf4180afa79f764a0969e7f0132e1ce6be9da3d1949e5cda818b9dfcfb2d889a", "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, "data_schema": 2, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 18, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#62", "issue_number": "62", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-9ce285042f1608c8", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#62\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#62\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#62\nRepo: ripe0x/pin\nIssue/PR number: 62\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 26\nNode types: {'commit': 6, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'claimed_resolved_unverified': 3, 'bug_fix': 2, 'data_schema': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-8120f3b082242b59", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414553, "scanner": "foundry_dataset", "fingerprint": "4e7c7d68e8748d1b1a3bdb641cf9e57640756c541ba41954ea3cf18323d410e3", "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": 7, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#61", "issue_number": "61", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-0816f72690ca2be9", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#61\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#61\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#61\nRepo: ripe0x/pin\nIssue/PR number: 61\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-036367cca92dcb58", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414552, "scanner": "foundry_dataset", "fingerprint": "2ef9420a9475f283feba443163c4d7fa5b8acb967aff0d07ea6c3a3fd0b65609", "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": 6, "data_schema": 1, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#58", "issue_number": "58", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-be6ed40cfbb776ee", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#58\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#58\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#58\nRepo: ripe0x/pin\nIssue/PR number: 58\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 6, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-8e1289f5868afab7", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414551, "scanner": "foundry_dataset", "fingerprint": "79983871ed0bf99383de8c2b8293f2dae512f598b6f7dd3b9e9c5b17c1383bea", "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": 7, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#56", "issue_number": "56", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-5ab0818a65edaa6e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#56\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#56\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#56\nRepo: ripe0x/pin\nIssue/PR number: 56\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-4622762a64892690", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414550, "scanner": "foundry_dataset", "fingerprint": "373568f8745f564bb2457dda69452b95c48960b44e1cf9b34df7c1873fc7cd7c", "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": 7, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#51", "issue_number": "51", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e0fe40466e18d929", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#51\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#51\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#51\nRepo: ripe0x/pin\nIssue/PR number: 51\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-8ced4204efc52805", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414549, "scanner": "foundry_dataset", "fingerprint": "3251faad8ad17010f0b2ebb9d9cda66e3adaaa5688c8be00c8bde0f29afed9a5", "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": 5, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 7, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 18, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#48", "issue_number": "48", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e20e92750e7bb7ff", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#48\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#48\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#48\nRepo: ripe0x/pin\nIssue/PR number: 48\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 6, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 7, '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: {'bug_fix': 5, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'verification_or_tests': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-5bf894d90a6bce3d", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414548, "scanner": "foundry_dataset", "fingerprint": "f1892e28da3ce0542b899fcdbd4f8d407c369ef9c304139855bdb44713ea3430", "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": 4, "deployment_env_gap": 1, "security_or_secrets": 1, "security_auth_secret": 1, "verification_or_tests": 3, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#28", "issue_number": "28", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-f24a729697b4e6ac", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#28\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#28\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#28\nRepo: ripe0x/pin\nIssue/PR number: 28\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 26\nNode types: {'commit': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'verification_or_tests': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4}\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/ripe0x/pin", "source_id": "graph-query-motif_query-c1da725eafe2e56e", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414547, "scanner": "foundry_dataset", "fingerprint": "28fcf36ad2fee1f5a075e14369f51bad9afa7788bcf68f8a636797bb5cd7cfe8", "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": 4, "deployment_env_gap": 1, "security_or_secrets": 2, "security_auth_secret": 1, "verification_or_tests": 3, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#25", "issue_number": "25", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8ec25f91a304e23c", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#25\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#25\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#25\nRepo: ripe0x/pin\nIssue/PR number: 25\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'verification_or_tests': 3, 'security_or_secrets': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4}\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/ripe0x/pin", "source_id": "graph-query-motif_query-a7e2177010ea9478", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414546, "scanner": "foundry_dataset", "fingerprint": "434c6bb97ff36c99587258cdfbb556bef26995dba930c2275649e3ca46dc0f54", "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": 7, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 3, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#24", "issue_number": "24", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-b7722bd9047b2cab", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#24\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#24\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#24\nRepo: ripe0x/pin\nIssue/PR number: 24\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 26\nNode types: {'commit': 10, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4}\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/ripe0x/pin", "source_id": "graph-query-motif_query-b87d5b031a183f0b", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414545, "scanner": "foundry_dataset", "fingerprint": "5db5af60fc1f2f624376c9f7212032129349ccd5a273c3a3ba1cdc733c5fcac9", "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": 7, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 3, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#20", "issue_number": "20", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6162bf30c2d2242d", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#20\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#20\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#20\nRepo: ripe0x/pin\nIssue/PR number: 20\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 26\nNode types: {'commit': 10, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4}\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/ripe0x/pin", "source_id": "graph-query-motif_query-a69214034ad27a4b", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414544, "scanner": "foundry_dataset", "fingerprint": "37673e869f3550b6b00dd232f7d42066fe3f582c793cc532216832e13b7de773", "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": 7, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 3, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#18", "issue_number": "18", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-9b7430ea7a4b6961", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#18\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#18\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#18\nRepo: ripe0x/pin\nIssue/PR number: 18\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 26\nNode types: {'commit': 10, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4}\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/ripe0x/pin", "source_id": "graph-query-motif_query-6071a0c8a7c9633e", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414543, "scanner": "foundry_dataset", "fingerprint": "0ce5a812f111313aa21f5ecfe979ed6c20392b8fb8d56c6892cb41643ca7e1f3", "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": 4, "ui_or_frontend": 2, "ci_failure_signal": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "comment_chain_has_ci": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#129", "issue_number": "129", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-15c29c4a90c484f4", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "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: contradicted_by_ci_or_failure_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#129\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#129\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#129\nRepo: ripe0x/pin\nIssue/PR number: 129\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 16\nEdges: 22\nNode types: {'commit': 4, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 4, 'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_failing_ci_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'ci_failure_signal': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {'ci_failure_signal': 2}\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/ripe0x/pin", "source_id": "graph-query-motif_query-96c22e6d77dd0e1a", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414542, "scanner": "foundry_dataset", "fingerprint": "71b6c35ec4db8eb27f16398d8fcf71fbd729fce74e823d1be875d1ef5a6b2906", "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": 5, "ui_or_frontend": 8, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 40, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 8, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 8, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#126", "issue_number": "126", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-20cab76ae531165a", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 32}}, "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: ripe0x/pin\nThread: ripe0x/pin#126\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#126\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#126\nRepo: ripe0x/pin\nIssue/PR number: 126\nGraph consistency label: supported_by_high_confidence_link\nNodes: 22\nEdges: 40\nNode types: {'pr_file': 8, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 8, 'comment_chain_touches_file': 8, 'issue_chain_touches_file': 8, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 8, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-bcc4619ac829c934", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414541, "scanner": "foundry_dataset", "fingerprint": "a11ca0cf46b689b4128de4ed2b415513b1aed46df39be6cedf525a97f7b1c13a", "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": 5, "api_or_backend": 2, "ui_or_frontend": 3, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#124", "issue_number": "124", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6a5aed40d5fab34f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 8, "ui_or_frontend": 12}}, "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: ripe0x/pin\nThread: ripe0x/pin#124\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#124\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#124\nRepo: ripe0x/pin\nIssue/PR number: 124\nGraph consistency label: weak_supervision_needs_review\nNodes: 19\nEdges: 31\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 5, 'ui_or_frontend': 3, 'claimed_resolved_unverified': 3, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-0924879e4617cc62", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414540, "scanner": "foundry_dataset", "fingerprint": "f89c4f4760f4420f78d50ef11dd3cb0b549feb2a295defcc4dd432b1fa1e3efc", "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": 5, "schema_or_data": 1, "ui_or_frontend": 6, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 37, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 7, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 7, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 7, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#123", "issue_number": "123", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-7b722269729b80e3", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 24}}, "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: ripe0x/pin\nThread: ripe0x/pin#123\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#123\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#123\nRepo: ripe0x/pin\nIssue/PR number: 123\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 37\nNode types: {'pr_file': 7, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 7, 'comment_chain_touches_file': 7, 'issue_chain_touches_file': 7, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 6, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-81e10c20af376a09", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414539, "scanner": "foundry_dataset", "fingerprint": "767a1f984bc3699353fe1726712fa37860b4135a058b5222a7cdbba30762d98e", "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": 5, "docs_or_claims": 1, "schema_or_data": 2, "ui_or_frontend": 43, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 86, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 46, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 60, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 46, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#122", "issue_number": "122", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-d2f61aedff0ebcb5", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"docs_or_claims": 4, "schema_or_data": 8, "ui_or_frontend": 172}}, "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: ripe0x/pin\nThread: ripe0x/pin#122\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#122\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#122\nRepo: ripe0x/pin\nIssue/PR number: 122\nGraph consistency label: supported_by_high_confidence_link\nNodes: 60\nEdges: 86\nNode types: {'pr_file': 46, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 46, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 43, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'schema_or_data': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'docs_or_claims': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-eff17099d5732832", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414538, "scanner": "foundry_dataset", "fingerprint": "6a16eee436e192b81afa23217df2858b42c1769ab9639a732f32d2e082f3c440", "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": 4, "ui_or_frontend": 1, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 19, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#121", "issue_number": "121", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ac212230a6efa522", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: ripe0x/pin\nThread: ripe0x/pin#121\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#121\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#121\nRepo: ripe0x/pin\nIssue/PR number: 121\nGraph consistency label: supported_by_high_confidence_link\nNodes: 15\nEdges: 19\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-dcc890b275ca6ba1", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414537, "scanner": "foundry_dataset", "fingerprint": "b4442cf92f6f22c356552142476f69da3e6b9587561309aa644b92101646a90f", "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": 5, "ui_or_frontend": 11, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 49, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 11, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 11, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 11, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#120", "issue_number": "120", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8a30702d73205931", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 44}}, "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: ripe0x/pin\nThread: ripe0x/pin#120\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#120\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#120\nRepo: ripe0x/pin\nIssue/PR number: 120\nGraph consistency label: supported_by_high_confidence_link\nNodes: 25\nEdges: 49\nNode types: {'pr_file': 11, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 11, 'comment_chain_touches_file': 11, 'issue_chain_touches_file': 11, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 11, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-4d4700e31d010376", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414536, "scanner": "foundry_dataset", "fingerprint": "eab9cb6f49ea4ec3a3105905778df90447c193fe29335aa374c372fa9794c0d0", "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": 4, "ui_or_frontend": 2, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#118", "issue_number": "118", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-b03b5b3a2dd817f4", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 8}}, "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: ripe0x/pin\nThread: ripe0x/pin#118\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#118\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#118\nRepo: ripe0x/pin\nIssue/PR number: 118\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 22\nNode types: {'commit': 5, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-4fd83612c16a8c61", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414535, "scanner": "foundry_dataset", "fingerprint": "744294ce887ee4156a612c8f836e55dd337ae8d2d265a9f3c3e8137c6a651cf1", "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": 4, "ui_or_frontend": 2, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#115", "issue_number": "115", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e96e587a47a0ad8a", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 8}}, "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: ripe0x/pin\nThread: ripe0x/pin#115\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#115\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#115\nRepo: ripe0x/pin\nIssue/PR number: 115\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 22\nNode types: {'commit': 5, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-a52ba06a59f8dbb5", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414534, "scanner": "foundry_dataset", "fingerprint": "35de174a23e7654cf56dda3818e451856cae93bfd7101dbc5a45803d0e2bd096", "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": 5, "ui_or_frontend": 2, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#112", "issue_number": "112", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-33a994ad2dacb32a", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 8}}, "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: ripe0x/pin\nThread: ripe0x/pin#112\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#112\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#112\nRepo: ripe0x/pin\nIssue/PR number: 112\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 22\nNode types: {'commit': 5, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-0aecb787477f176d", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414533, "scanner": "foundry_dataset", "fingerprint": "a0f2cca12c073febeb76872f55f59ee9cd62caf3d730e27dc7b01f57c2bce3e6", "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": 4, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#110", "issue_number": "110", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-05567fbf6a065987", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#110\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#110\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#110\nRepo: ripe0x/pin\nIssue/PR number: 110\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-996dd03c7d187c9e", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414532, "scanner": "foundry_dataset", "fingerprint": "934ed6321dbc0af639fa171060e0917d81345bc9cd86b7655d149db15fe5da37", "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": 10, "deployment_env_gap": 1, "security_auth_secret": 1, "verification_or_tests": 4, "human_feedback_general": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "ambiguous_needs_more_evidence": 2, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 36, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 29, "node_types": {"repo": 1, "commit": 14, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "ripe0x/pin#11", "issue_number": "11", "quality_tiers": {"weak_supervision": 5}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-b25dd0e3faea4f22", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#11\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#11\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#11\nRepo: ripe0x/pin\nIssue/PR number: 11\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 36\nNode types: {'commit': 14, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 15, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 10, 'verification_or_tests': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'human_feedback_general': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 5}\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/ripe0x/pin", "source_id": "graph-query-motif_query-82bc1727578b7b37", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414531, "scanner": "foundry_dataset", "fingerprint": "6ea379aabee6dfbc96b9271351806337b3afa0895e48601e1e63fec68b98f65c", "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": 4, "schema_or_data": 1, "ui_or_frontend": 11, "source_or_other": 2, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 54, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 14, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 28, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 14, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#109", "issue_number": "109", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-c1fb79f1728e78f2", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"schema_or_data": 4, "ui_or_frontend": 44, "source_or_other": 8}}, "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_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#109\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#109\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#109\nRepo: ripe0x/pin\nIssue/PR number: 109\nGraph consistency label: supported_by_verification_signal\nNodes: 28\nEdges: 54\nNode types: {'pr_file': 14, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 14, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 11, 'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'source_or_other': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'schema_or_data': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-36de786ba7ca57e8", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414530, "scanner": "foundry_dataset", "fingerprint": "7b3399e185a37479b8b864157046772a7fe2107192f286a10358cfa56df425a5", "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": 4, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#108", "issue_number": "108", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-74adc59027d967ee", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: ripe0x/pin\nThread: ripe0x/pin#108\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#108\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#108\nRepo: ripe0x/pin\nIssue/PR number: 108\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-a6a032729f44de9c", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414529, "scanner": "foundry_dataset", "fingerprint": "9d2a767ce676dfc50e0efbbc930a91a8a0862b5c799da0c348d1182d0dff3f4d", "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": 4, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#105", "issue_number": "105", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ce506499e655c342", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: ripe0x/pin\nThread: ripe0x/pin#105\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#105\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#105\nRepo: ripe0x/pin\nIssue/PR number: 105\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-31eca70759f76566", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414528, "scanner": "foundry_dataset", "fingerprint": "db5d07496a990d48e9e92fdbe2ed49cd3823eeb91b8679264576685a3a91a02f", "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": 5, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#104", "issue_number": "104", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e26c7a8b94d7f701", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: ripe0x/pin\nThread: ripe0x/pin#104\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#104\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#104\nRepo: ripe0x/pin\nIssue/PR number: 104\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-d8265f8fd99c1298", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414527, "scanner": "foundry_dataset", "fingerprint": "2e1a02577cc3143fe4d62d98434f60c25a93f8cebd1ef90edb5cc31700f1839e", "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": 4, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#102", "issue_number": "102", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-43c82d612fd78949", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: ripe0x/pin\nThread: ripe0x/pin#102\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#102\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#102\nRepo: ripe0x/pin\nIssue/PR number: 102\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-7a05967864c8f7ee", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414526, "scanner": "foundry_dataset", "fingerprint": "6c78b0b7e4e1729a0cdc566e30fca6db9e5c9deef3785e6ffab7aa3242f760b2", "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": 5, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#101", "issue_number": "101", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-320f77e903332c90", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: ripe0x/pin\nThread: ripe0x/pin#101\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#101\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#101\nRepo: ripe0x/pin\nIssue/PR number: 101\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-51183e77d0aa57a8", "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": "ripe0x/pin", "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: ripe0x/pin"}, "properties": {"repobilityId": 414525, "scanner": "foundry_dataset", "fingerprint": "f4ea63339c1e853eb44511f8823ffc3868c9bcab9b87a614e1db290efd9dbc6a", "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": 4, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#100", "issue_number": "100", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-21ca75b01122934f", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: ripe0x/pin\nThread: ripe0x/pin#100\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#100\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#100\nRepo: ripe0x/pin\nIssue/PR number: 100\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'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/ripe0x/pin", "source_id": "graph-query-motif_query-96e09d30d8ab2262", "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": "ripe0x/pin", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408041, "scanner": "foundry_dataset", "fingerprint": "dd9fab00c934ffd68224cc3c287fc92cc182979663f183c7c47971ab42c7459c", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 3, "mock_placeholder": 1, "verification_or_tests": 2, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#97", "issue_number": "97", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d1d6f4cd409c0c57", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#97\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#97\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#97\nRepo: ripe0x/pin\nIssue/PR number: 97\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_verified_fix_attempt': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-3c96dd24dfd38cf9", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408040, "scanner": "foundry_dataset", "fingerprint": "f40b1234f79d01753553a4dedaf507ff5584a2a183bc5279cf431a2aef1cd8ea", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 4, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 4, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 20, "node_types": {"repo": 1, "commit": 8, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#96", "issue_number": "96", "quality_tiers": {"high_confidence": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-be8826a87e54c89a", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#96\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#96\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#96\nRepo: ripe0x/pin\nIssue/PR number: 96\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 26\nNode types: {'commit': 8, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'verification_or_tests': 4, 'bug_fix': 4, 'claimed_resolved_with_verification_signal': 4, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 4}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-f1b9a6a1bdfc4c69", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408039, "scanner": "foundry_dataset", "fingerprint": "75ea3187c3318ab5fee54cf8c448ba4c7d3dba903879e314c1b0f6486a963643", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 7, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#94", "issue_number": "94", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-9a806cb7ff1efb92", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#94\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#94\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#94\nRepo: ripe0x/pin\nIssue/PR number: 94\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-3820a20e5d818173", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408038, "scanner": "foundry_dataset", "fingerprint": "0cc3dea4a87955ccbb7209a86dc39771ee07996671218b4cc90dd88759645848", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 6, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#93", "issue_number": "93", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-9ac7dc04b103668a", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#93\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#93\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#93\nRepo: ripe0x/pin\nIssue/PR number: 93\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 7, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 6, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-5476f0bbe80dd973", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408037, "scanner": "foundry_dataset", "fingerprint": "d85f389a71ab7924e6f06e6572d1816e43c0561ff0410da651dc282273074d34", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 7, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#81", "issue_number": "81", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-4a86972db78156b1", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#81\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#81\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#81\nRepo: ripe0x/pin\nIssue/PR number: 81\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-a34ff450626ea856", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408036, "scanner": "foundry_dataset", "fingerprint": "576a191be3635a85f288cb987398a08ae69bf6b225fad876c59f98c91359bdb6", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 6, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 3, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#73", "issue_number": "73", "quality_tiers": {"high_confidence": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d2bf976391f13f17", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#73\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#73\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#73\nRepo: ripe0x/pin\nIssue/PR number: 73\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 6, 'claimed_resolved_with_verification_signal': 4, 'verification_or_tests': 3, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 4}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-6da625581f145b1c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408035, "scanner": "foundry_dataset", "fingerprint": "29bef7389e5f79a0c437d686893313156f0d2d7d7bc7275f2d22b826a25f2d22", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 6, "mock_placeholder": 1, "deployment_env_gap": 1, "security_or_secrets": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#72", "issue_number": "72", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ae18c695e65f62b1", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#72\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#72\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#72\nRepo: ripe0x/pin\nIssue/PR number: 72\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 6, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'security_or_secrets': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-24d7345111071198", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408034, "scanner": "foundry_dataset", "fingerprint": "54585bbc0f4ba5d019500c1b20c9bf08405c0f548285829ca7d1b605c00d5be6", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 7, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 2, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#60", "issue_number": "60", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-32807f5422ea3f52", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#60\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#60\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#60\nRepo: ripe0x/pin\nIssue/PR number: 60\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 7, 'claimed_resolved_unverified': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-5974b6097b817e5a", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408033, "scanner": "foundry_dataset", "fingerprint": "419eb582202b17f780a28959d718990c12fc181fe86695f6444e295c85c481ff", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 6, "mock_placeholder": 1, "deployment_env_gap": 1, "verification_or_tests": 3, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 4, "human_reported_issue_then_verified_fix_attempt": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_with_verification_signal": 8}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "ripe0x/pin#50", "issue_number": "50", "quality_tiers": {"high_confidence": 4}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-5254c5aec8570651", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#50\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#50\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#50\nRepo: ripe0x/pin\nIssue/PR number: 50\nGraph consistency label: supported_by_verification_signal\nNodes: 21\nEdges: 26\nNode types: {'commit': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, '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: {'bug_fix': 6, 'claimed_resolved_with_verification_signal': 4, 'verification_or_tests': 3, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'high_confidence': 4}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-e23adb5aba0c9849", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408032, "scanner": "foundry_dataset", "fingerprint": "329a784a58bc27bb82354e0b037ec48178b6ca27c52332d2aacf9a21a58c70b7", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 5, "ui_or_frontend": 1, "mock_placeholder": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 19, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#127", "issue_number": "127", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e4e035a5dbccec53", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: ripe0x/pin\nThread: ripe0x/pin#127\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#127\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#127\nRepo: ripe0x/pin\nIssue/PR number: 127\nGraph consistency label: supported_by_high_confidence_link\nNodes: 15\nEdges: 19\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-af9de3be82b231e8", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408031, "scanner": "foundry_dataset", "fingerprint": "fd9d7d12fd56641c002d5657a5dbce76e55f1b708afb47abf6d2111e7c495de1", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 4, "data_schema": 1, "ui_or_frontend": 2, "mock_placeholder": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#116", "issue_number": "116", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-551761ca0f5299d9", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: ripe0x/pin\nThread: ripe0x/pin#116\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#116\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#116\nRepo: ripe0x/pin\nIssue/PR number: 116\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 22\nNode types: {'commit': 5, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-f20e99ce53d4ee46", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: ripe0x/pin"}, "properties": {"repobilityId": 408030, "scanner": "foundry_dataset", "fingerprint": "fb471f7da3c30dd001cda3c21dcb7b7f9ba0f92076e724c7682b0833d22ca015", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 4, "data_schema": 1, "mock_placeholder": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#111", "issue_number": "111", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-13b28b0bd04fcf0c", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: ripe0x/pin\nThread: ripe0x/pin#111\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#111\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#111\nRepo: ripe0x/pin\nIssue/PR number: 111\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-baed86cf16dfb70b", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: ripe0x/pin"}, "properties": {"repobilityId": 406161, "scanner": "foundry_dataset", "fingerprint": "54e5b36293e27c752cc28228031794dc5c84d022b20a6fae50aeba2a067e3408", "category": "ci", "severity": "critical", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"bug_fix": 3, "ui_or_frontend": 1, "ui_workflow_gap": 1, "ci_failure_signal": 1, "generated_provenance": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#130", "issue_number": "130", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-c51b9758983309c1", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#130\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#130\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#130\nRepo: ripe0x/pin\nIssue/PR number: 130\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 4, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 4, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_failing_ci_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'generated_provenance': 1, 'ci_failure_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-91586232a9b8ead4", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: ripe0x/pin"}, "properties": {"repobilityId": 406160, "scanner": "foundry_dataset", "fingerprint": "16f8ea767708b02f88df6f38a96b38db2d96aec0d57d25c780b88cacc56ed2ed", "category": "ci", "severity": "critical", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"bug_fix": 4, "ui_or_frontend": 2, "ci_failure_signal": 1, "security_auth_secret": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_failing_ci_signal": 3, "human_reported_issue_then_failing_ci_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"claimed_resolved_with_failing_ci_signal": 6}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "comment_chain_has_ci": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "ripe0x/pin#129", "issue_number": "129", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "ripe0x/pin", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-b5354a17a215432a", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: ripe0x/pin\nThread: ripe0x/pin#129\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: ripe0x/pin\nThread: ripe0x/pin#129\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: ripe0x/pin#129\nRepo: ripe0x/pin\nIssue/PR number: 129\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 16\nEdges: 22\nNode types: {'commit': 4, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 4, 'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_failing_ci_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_failing_ci_fix_attempt': 1, 'ci_failure_signal': 1}\nOutcomes: {'claimed_resolved_with_failing_ci_signal': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/ripe0x/pin", "source_id": "graph-query-motif_query-1972799a1a2c7eea", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "ripe0x/pin", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-02e258e1b1694e0b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/health.ts:51"}, "properties": {"repobilityId": "c42e0e552d0b3991", "scanner": "scanner-primary", "fingerprint": "02e258e1b1694e0b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-42b25f63c857c814", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/index.ts:35"}, "properties": {"repobilityId": "6b15428f22f375c6", "scanner": "scanner-primary", "fingerprint": "42b25f63c857c814", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-99b44bfcf855fdee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/scheduler.ts:218"}, "properties": {"repobilityId": "953e77d6dceb0ca0", "scanner": "scanner-primary", "fingerprint": "99b44bfcf855fdee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4c25e58dcd55088b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/probe-cid-availability.ts:315"}, "properties": {"repobilityId": "4babc151ba5be7db", "scanner": "scanner-primary", "fingerprint": "4c25e58dcd55088b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b4469eca6c3f5b5b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/seed-known-artists.ts:47"}, "properties": {"repobilityId": "b080482dc873071e", "scanner": "scanner-primary", "fingerprint": "b4469eca6c3f5b5b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-005a8f84e4bce859", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/scan-fnd-shared.ts:80"}, "properties": {"repobilityId": "92150d34bd5180fe", "scanner": "scanner-primary", "fingerprint": "005a8f84e4bce859", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bebab9097d54ac1d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/refresh-artist.ts:24"}, "properties": {"repobilityId": "c4051cee46352eea", "scanner": "scanner-primary", "fingerprint": "bebab9097d54ac1d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13f2a8c6dcfa3db0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/tasks/refresh-token.ts:48"}, "properties": {"repobilityId": "100df23be8d393d4", "scanner": "scanner-primary", "fingerprint": "13f2a8c6dcfa3db0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a7afacc5f168803d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/scanners/manifold.ts:814"}, "properties": {"repobilityId": "507c4ef9f9e9d4dd", "scanner": "scanner-primary", "fingerprint": "a7afacc5f168803d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-91473680d794fcea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/worker/src/_imported-from-warmer/index.ts:127"}, "properties": {"repobilityId": "303ecd98464a99b7", "scanner": "scanner-primary", "fingerprint": "91473680d794fcea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5da00527c66bd88a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/tests/e2e/fixtures/globalSetup.ts:88"}, "properties": {"repobilityId": "26459febb0294d9c", "scanner": "scanner-primary", "fingerprint": "5da00527c66bd88a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ffd92961e799025", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/CampaignBanner.tsx:38"}, "properties": {"repobilityId": "8a322309d53d2ccc", "scanner": "scanner-primary", "fingerprint": "8ffd92961e799025", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6451635e991e1444", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/TokenCard.tsx:38"}, "properties": {"repobilityId": "52274c3ea5ed2cde", "scanner": "scanner-primary", "fingerprint": "6451635e991e1444", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ef4d4f7e0fe5e94", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/preserve/PreserveGrid.tsx:73"}, "properties": {"repobilityId": "7c8bdaec06f88da9", "scanner": "scanner-primary", "fingerprint": "6ef4d4f7e0fe5e94", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-30f6c6779b385f1e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/dependency/ContractMapTable.tsx:40"}, "properties": {"repobilityId": "e909dacb987727be", "scanner": "scanner-primary", "fingerprint": "30f6c6779b385f1e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-38efaa2be06f3597", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/listings/SellerListingsView.tsx:202"}, "properties": {"repobilityId": "da66ff994e8a41ee", "scanner": "scanner-primary", "fingerprint": "38efaa2be06f3597", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f41c1275be0d0a4d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/listings/SovereignBulkPanel.tsx:893"}, "properties": {"repobilityId": "e97240d475c16f90", "scanner": "scanner-primary", "fingerprint": "f41c1275be0d0a4d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ff65c74a699c5a2e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/artist/ArtistHeader.tsx:50"}, "properties": {"repobilityId": "7a445986685ae331", "scanner": "scanner-primary", "fingerprint": "ff65c74a699c5a2e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7c4b494158018248", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/artist/ArtistGallery.tsx:310"}, "properties": {"repobilityId": "beb5cb8845428d14", "scanner": "scanner-primary", "fingerprint": "7c4b494158018248", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f0e5bea61d4e5747", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/CatalogRowLabels.tsx:64"}, "properties": {"repobilityId": "08db6005b8a30093", "scanner": "scanner-primary", "fingerprint": "f0e5bea61d4e5747", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9defd8afd043b19e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/src/components/catalog/useCatalogWrite.ts:98"}, "properties": {"repobilityId": "8eff6023634cd465", "scanner": "scanner-primary", "fingerprint": "9defd8afd043b19e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d38bfd1b2540646", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/ContractPreview.tsx:59"}, "properties": {"repobilityId": "c30b856f2f18072f", "scanner": "scanner-primary", "fingerprint": "7d38bfd1b2540646", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fcaf74dda8a5313b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/TokenPreview.tsx:53"}, "properties": {"repobilityId": "921c1335bfcd3aaf", "scanner": "scanner-primary", "fingerprint": "fcaf74dda8a5313b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3dce1b283eb0e61f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/catalog/ImportPlanner.tsx:862"}, "properties": {"repobilityId": "344f338952b4a6ad", "scanner": "scanner-primary", "fingerprint": "3dce1b283eb0e61f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-da61da1bb41eed12", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/SettledAuctionSummary.tsx:88"}, "properties": {"repobilityId": "2bf653ac6ed2f01f", "scanner": "scanner-primary", "fingerprint": "da61da1bb41eed12", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-af5b72233f43da97", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/AuctionPanel.tsx:373"}, "properties": {"repobilityId": "a22c612157e0ec20", "scanner": "scanner-primary", "fingerprint": "af5b72233f43da97", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a50cfaab612d658e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/auction/TokenPreview.tsx:123"}, "properties": {"repobilityId": "242798582dc8419d", "scanner": "scanner-primary", "fingerprint": "a50cfaab612d658e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-18a9f40ceab9b176", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/AuctionCard.tsx:114"}, "properties": {"repobilityId": "c5ce355316717b92", "scanner": "scanner-primary", "fingerprint": "18a9f40ceab9b176", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-91a2f0e8ba58eb6c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/WorkArtistCard.tsx:136"}, "properties": {"repobilityId": "dcc353f65f0108be", "scanner": "scanner-primary", "fingerprint": "91a2f0e8ba58eb6c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-71296433f3ea4dba", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/home/v2/ActivityRow.tsx:400"}, "properties": {"repobilityId": "2613e78d1af3519e", "scanner": "scanner-primary", "fingerprint": "71296433f3ea4dba", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c4c3bec8809fb26f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/editions/MintHistory.tsx:33"}, "properties": {"repobilityId": "7d87e71024e602cd", "scanner": "scanner-primary", "fingerprint": "c4c3bec8809fb26f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e96f5e7bacdf8b05", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/migrate/MigratePanel.tsx:798"}, "properties": {"repobilityId": "e4e5e01680b28691", "scanner": "scanner-primary", "fingerprint": "e96f5e7bacdf8b05", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bdd6358a451bed05", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/components/sites/DeployButtons.tsx:40"}, "properties": {"repobilityId": "56bee54bf1f6c451", "scanner": "scanner-primary", "fingerprint": "bdd6358a451bed05", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48ae966159280409", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/dependency/[address]/page.tsx:126"}, "properties": {"repobilityId": "b8c8255c9952ffd1", "scanner": "scanner-primary", "fingerprint": "48ae966159280409", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-673784b14f99812e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/web/src/app/artist/[address]/page.tsx:136"}, "properties": {"repobilityId": "fcc5220f6350c82d", "scanner": "scanner-primary", "fingerprint": "673784b14f99812e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-71ee4480abdb74cb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/catalog/[address]/page.tsx:152"}, "properties": {"repobilityId": "414a587e6587c206", "scanner": "scanner-primary", "fingerprint": "71ee4480abdb74cb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-17cd1b36fee387ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/auction/new/AuctionNewClient.tsx:289"}, "properties": {"repobilityId": "ec366773579be28c", "scanner": "scanner-primary", "fingerprint": "17cd1b36fee387ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-15b0d5581a735fec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/auction/[house]/[auctionId]/page.tsx:181"}, "properties": {"repobilityId": "ae907897386adde3", "scanner": "scanner-primary", "fingerprint": "15b0d5581a735fec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9d3cade289162b0c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/editions/page.tsx:56"}, "properties": {"repobilityId": "bc10869c9b178beb", "scanner": "scanner-primary", "fingerprint": "9d3cade289162b0c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1de684a32f726ba3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/studio/[address]/layout.tsx:86"}, "properties": {"repobilityId": "928d257444f3ca46", "scanner": "scanner-primary", "fingerprint": "1de684a32f726ba3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-500fbba41dd7725a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/app/[handle]/[tokenId]/page.tsx:513"}, "properties": {"repobilityId": "87f9614507c01588", "scanner": "scanner-primary", "fingerprint": "500fbba41dd7725a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-110565730b7b150b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/components/ArtistHero.tsx:58"}, "properties": {"repobilityId": "08f8a79f23415689", "scanner": "scanner-primary", "fingerprint": "110565730b7b150b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b750610caf9913cf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/components/AuctionCard.tsx:47"}, "properties": {"repobilityId": "f5525b812ba756d3", "scanner": "scanner-primary", "fingerprint": "b750610caf9913cf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f0c79f932c8f8d0f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 templates/artist-page/app/auction/[auctionId]/page.tsx:225"}, "properties": {"repobilityId": "ad856ce6c3f9efb3", "scanner": "scanner-primary", "fingerprint": "f0c79f932c8f8d0f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a056357c83a178b5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/addresses/src/index.ts:18"}, "properties": {"repobilityId": "fd619194f13a8e82", "scanner": "scanner-primary", "fingerprint": "a056357c83a178b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5711bc7a764ef3d1", "level": "warning", "message": {"text": "Dockerfile runs as root: apps/worker/Dockerfile"}, "properties": {"repobilityId": "cf4cee7637fe488a", "scanner": "scanner-primary", "fingerprint": "5711bc7a764ef3d1", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-eca5e0717230c5cc", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-slim"}, "properties": {"repobilityId": "0b3bad03630bb18b", "scanner": "scanner-primary", "fingerprint": "eca5e0717230c5cc", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/worker/Dockerfile"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-efe21ce600f51bd3", "level": "warning", "message": {"text": "Dockerfile runs as root: apps/indexer/Dockerfile"}, "properties": {"repobilityId": "7c912fbf5288ed9a", "scanner": "scanner-primary", "fingerprint": "efe21ce600f51bd3", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-c0e4204573d940a8", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-slim"}, "properties": {"repobilityId": "e26b1275d24e7622", "scanner": "scanner-primary", "fingerprint": "c0e4204573d940a8", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/indexer/Dockerfile"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-a741316c2063b064", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/web/scripts/ensure-env-local.mjs:13"}, "properties": {"repobilityId": "faf333b37df0ae5c", "scanner": "scanner-primary", "fingerprint": "a741316c2063b064", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/scripts/ensure-env-local.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-4cb449607f702896", "level": "note", "message": {"text": "Very large file: apps/web/src/components/catalog/ImportPlanner.tsx (1619 lines)"}, "properties": {"repobilityId": "c651c3c337519686", "scanner": "scanner-primary", "fingerprint": "4cb449607f702896", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"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-8d1ed11de463ffed", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/worker/package.json"}, "properties": {"repobilityId": "332aff32a3fdf183", "scanner": "scanner-primary", "fingerprint": "8d1ed11de463ffed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/worker/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a9eb7dc7c6e3880", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/web/package.json"}, "properties": {"repobilityId": "6c1704bf24cf19ac", "scanner": "scanner-primary", "fingerprint": "4a9eb7dc7c6e3880", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-81eb1176870ca0fa", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/indexer/package.json"}, "properties": {"repobilityId": "9a5b83c0d082e4ed", "scanner": "scanner-primary", "fingerprint": "81eb1176870ca0fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/indexer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-184c76dfd7cd2181", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/addresses/package.json"}, "properties": {"repobilityId": "9158b2c8582d6357", "scanner": "scanner-primary", "fingerprint": "184c76dfd7cd2181", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/addresses/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2699d5f16ae11282", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/shared/package.json"}, "properties": {"repobilityId": "37ac218a4ef9b430", "scanner": "scanner-primary", "fingerprint": "2699d5f16ae11282", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/shared/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f848f63c43f34053", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/abi/package.json"}, "properties": {"repobilityId": "fa902a064cf39505", "scanner": "scanner-primary", "fingerprint": "f848f63c43f34053", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/abi/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-69c754f2c2ecdf03", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/token-metadata/package.json"}, "properties": {"repobilityId": "bb8223a8cc242c94", "scanner": "scanner-primary", "fingerprint": "69c754f2c2ecdf03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/token-metadata/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0e9dee7e57379a41", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "b19862f595237e6e", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "f80e9ba721a26699", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "15677d4cf24f8f0a", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "1bbaf97ba74420c2", "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": "aba20fd7d3480e77", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-d83ca44cc3b74e10", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/scheduler.ts:131"}, "properties": {"repobilityId": "c49ccce656473d7c", "scanner": "scanner-primary", "fingerprint": "d83ca44cc3b74e10", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-edc6f9c8cbec06aa", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-fnd-collections.ts:16"}, "properties": {"repobilityId": "413e32967b20a2b7", "scanner": "scanner-primary", "fingerprint": "edc6f9c8cbec06aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bb4732da242cd2ed", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/worker/src/tasks/scan-fnd-collections.ts:21"}, "properties": {"repobilityId": "955c8ab55572b20d", "scanner": "scanner-primary", "fingerprint": "bb4732da242cd2ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d321b34770a35175", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/ponder-drift-check.ts:19"}, "properties": {"repobilityId": "b8801317248a6e0d", "scanner": "scanner-primary", "fingerprint": "d321b34770a35175", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6c72c2db8e1e9c3b", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/worker/src/tasks/scan-token-transfers.ts:42"}, "properties": {"repobilityId": "28ecf0094298637c", "scanner": "scanner-primary", "fingerprint": "6c72c2db8e1e9c3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e79a05c09fb7f663", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-ens.ts:16"}, "properties": {"repobilityId": "f82bfd7a04d86f31", "scanner": "scanner-primary", "fingerprint": "e79a05c09fb7f663", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6eb5557c884b0edd", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-mint-clones.ts:16"}, "properties": {"repobilityId": "f6ed576a442ddc19", "scanner": "scanner-primary", "fingerprint": "6eb5557c884b0edd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a0fe40f2d73aad8b", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/probe-cid-availability.ts:39"}, "properties": {"repobilityId": "4cbd16de5463c28b", "scanner": "scanner-primary", "fingerprint": "a0fe40f2d73aad8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-56456663f31a0671", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/worker/src/tasks/probe-cid-availability.ts:65"}, "properties": {"repobilityId": "add2eb8a1d974729", "scanner": "scanner-primary", "fingerprint": "56456663f31a0671", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fe1c88c7dc34cb5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/worker/src/tasks/scan-fnd-shared.ts:62"}, "properties": {"repobilityId": "80f83df20aa7b389", "scanner": "scanner-primary", "fingerprint": "9fe1c88c7dc34cb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1704a8eeb3d5a201", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/refresh-artist.ts:28"}, "properties": {"repobilityId": "126243b2f1b21728", "scanner": "scanner-primary", "fingerprint": "1704a8eeb3d5a201", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7faa3c8bbcfe7534", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/worker/src/tasks/refresh-artist.ts:102"}, "properties": {"repobilityId": "05ed6e602fb9a653", "scanner": "scanner-primary", "fingerprint": "7faa3c8bbcfe7534", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b2f97ffb6355c93", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/worker/src/tasks/scan-1155-stats.ts:80"}, "properties": {"repobilityId": "d6122af0b1c7d0ac", "scanner": "scanner-primary", "fingerprint": "1b2f97ffb6355c93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bacf4a2b413466be", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-contract-identity.ts:34"}, "properties": {"repobilityId": "6ee3f4f24964aedd", "scanner": "scanner-primary", "fingerprint": "bacf4a2b413466be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a7155bd95400e4d", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-tl-clones.ts:18"}, "properties": {"repobilityId": "031e31717fb3a226", "scanner": "scanner-primary", "fingerprint": "6a7155bd95400e4d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-72cba40bc9f00b36", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/warm-metadata.ts:23"}, "properties": {"repobilityId": "eaf14bf8f98192ac", "scanner": "scanner-primary", "fingerprint": "72cba40bc9f00b36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c810c4f9a365eca9", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/worker/src/tasks/warm-metadata.ts:33"}, "properties": {"repobilityId": "feba5d3dce876e04", "scanner": "scanner-primary", "fingerprint": "c810c4f9a365eca9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b64d5dd9c3df040", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/worker/src/tasks/scan-pnd-auction-tokens.ts:39"}, "properties": {"repobilityId": "bf717f529961ba05", "scanner": "scanner-primary", "fingerprint": "8b64d5dd9c3df040", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9bb5b892f4a09ff1", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/worker/src/scanners/manifold.ts:131"}, "properties": {"repobilityId": "a6af02654def2849", "scanner": "scanner-primary", "fingerprint": "9bb5b892f4a09ff1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea8f5ef35d9fad6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/worker/src/_imported-from-warmer/index.ts:152"}, "properties": {"repobilityId": "7327c0fb37dddcb3", "scanner": "scanner-primary", "fingerprint": "ea8f5ef35d9fad6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-255ee3fa89fc2d46", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/worker/src/_imported-from-warmer/foundation-scan.ts:296"}, "properties": {"repobilityId": "825fe80eb89040c1", "scanner": "scanner-primary", "fingerprint": "255ee3fa89fc2d46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2077e9fd99c756b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/worker/src/_imported-from-warmer/manifold-discovery.ts:270"}, "properties": {"repobilityId": "bec12203e3254fda", "scanner": "scanner-primary", "fingerprint": "2077e9fd99c756b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78a210b01949d840", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/components/AddressZorb.tsx:9"}, "properties": {"repobilityId": "ac6792969bdec104", "scanner": "scanner-primary", "fingerprint": "78a210b01949d840", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a72f1a71063c2bc", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web/src/components/Providers.tsx:66"}, "properties": {"repobilityId": "2b8cf0ba1d1f60ad", "scanner": "scanner-primary", "fingerprint": "7a72f1a71063c2bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d82dbfc169ecbf9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/components/token/TokenMedia.tsx:57"}, "properties": {"repobilityId": "93dcfce51054188b", "scanner": "scanner-primary", "fingerprint": "d82dbfc169ecbf9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64a775934d6e7d80", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web/src/components/listings/BulkDelistPanel.tsx:17"}, "properties": {"repobilityId": "a3842001102b313c", "scanner": "scanner-primary", "fingerprint": "64a775934d6e7d80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72ac5fe0246b2242", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/components/listings/SovereignBulkPanel.tsx:780"}, "properties": {"repobilityId": "7f2d84076809bfee", "scanner": "scanner-primary", "fingerprint": "72ac5fe0246b2242", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eccf6729a4ddf960", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/listings/SovereignBulkPanel.tsx:645"}, "properties": {"repobilityId": "8bfda8b7af3eb2c5", "scanner": "scanner-primary", "fingerprint": "eccf6729a4ddf960", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-78a1618397764186", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/artist/ArtistGallery.tsx:40"}, "properties": {"repobilityId": "becbde20dfffdd67", "scanner": "scanner-primary", "fingerprint": "78a1618397764186", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4af8b2fc83cfc493", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/components/catalog/useCatalogWrite.ts:18"}, "properties": {"repobilityId": "de9d11a52a36811f", "scanner": "scanner-primary", "fingerprint": "4af8b2fc83cfc493", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4f6ea3b9011a33b", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web/src/components/catalog/AddEntryForm.tsx:159"}, "properties": {"repobilityId": "b5486c06d1be99ca", "scanner": "scanner-primary", "fingerprint": "d4f6ea3b9011a33b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c1c7655a18a60c7", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web/src/components/catalog/AddEntrySection.tsx:42"}, "properties": {"repobilityId": "1d1b1c884f657c8b", "scanner": "scanner-primary", "fingerprint": "2c1c7655a18a60c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3a99b8dfc8375d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/components/catalog/ImportPlanner.tsx:127"}, "properties": {"repobilityId": "bbb26a618358f65d", "scanner": "scanner-primary", "fingerprint": "c3a99b8dfc8375d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4e84bf4b93f32af", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/components/catalog/useCatalogMulticall.ts:143"}, "properties": {"repobilityId": "aaa313468cf59bb9", "scanner": "scanner-primary", "fingerprint": "c4e84bf4b93f32af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79e96c899a18d785", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/components/auction/AuctionPanel.tsx:36"}, "properties": {"repobilityId": "b14e570fcc5cc321", "scanner": "scanner-primary", "fingerprint": "79e96c899a18d785", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ffba26b24ce3c39", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/web/src/components/home/HomeSquare.tsx:109"}, "properties": {"repobilityId": "989395702645aaf3", "scanner": "scanner-primary", "fingerprint": "0ffba26b24ce3c39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f2033f70011a3b1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/components/home/LazyAuctionCard.tsx:104"}, "properties": {"repobilityId": "3108e350b57bb709", "scanner": "scanner-primary", "fingerprint": "8f2033f70011a3b1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-52bcfd830959b6b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/components/home/ActiveAuctionsStrip.tsx:5"}, "properties": {"repobilityId": "88675a9d5b91e7ce", "scanner": "scanner-primary", "fingerprint": "52bcfd830959b6b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffd1cc0ecb8fa1b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/components/home/v2/ActivityFeed.tsx:34"}, "properties": {"repobilityId": "c10c01db8bfffa4f", "scanner": "scanner-primary", "fingerprint": "ffd1cc0ecb8fa1b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a878a27dad9cbeec", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/components/home/v2/ActivityFeedClient.tsx:119"}, "properties": {"repobilityId": "ede95befd01109db", "scanner": "scanner-primary", "fingerprint": "a878a27dad9cbeec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f37e151c4bec52f", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web/src/components/migrate/MigratePanel.tsx:51"}, "properties": {"repobilityId": "46ef74be29257285", "scanner": "scanner-primary", "fingerprint": "7f37e151c4bec52f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a9fce8d65f7c468", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/components/tx/tx-ui.tsx:17"}, "properties": {"repobilityId": "f16566368c03b65a", "scanner": "scanner-primary", "fingerprint": "9a9fce8d65f7c468", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5bfb6dc25675f92", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/app/delist/DelistClient.tsx:44"}, "properties": {"repobilityId": "ce25f5c5adff8859", "scanner": "scanner-primary", "fingerprint": "a5bfb6dc25675f92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38af83980ffb3ed2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/app/api/preserve/writeback/route.ts:127"}, "properties": {"repobilityId": "234b6e9cb29b1761", "scanner": "scanner-primary", "fingerprint": "38af83980ffb3ed2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f586fe6d124200f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/app/api/activity/route.ts:37"}, "properties": {"repobilityId": "8a4732b57ab5fb07", "scanner": "scanner-primary", "fingerprint": "f586fe6d124200f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5864131cd5ac2076", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/app/api/meta/[contract]/[tokenId]/route.ts:29"}, "properties": {"repobilityId": "e25d2f903471eea7", "scanner": "scanner-primary", "fingerprint": "5864131cd5ac2076", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ccc0a57a7554f82", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web/src/app/api/rpc/route.ts:44"}, "properties": {"repobilityId": "7cd1e4bad3e22bc9", "scanner": "scanner-primary", "fingerprint": "1ccc0a57a7554f82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b6b12238a9ce1dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/app/api/revalidate/route.ts:112"}, "properties": {"repobilityId": "db954455de4baeb7", "scanner": "scanner-primary", "fingerprint": "0b6b12238a9ce1dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd0690d408ea993b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/app/api/revalidate/route.ts:114"}, "properties": {"repobilityId": "463ea37549af1327", "scanner": "scanner-primary", "fingerprint": "dd0690d408ea993b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5852a09c1f034558", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web/src/app/artist/[address]/page.tsx:70"}, "properties": {"repobilityId": "02cf91d1e8b35919", "scanner": "scanner-primary", "fingerprint": "5852a09c1f034558", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0d4a6180889ffd7", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web/src/app/log/page.tsx:42"}, "properties": {"repobilityId": "5a8d29dfb8446c6c", "scanner": "scanner-primary", "fingerprint": "e0d4a6180889ffd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7faf21f2aefb917", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/app/[handle]/[tokenId]/page.tsx:96"}, "properties": {"repobilityId": "f57e02fcbbf8e5a4", "scanner": "scanner-primary", "fingerprint": "d7faf21f2aefb917", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9eb24a41cfe93a80", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web/src/app/sites/page.tsx:9"}, "properties": {"repobilityId": "48e4eb91ab3a90f8", "scanner": "scanner-primary", "fingerprint": "9eb24a41cfe93a80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29fab3aa9b21f4a2", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/reads.ts:18"}, "properties": {"repobilityId": "7534bef10d01e75e", "scanner": "scanner-primary", "fingerprint": "29fab3aa9b21f4a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8fdf96575c88b73e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/catalog.ts:141"}, "properties": {"repobilityId": "e3842afbde72d065", "scanner": "scanner-primary", "fingerprint": "8fdf96575c88b73e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ef315e2963f6903", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/auctions.ts:37"}, "properties": {"repobilityId": "9c910104214d90f0", "scanner": "scanner-primary", "fingerprint": "1ef315e2963f6903", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f1d9e8287b29ee99", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/web/src/lib/auctions.ts:686"}, "properties": {"repobilityId": "9b290117831043df", "scanner": "scanner-primary", "fingerprint": "f1d9e8287b29ee99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d54d62bb27fd8c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/rpc-log.ts:65"}, "properties": {"repobilityId": "8a18f3441ca4e12e", "scanner": "scanner-primary", "fingerprint": "6d54d62bb27fd8c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28b1f9f2b20e2a16", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/indexer-queries.ts:106"}, "properties": {"repobilityId": "c2b5c7149a4069de", "scanner": "scanner-primary", "fingerprint": "28b1f9f2b20e2a16", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e5e6dcf5396ccd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/indexer-queries.ts:41"}, "properties": {"repobilityId": "d3c5428e03b8df45", "scanner": "scanner-primary", "fingerprint": "1e5e6dcf5396ccd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8603816e069a1b5", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/dependency-check.ts:191"}, "properties": {"repobilityId": "e0ec82bc3c38dabb", "scanner": "scanner-primary", "fingerprint": "d8603816e069a1b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-17803ab22b927b94", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/lib/dependency-check.ts:386"}, "properties": {"repobilityId": "503fc424b4248927", "scanner": "scanner-primary", "fingerprint": "17803ab22b927b94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a46331265d60fd68", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/onchain-discovery.ts:281"}, "properties": {"repobilityId": "2ca26e5eec19812e", "scanner": "scanner-primary", "fingerprint": "a46331265d60fd68", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-410e0f67a12be0fb", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web/src/lib/onchain-discovery.ts:171"}, "properties": {"repobilityId": "623e9e77fc1c7b5c", "scanner": "scanner-primary", "fingerprint": "410e0f67a12be0fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-568b0a0cabd034ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/artist-cache.ts:44"}, "properties": {"repobilityId": "df3f229ed95492a6", "scanner": "scanner-primary", "fingerprint": "568b0a0cabd034ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7edda31bd0907f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/lib/wagmi.ts:14"}, "properties": {"repobilityId": "2b3e69479ffafb99", "scanner": "scanner-primary", "fingerprint": "d7edda31bd0907f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e092c41fcb833871", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/alchemy-rpc.ts:24"}, "properties": {"repobilityId": "4cc809b4f75df64b", "scanner": "scanner-primary", "fingerprint": "e092c41fcb833871", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27dfaa3774df957b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/seller-listings.ts:87"}, "properties": {"repobilityId": "a2da980c4bb3bed7", "scanner": "scanner-primary", "fingerprint": "27dfaa3774df957b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6fea9902e29933d", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/last-sale.ts:17"}, "properties": {"repobilityId": "555b6af0f6159bce", "scanner": "scanner-primary", "fingerprint": "c6fea9902e29933d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e2a2ecc1504bff3e", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/sovereign-house.ts:5"}, "properties": {"repobilityId": "ec458253265647fe", "scanner": "scanner-primary", "fingerprint": "e2a2ecc1504bff3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d8597d710e231eee", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web/src/lib/pg-cache.ts:81"}, "properties": {"repobilityId": "99a09ec430c104d2", "scanner": "scanner-primary", "fingerprint": "d8597d710e231eee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6b82f9b63b9a516", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/artist-queries.ts:34"}, "properties": {"repobilityId": "b0e024c39a7f78d3", "scanner": "scanner-primary", "fingerprint": "e6b82f9b63b9a516", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a4ab71d29b85f2b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/metadata-host.ts:91"}, "properties": {"repobilityId": "05cad29ac941e79c", "scanner": "scanner-primary", "fingerprint": "2a4ab71d29b85f2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd121a0a44aa6b11", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/lib/db.ts:62"}, "properties": {"repobilityId": "57ea0b730d292c9b", "scanner": "scanner-primary", "fingerprint": "cd121a0a44aa6b11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0626d62cb8d2b600", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/useSequentialCancel.ts:277"}, "properties": {"repobilityId": "abc71c2d584f1c33", "scanner": "scanner-primary", "fingerprint": "0626d62cb8d2b600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37d70757a5ef6157", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/transient.ts:10"}, "properties": {"repobilityId": "8eb37615161fcc9c", "scanner": "scanner-primary", "fingerprint": "37d70757a5ef6157", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dce4a84e206712ad", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/sovereign.ts:8"}, "properties": {"repobilityId": "ebb33ac21b460edc", "scanner": "scanner-primary", "fingerprint": "dce4a84e206712ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-acbcbc8545607e7d", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/superrareV2.ts:11"}, "properties": {"repobilityId": "8647363863921745", "scanner": "scanner-primary", "fingerprint": "acbcbc8545607e7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b3b8bd0c5daba6c0", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/mint.ts:8"}, "properties": {"repobilityId": "8f9db8f142b37427", "scanner": "scanner-primary", "fingerprint": "b3b8bd0c5daba6c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0dbea458d23e1e3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/platforms/cancel-calls.test.ts:30"}, "properties": {"repobilityId": "863cf9958805847b", "scanner": "scanner-primary", "fingerprint": "0dbea458d23e1e3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78bfd89c7c1b714f", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/platforms/foundation.ts:48"}, "properties": {"repobilityId": "2b54823784b8a2f0", "scanner": "scanner-primary", "fingerprint": "78bfd89c7c1b714f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b1911e9756f80584", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/web/src/lib/platforms/foundation.ts:16"}, "properties": {"repobilityId": "58bc9e04d2f2dea8", "scanner": "scanner-primary", "fingerprint": "b1911e9756f80584", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d07bc648002964e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/pinning/4everland.ts:139"}, "properties": {"repobilityId": "bd4fa66f83b1e0fa", "scanner": "scanner-primary", "fingerprint": "d07bc648002964e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc1dc71301be3e19", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/pinning/pinata.ts:98"}, "properties": {"repobilityId": "13e831c4eed34e57", "scanner": "scanner-primary", "fingerprint": "dc1dc71301be3e19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c842232103e7369d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/lib/import-sources/brinkman-map.ts:130"}, "properties": {"repobilityId": "307a328375a3007c", "scanner": "scanner-primary", "fingerprint": "c842232103e7369d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0be652fe2766d998", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/lib/import-sources/brinkman.ts:30"}, "properties": {"repobilityId": "d1e6be24f8f125f8", "scanner": "scanner-primary", "fingerprint": "0be652fe2766d998", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-94b0a6437b10f35d", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web/src/lib/import-sources/normalize.ts:168"}, "properties": {"repobilityId": "a40caa0c4a0cd072", "scanner": "scanner-primary", "fingerprint": "94b0a6437b10f35d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad36d25db4400a6d", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in apps/web/src/lib/import-sources/pnd-indexed.ts:29"}, "properties": {"repobilityId": "d2c0a231093c68c0", "scanner": "scanner-primary", "fingerprint": "ad36d25db4400a6d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-549faa412a771f96", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/lib/import-sources/pnd-indexed.ts:78"}, "properties": {"repobilityId": "143b1bb785ff19c1", "scanner": "scanner-primary", "fingerprint": "549faa412a771f96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fe4cf2ba7730074", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/indexer/ponder.schema.ts:318"}, "properties": {"repobilityId": "f6fb285461814ea5", "scanner": "scanner-primary", "fingerprint": "8fe4cf2ba7730074", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-398096adba2eefe9", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/indexer/ponder.config.ts:101"}, "properties": {"repobilityId": "25ad00bc99218067", "scanner": "scanner-primary", "fingerprint": "398096adba2eefe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e725d172f46cca1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/indexer/abis/Catalog.ts:1"}, "properties": {"repobilityId": "bcdcc8f1de8f520d", "scanner": "scanner-primary", "fingerprint": "e725d172f46cca1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-154c3b5c9a4cc785", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/indexer/abis/TransientAuctionHouse.ts:117"}, "properties": {"repobilityId": "16ce0bb8ee3629cc", "scanner": "scanner-primary", "fingerprint": "154c3b5c9a4cc785", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4212a9d30e2e1eb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/indexer/src/index.ts:78"}, "properties": {"repobilityId": "96cdf5e457bb9b8c", "scanner": "scanner-primary", "fingerprint": "a4212a9d30e2e1eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d52a52ef237db64", "level": "note", "message": {"text": "Legacy-named symbol `ponder_v1` in scripts/probe-cid-dryrun.mjs:53"}, "properties": {"repobilityId": "ac3cd68bd6bad483", "scanner": "scanner-primary", "fingerprint": "2d52a52ef237db64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f0e54edc23ca881a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/probe-cid-dryrun.mjs:257"}, "properties": {"repobilityId": "477c048aa9dbbbde", "scanner": "scanner-primary", "fingerprint": "f0e54edc23ca881a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c219a111d0955181", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fork-fast-forward.mjs:45"}, "properties": {"repobilityId": "deae7a0b71859a38", "scanner": "scanner-primary", "fingerprint": "c219a111d0955181", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5325a1c6bdadca72", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/scan-fnd-discovery-seeds.mjs:5"}, "properties": {"repobilityId": "757cc379f3b6ac62", "scanner": "scanner-primary", "fingerprint": "5325a1c6bdadca72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07a443a17ab3c2e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/srv2-fork-test.mjs:152"}, "properties": {"repobilityId": "47521ccd1b06b6d8", "scanner": "scanner-primary", "fingerprint": "07a443a17ab3c2e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae417069fa27ae41", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/srv2-fork-test.mjs:44"}, "properties": {"repobilityId": "8ead5a4aab0a7c64", "scanner": "scanner-primary", "fingerprint": "ae417069fa27ae41", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-898dae431908c30e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-pinata-pin.mjs:72"}, "properties": {"repobilityId": "248905823cc94f65", "scanner": "scanner-primary", "fingerprint": "898dae431908c30e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1810cca6f7422fe2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/tl-fork-test.mjs:266"}, "properties": {"repobilityId": "b4fc6240189c0fc3", "scanner": "scanner-primary", "fingerprint": "1810cca6f7422fe2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58fb487f0fe2ddab", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/tl-fork-test.mjs:48"}, "properties": {"repobilityId": "07b2b951213b9650", "scanner": "scanner-primary", "fingerprint": "58fb487f0fe2ddab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-604ac637d6f4f393", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/scan-fnd-active-auctions.mjs:6"}, "properties": {"repobilityId": "3efda66a8d6e54e2", "scanner": "scanner-primary", "fingerprint": "604ac637d6f4f393", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-840e75f404dfcc3e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/srv2-spaces-test.mjs:15"}, "properties": {"repobilityId": "d0b59d83eb4be897", "scanner": "scanner-primary", "fingerprint": "840e75f404dfcc3e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-67ac0311156e8c25", "level": "none", "message": {"text": "Commented-code block (6 lines) in templates/artist-page/components/BidForm.tsx:41"}, "properties": {"repobilityId": "8563829998d247ec", "scanner": "scanner-primary", "fingerprint": "67ac0311156e8c25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ba750340a226672", "level": "none", "message": {"text": "Commented-code block (7 lines) in templates/artist-page/lib/config.ts:25"}, "properties": {"repobilityId": "cb4c09e26a4cdcd0", "scanner": "scanner-primary", "fingerprint": "9ba750340a226672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68c6ac6e0f0ed6ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in templates/artist-page/lib/rpc.ts:79"}, "properties": {"repobilityId": "e58c5c7cc6aa2022", "scanner": "scanner-primary", "fingerprint": "68c6ac6e0f0ed6ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-932f4332b417a474", "level": "none", "message": {"text": "Commented-code block (5 lines) in templates/artist-page/lib/metadata.ts:29"}, "properties": {"repobilityId": "adc8196aa8776943", "scanner": "scanner-primary", "fingerprint": "932f4332b417a474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b87565edbc8f23f5", "level": "none", "message": {"text": "Commented-code block (7 lines) in templates/artist-page/lib/token.ts:94"}, "properties": {"repobilityId": "b5949b0b5287166a", "scanner": "scanner-primary", "fingerprint": "b87565edbc8f23f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2318d9395432751a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/addresses/src/index.ts:49"}, "properties": {"repobilityId": "a6e4c4ef28147b8d", "scanner": "scanner-primary", "fingerprint": "2318d9395432751a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-246527d1e74ad917", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/ipfs.ts:19"}, "properties": {"repobilityId": "b7ede52ad5cb6939", "scanner": "scanner-primary", "fingerprint": "246527d1e74ad917", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee59809f904307c1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/shared/src/ipfs.ts:300"}, "properties": {"repobilityId": "3018968363688f98", "scanner": "scanner-primary", "fingerprint": "ee59809f904307c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-13bd77153988e769", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/abi/src/transientAuctionHouse.ts:117"}, "properties": {"repobilityId": "e8ed2c11141a33fc", "scanner": "scanner-primary", "fingerprint": "13bd77153988e769", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c06b7927acc570f5", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/abi/src/manifoldCreatorCore.ts:1"}, "properties": {"repobilityId": "fc69726b416a4b5d", "scanner": "scanner-primary", "fingerprint": "c06b7927acc570f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70c2bf1c72333b81", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/token-metadata/src/index.ts:30"}, "properties": {"repobilityId": "06ca4df367709843", "scanner": "scanner-primary", "fingerprint": "70c2bf1c72333b81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca45982217d63a14", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/token-metadata/src/index.ts:193"}, "properties": {"repobilityId": "5a8e063f3e7f27ea", "scanner": "scanner-primary", "fingerprint": "ca45982217d63a14", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-99b55d14ec628940", "level": "note", "message": {"text": "37 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "6777af358f28283a", "scanner": "scanner-primary", "fingerprint": "99b55d14ec628940", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-bbda9b443e627ee1", "level": "error", "message": {"text": "Dangling fetch: POST https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getNFTMetadataBatch (apps/worker/src/scanners/manifold.ts:843)"}, "properties": {"repobilityId": "a9646f231350f8dc", "scanner": "scanner-primary", "fingerprint": "bbda9b443e627ee1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c525a7881b77be0", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${APP_PORT}/editions/new (apps/web/tests/e2e/fixtures/globalSetup.ts:145)"}, "properties": {"repobilityId": "a5d5b41656876db9", "scanner": "scanner-primary", "fingerprint": "9c525a7881b77be0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-05dc456b54052092", "level": "error", "message": {"text": "Dangling fetch: GET /api/muri/eligible/${address.toLowerCase()} (apps/web/src/components/muri/MuriMintFlow.tsx:48)"}, "properties": {"repobilityId": "cab909846204d15a", "scanner": "scanner-primary", "fingerprint": "05dc456b54052092", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9dffc336e0de76d0", "level": "error", "message": {"text": "Dangling fetch: POST /api/refresh-token/${contract}/${tokenId} (apps/web/src/components/token/RefreshMetadataButton.tsx:50)"}, "properties": {"repobilityId": "2a39e89e3f8a59ac", "scanner": "scanner-primary", "fingerprint": "9dffc336e0de76d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d274842e29f28f9f", "level": "error", "message": {"text": "Dangling fetch: POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()} (apps/web/src/components/listings/BulkDelistPanel.tsx:131)"}, "properties": {"repobilityId": "b6f40bb96c152c29", "scanner": "scanner-primary", "fingerprint": "d274842e29f28f9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-53a3e59394c6f195", "level": "error", "message": {"text": "Dangling fetch: GET /api/meta/${s.tokenContract}/${s.tokenId.toString()} (apps/web/src/components/listings/SovereignBulkPanel.tsx:790)"}, "properties": {"repobilityId": "c5672680c94b804f", "scanner": "scanner-primary", "fingerprint": "53a3e59394c6f195", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-70dd70af09fdce01", "level": "error", "message": {"text": "Dangling fetch: GET /api/meta/${c.toLowerCase()}/${tokenId} (apps/web/src/components/catalog/useTokenInfo.ts:43)"}, "properties": {"repobilityId": "c52e6c4edd09c262", "scanner": "scanner-primary", "fingerprint": "70dd70af09fdce01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-080c62353160f63f", "level": "error", "message": {"text": "Dangling fetch: POST /api/catalog/${connected.toLowerCase()}/revalidate (apps/web/src/components/catalog/useCatalogWrite.ts:84)"}, "properties": {"repobilityId": "f9b759ffde851d8b", "scanner": "scanner-primary", "fingerprint": "080c62353160f63f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0515799155aae90f", "level": "error", "message": {"text": "Dangling fetch: GET /api/contract-info/${lower} (apps/web/src/components/catalog/useContractInfo.ts:51)"}, "properties": {"repobilityId": "2aae916f7e2d3b26", "scanner": "scanner-primary", "fingerprint": "0515799155aae90f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a475e558924c1cb0", "level": "error", "message": {"text": "Dangling fetch: POST /api/refresh-artist/${artistAddress} (apps/web/src/components/catalog/RefreshButton.tsx:50)"}, "properties": {"repobilityId": "b0aeff164c17555f", "scanner": "scanner-primary", "fingerprint": "a475e558924c1cb0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7655e5eb92d72d67", "level": "error", "message": {"text": "Dangling fetch: POST /api/catalog/${connected.toLowerCase()}/revalidate (apps/web/src/components/catalog/useCatalogMulticall.ts:150)"}, "properties": {"repobilityId": "6a1a2482bb1ff0f8", "scanner": "scanner-primary", "fingerprint": "7655e5eb92d72d67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2435e8cf112eb535", "level": "error", "message": {"text": "Dangling fetch: GET /api/meta/${contract}/${tokenId} (apps/web/src/components/home/LazyAuctionCard.tsx:104)"}, "properties": {"repobilityId": "c349a4c890a4c093", "scanner": "scanner-primary", "fingerprint": "2435e8cf112eb535", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2622e55845705ccd", "level": "error", "message": {"text": "Dangling fetch: GET /api/activity?${params} (apps/web/src/components/home/v2/ActivityFeedClient.tsx:66)"}, "properties": {"repobilityId": "421932fc9feb80b5", "scanner": "scanner-primary", "fingerprint": "2622e55845705ccd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eea4c83bcf750961", "level": "error", "message": {"text": "Dangling fetch: GET /api/artist/${address}/ens-url (apps/web/src/components/studio/StudioActionQueue.tsx:58)"}, "properties": {"repobilityId": "2690e0a9fe763232", "scanner": "scanner-primary", "fingerprint": "eea4c83bcf750961", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf230560b0a679e3", "level": "error", "message": {"text": "Dangling fetch: POST /api/seller-listings/revalidate?seller=${artistAddress.toLowerCase()} (apps/web/src/components/migrate/MigratePanel.tsx:439)"}, "properties": {"repobilityId": "e4853644b1a67608", "scanner": "scanner-primary", "fingerprint": "cf230560b0a679e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8fe8c56f4582925", "level": "error", "message": {"text": "Dangling fetch: GET /api/artist/${artistAddress}/ens-url (apps/web/src/components/sites/SitePanel.tsx:25)"}, "properties": {"repobilityId": "40652e0f871eac40", "scanner": "scanner-primary", "fingerprint": "c8fe8c56f4582925", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-139686bbf742e87f", "level": "error", "message": {"text": "Dangling fetch: GET /api/artist/${targetAddress}/preserve-tokens (apps/web/src/app/preserve/page.tsx:140)"}, "properties": {"repobilityId": "123464a77be9049f", "scanner": "scanner-primary", "fingerprint": "139686bbf742e87f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38f7ae5734bde0e2", "level": "error", "message": {"text": "Dangling fetch: POST /api/preserve/writeback (apps/web/src/app/preserve/page.tsx:434)"}, "properties": {"repobilityId": "375bbc532eb5c60f", "scanner": "scanner-primary", "fingerprint": "38f7ae5734bde0e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dcb55cd17e6b14b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/artist/${connected}/tokens?page=0&pageSize=24 (apps/web/src/app/auction/new/AuctionNewClient.tsx:234)"}, "properties": {"repobilityId": "5c7975fab68e98a3", "scanner": "scanner-primary", "fingerprint": "dcb55cd17e6b14b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d84a2402c2ae4471", "level": "error", "message": {"text": "Dangling fetch: GET /api/seller-listings/${sellerAddress.toLowerCase()} (apps/web/src/lib/seller-listings.ts:87)"}, "properties": {"repobilityId": "b8281adea0186000", "scanner": "scanner-primary", "fingerprint": "d84a2402c2ae4471", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7e11e403db987169", "level": "error", "message": {"text": "Dangling fetch: GET /api/meta/${l.nftContract}/${l.tokenId} (apps/web/src/lib/seller-listings.ts:181)"}, "properties": {"repobilityId": "a080f1ea722d0d42", "scanner": "scanner-primary", "fingerprint": "7e11e403db987169", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ca62e618073cb789", "level": "error", "message": {"text": "Dangling fetch: GET https://enstate.rs/a/${lowerAddress} (apps/web/src/lib/artist-queries.ts:334)"}, "properties": {"repobilityId": "b3c72789f06a8449", "scanner": "scanner-primary", "fingerprint": "ca62e618073cb789", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-41a7647318633769", "level": "error", "message": {"text": "Dangling fetch: GET https://api.ensideas.com/ens/resolve/${lowerAddress} (apps/web/src/lib/artist-queries.ts:348)"}, "properties": {"repobilityId": "721760ab3bab919e", "scanner": "scanner-primary", "fingerprint": "41a7647318633769", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-875c7c06d634ae19", "level": "error", "message": {"text": "Dangling fetch: GET https://eth-mainnet.g.alchemy.com/nft/v3/${key}/getContractMetadata?contractAddress=${contract} (apps/web/src/lib/import-sources/pnd-indexed.ts:211)"}, "properties": {"repobilityId": "937d2f240f0e1ce2", "scanner": "scanner-primary", "fingerprint": "875c7c06d634ae19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0996f660303536df", "level": "error", "message": {"text": "Dangling fetch: POST /api/refresh-token (templates/artist-page/components/RefreshMetadataButton.tsx:44)"}, "properties": {"repobilityId": "ab72b3d4f946e3c6", "scanner": "scanner-primary", "fingerprint": "0996f660303536df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "80e067f095b3c393", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-316f498f9851e2fa", "level": "note", "message": {"text": "Unused endpoint: USE /graphql"}, "properties": {"repobilityId": "c1092788af55ecc0", "scanner": "scanner-primary", "fingerprint": "316f498f9851e2fa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}