{"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: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#8\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#8\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#8\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 8\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#9\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#9\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-944f71098dfdd12e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/"}, "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: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined test ci gap after feedback: YEONGJUCHO2/MSDS-App"}, "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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#64\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#64\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#64\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 64\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 54\nNode types: {'pr_file': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'ci_summary':"}, "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: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined schema ui api mismatch: YEONGJUCHO2/MSDS-App"}, "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#6\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#6\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#6\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 6\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_co"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined docs only runtime fix: YEONGJUCHO2/MSDS-App"}, "fullDescription": {"text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#46\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 46\nGraph consistency label: needs_more_evidence\nNodes: 20\nEdges: 44\nNode types: {'pr_file': 11, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'t"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#8\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#8\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-83bf5953ddba6ae7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJU"}, "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: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: YEONGJUCHO2/MSDS-App"}, "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#23\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#23\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#23\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 23\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'cha"}, "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: YEONGJUCHO2/MSDS-App", "shortDescription": {"text": "Foundry mined mock as real or placeholder: YEONGJUCHO2/MSDS-App"}, "fullDescription": {"text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#7\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#7\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#7\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 7\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nE"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-1ce9811253491db9", "name": "Stray `console.log` in TS/JS \u2014 scripts/refreshE2eAuthState.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refreshE2eAuthState.ts:56"}, "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-a554b62b04507530", "name": "Stray `console.log` in TS/JS \u2014 scripts/buildClaudeDesignPacket.ts:191", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/buildClaudeDesignPacket.ts:191"}, "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-975e494c0f608e05", "name": "Stray `console.log` in TS/JS \u2014 scripts/captureE2eAuthState.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/captureE2eAuthState.ts:39"}, "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-8369898aede2e375", "name": "Stray `console.log` in TS/JS \u2014 server/index.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/index.ts:10"}, "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-7d554e9328356575", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/benchmarkGeminiExtraction.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/benchmarkGeminiExtraction.ts:81"}, "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-7616a0568f17875c", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/seed.ts:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/seed.ts:9"}, "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-8b7ea40d75325ee6", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/backfillMvpReview.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/backfillMvpReview.ts:27"}, "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-484b9765cec2ca13", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/preflightChemicalApiCache.ts:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/preflightChemicalApiCache.ts:6"}, "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6bdac103b39581e", "name": "Very large file: tests/services/apiRoutes.test.ts (2018 lines)", "shortDescription": {"text": "Very large file: tests/services/apiRoutes.test.ts (2018 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-9dd8196049184ba9", "name": "Very large file: tests/services/regulatoryMatcher.test.ts (1855 lines)", "shortDescription": {"text": "Very large file: tests/services/regulatoryMatcher.test.ts (1855 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-78a78f4ef76e691a", "name": "Very large file: src/pages/ReviewPage.tsx (1187 lines)", "shortDescription": {"text": "Very large file: src/pages/ReviewPage.tsx (1187 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 63 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "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 license. 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-64e91ee4e06e9d1d", "name": "Agent authority lacks a verifier contract: phases/05-regulatory-watch-pipeline/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: phases/05-regulatory-watch-pipeline/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c00dec6fdd9d9a63", "name": "Agent authority lacks a verifier contract: phases/06-release-defect-hardening/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: phases/06-release-defect-hardening/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-909eb64265cce1c7", "name": "Agent authority lacks a verifier contract: .codex/hooks.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/hooks.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a84d9ae6358b91a4", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/execute.py:111", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/execute.py:111"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-76a5a1e9be79cc6a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/middleware/auth.ts:246", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/middleware/auth.ts:246"}, "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-2d6ffa20a9f1093b", "name": "24 env vars used in code but missing from .env.example", "shortDescription": {"text": "24 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `E2E_AUTH_BROWSER_CHANNEL`, `E2E_AUTH_ORIGIN`, `E2E_AUTH_STATE`, `E2E_BASE_URL`, `E2E_QA_USER_EMAIL`, `E2E_VERCEL_BYPASS_SECRET`, `MSDS_AUTO_RECHECK_GLOBAL_MAX`, `MSDS_AUTO_RECHECK_OWNER_USER_ID` + 16 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-e4156ebc0e13404d", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/usage/report (tests/services/usageRoutes.test.ts:40)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/usage/report (tests/services/usageRoutes.test.ts:40)"}, "fullDescription": {"text": "`tests/services/usageRoutes.test.ts:40` calls `GET http://127.0.0.1:${port}/api/usage/report` 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>/api/usage/report`\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-248a8d247b580597", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/health (tests/services/apiRoutes.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/health (tests/services/apiRoutes.test.ts:58)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:58` calls `GET http://127.0.0.1:${port}/api/health` 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>/api/health`\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-12364812992ae6f2", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/apiRoutes.test.ts:59)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/apiRoutes.test.ts:59)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:59` calls `GET http://127.0.0.1:${port}/api/documents` 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>/api/documents`\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-d9613fc0e2bd82dc", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/products/from-documents (tests/services/apiRoutes.test.ts:74)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/products/from-documents (tests/services/apiRoutes.test.ts:74)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:74` calls `POST http://127.0.0.1:${port}/api/products/from-documents` 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>/api/products/from-documents`\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-4de109e8bc5ea972", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/imports/regulatory-seeds (tests/services/apiRoutes.test.ts:93)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/imports/regulatory-seeds (tests/services/apiRoutes.test.ts:93)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:93` calls `POST http://127.0.0.1:${port}/api/imports/regulatory-seeds` 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>/api/imports/regulatory-seeds`\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-751d44249267aefc", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck (tests/services/apiRoutes.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck (tests/services/apiRoutes.test.ts:117)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:117` calls `GET http://127.0.0.1:${port}/api/watchlist/auto-recheck` 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>/api/watchlist/auto-recheck`\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-f0b4bb17ff807c65", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck (tests/services/apiRoutes.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck (tests/services/apiRoutes.test.ts:137)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:137` calls `GET http://127.0.0.1:${port}/api/watchlist/auto-recheck` 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>/api/watchlist/auto-recheck`\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-9ac024045244080a", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck?secret=test-cron-secret (tests/services/apiRoute", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck?secret=test-cron-secret (tests/services/apiRoutes.test.ts:153)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:153` calls `GET http://127.0.0.1:${port}/api/watchlist/auto-recheck?secret=test-cron-secret` 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>/api/watchlist/auto-recheck`\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-5e72f8fa77da34fd", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:172)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:172)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:172` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info` 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>/api/documents/doc-1/basic-info`\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-891545069fa74c96", "name": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:180)", "shortDescription": {"text": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:180)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:180` calls `PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info` 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>/api/documents/doc-1/basic-info`\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-29c6551df2f25926", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:212)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:212)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:212` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info` 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>/api/documents/doc-1/basic-info`\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-a94d772cf85a6a6b", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core (tests/services/apiRoutes.test.ts:234)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core (tests/services/apiRoutes.test.ts:234)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:234` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core` 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>/api/documents/doc-1/detail-core`\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-892a213dcb08c5b4", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core (tests/services/apiRoutes.test.ts:290)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core (tests/services/apiRoutes.test.ts:290)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:290` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core` 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>/api/documents/doc-1/detail-core`\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-acbdc52c491ae5fd", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/missing/detail-core (tests/services/apiRoutes.test.ts:291)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/missing/detail-core (tests/services/apiRoutes.test.ts:291)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:291` calls `GET http://127.0.0.1:${port}/api/documents/missing/detail-core` 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>/api/documents/missing/detail-core`\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-0a25f6788953f42c", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/file (tests/services/apiRoutes.test.ts:313)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/file (tests/services/apiRoutes.test.ts:313)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:313` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/file` 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>/api/documents/doc-1/file`\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-6bdbc29e446dfb26", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:333)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:333)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:333` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/components` 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>/api/documents/doc-1/components`\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-a57a1b57ecc76cd5", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:356)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:356)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:356` calls `DELETE http://127.0.0.1:${port}/api/documents/doc-delete` 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>/api/documents/doc-delete`\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-ba8e421919ab80e0", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-other (tests/services/apiRoutes.test.ts:392)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-other (tests/services/apiRoutes.test.ts:392)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:392` calls `DELETE http://127.0.0.1:${port}/api/documents/doc-other` 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>/api/documents/doc-other`\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-0f78cea4b81bb818", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:445)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:445)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:445` calls `DELETE http://127.0.0.1:${port}/api/documents/doc-delete` 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>/api/documents/doc-delete`\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-2cff810514042be6", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:480)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:480)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:480` calls `DELETE http://127.0.0.1:${port}/api/documents/doc-delete` 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>/api/documents/doc-delete`\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-5d8ead2b0a6535d0", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:501)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:501)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:501` calls `DELETE http://127.0.0.1:${port}/api/documents/doc-delete` 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>/api/documents/doc-delete`\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-a44bc17a94aea334", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-1 (tests/services/apiRoutes.test.ts:537)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-1 (tests/services/apiRoutes.test.ts:537)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:537` calls `DELETE http://127.0.0.1:${port}/api/documents/doc-1` 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>/api/documents/doc-1`\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-a0f733e6bd294b2c", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials (tests/services/apiRoutes.test.ts:569)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials (tests/services/apiRoutes.test.ts:569)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:569` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials` 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>/api/documents/doc-1/safety-materials`\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-6d454a64e49feaba", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx (tests/services/api", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx (tests/services/apiRoutes.test.ts:570)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:570` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx` 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>/api/documents/doc-1/safety-materials/warning-label/pptx`\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-e794002373dae913", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pdf (tests/services/apiR", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pdf (tests/services/apiRoutes.test.ts:571)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:571` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pdf` 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>/api/documents/doc-1/safety-materials/warning-label/pdf`\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-89540589d42051ec", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials (tests/services/apiRoutes.test.ts:604)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials (tests/services/apiRoutes.test.ts:604)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:604` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials` 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>/api/documents/doc-1/safety-materials`\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-d757f5826b97f57b", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx (tests/services/api", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx (tests/services/apiRoutes.test.ts:605)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:605` calls `GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx` 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>/api/documents/doc-1/safety-materials/warning-label/pptx`\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-07cd04427dcd24d8", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:630)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:630)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:630` calls `POST http://127.0.0.1:${port}/api/documents/doc-1/components` 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>/api/documents/doc-1/components`\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-3f130172ce89acf8", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:664)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:664)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:664` calls `POST http://127.0.0.1:${port}/api/documents/doc-1/replacement` 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>/api/documents/doc-1/replacement`\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-a8bc812e61286812", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:699)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:699)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:699` calls `POST http://127.0.0.1:${port}/api/documents/doc-1/replacement` 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>/api/documents/doc-1/replacement`\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-6f2154fb80817087", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:737)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:737)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:737` calls `POST http://127.0.0.1:${port}/api/documents/doc-1/replacement` 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>/api/documents/doc-1/replacement`\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-9aed1c3e3cbbf292", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:766)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:766)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:766` calls `POST http://127.0.0.1:${port}/api/documents/upload` 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>/api/documents/upload`\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-c114a93569eca516", "name": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:786)", "shortDescription": {"text": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:786)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:786` calls `PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info` 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>/api/documents/doc-1/basic-info`\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-0ec65711f45080e3", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/recheck (tests/services/apiRoutes.test.ts:804)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/recheck (tests/services/apiRoutes.test.ts:804)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:804` calls `POST http://127.0.0.1:${port}/api/documents/recheck` 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>/api/documents/recheck`\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-3f540bd3175736b4", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:822)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:822)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:822` calls `POST http://127.0.0.1:${port}/api/documents/doc-1/components` 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>/api/documents/doc-1/components`\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-0427817bf7fa0244", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/watchlist/recheck (tests/services/apiRoutes.test.ts:840)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/watchlist/recheck (tests/services/apiRoutes.test.ts:840)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:840` calls `POST http://127.0.0.1:${port}/api/watchlist/recheck` 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>/api/watchlist/recheck`\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-7e6ac09eb6ac63d7", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/products (tests/services/apiRoutes.test.ts:858)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/products (tests/services/apiRoutes.test.ts:858)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:858` calls `POST http://127.0.0.1:${port}/api/products` 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>/api/products`\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-fb9472b8739936c0", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:885)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:885)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:885` calls `POST http://127.0.0.1:${port}/api/documents/upload` 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>/api/documents/upload`\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-e49770fc22a65e3e", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:908)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:908)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:908` calls `POST http://127.0.0.1:${port}/api/documents/upload` 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>/api/documents/upload`\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-aed3a33a3f384efb", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:932)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:932)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:932` calls `POST http://127.0.0.1:${port}/api/documents/upload` 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>/api/documents/upload`\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-7dcc0ff7f80926bf", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:960)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:960)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:960` calls `POST http://127.0.0.1:${port}/api/documents/upload` 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>/api/documents/upload`\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-a91bf8fbb971c3bc", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-1 (tests/services/apiRoutes.test.ts:981)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-1 (tests/services/apiRoutes.test.ts:981)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:981` calls `DELETE http://127.0.0.1:${port}/api/documents/doc-1` 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>/api/documents/doc-1`\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-59c968311cefa471", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status (tests/services/apiRoutes.test.ts:1000)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status (tests/services/apiRoutes.test.ts:1000)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1000` calls `GET http://127.0.0.1:${port}/api/jobs/status` 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>/api/jobs/status`\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-5bfc21f20c4d9488", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status (tests/services/apiRoutes.test.ts:1001)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status (tests/services/apiRoutes.test.ts:1001)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1001` calls `GET http://127.0.0.1:${port}/api/jobs/status` 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>/api/jobs/status`\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-b36eae81df04b3d0", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-1,job-other (tests/services/apiRoutes.test.ts:10", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-1,job-other (tests/services/apiRoutes.test.ts:1018)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1018` calls `GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-1,job-other` 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>/api/jobs/status`\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-f3047eda61fdebdb", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-other (tests/services/apiRoutes.test.ts:1041)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-other (tests/services/apiRoutes.test.ts:1041)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1041` calls `GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-other` 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>/api/jobs/status`\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-84f8a504a97a8c22", "name": "Dangling fetch: GET http://127.0.0.1:${missingSchemaPort}/api/jobs/drain (tests/services/apiRoutes.test.ts:1060)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${missingSchemaPort}/api/jobs/drain (tests/services/apiRoutes.test.ts:1060)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1060` calls `GET http://127.0.0.1:${missingSchemaPort}/api/jobs/drain` 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>/api/jobs/drain`\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-7ffdf71cb75d4e7a", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1069)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1069)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1069` calls `GET http://127.0.0.1:${port}/api/jobs/drain` 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>/api/jobs/drain`\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-031c545193728f49", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1070)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1070)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1070` calls `GET http://127.0.0.1:${port}/api/jobs/drain` 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>/api/jobs/drain`\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-d9fcf0bc22eff6cc", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1073)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1073)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1073` calls `GET http://127.0.0.1:${port}/api/jobs/drain` 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>/api/jobs/drain`\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-9d5f3b0bac100b0b", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components/row-1/recheck (tests/services/apiRoutes.tes", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components/row-1/recheck (tests/services/apiRoutes.test.ts:1093)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1093` calls `POST http://127.0.0.1:${port}/api/documents/doc-1/components/row-1/recheck` 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>/api/documents/doc-1/components/row-1/recheck`\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-e6bba8dea4fbc791", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/regenerate (tests/services/apiRoutes.", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/regenerate (tests/services/apiRoutes.test.ts:1119)"}, "fullDescription": {"text": "`tests/services/apiRoutes.test.ts:1119` calls `POST http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/regenerate` 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>/api/documents/doc-1/safety-materials/regenerate`\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-78f9858f1d3f811e", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:65)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:65)"}, "fullDescription": {"text": "`tests/services/auth.test.ts:65` calls `GET http://127.0.0.1:${port}/api/protected` 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>/api/protected`\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-2572364d2d7e88ba", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:93)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:93)"}, "fullDescription": {"text": "`tests/services/auth.test.ts:93` calls `GET http://127.0.0.1:${port}/api/protected` 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>/api/protected`\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-a12a0c054a568dab", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:215)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:215)"}, "fullDescription": {"text": "`tests/services/auth.test.ts:215` calls `GET http://127.0.0.1:${port}/api/protected` 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>/api/protected`\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-0bc6269a112b1791", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/health (tests/services/app.test.ts:14)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/health (tests/services/app.test.ts:14)"}, "fullDescription": {"text": "`tests/services/app.test.ts:14` calls `GET http://127.0.0.1:${port}/api/health` 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>/api/health`\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-326835de0a592b3d", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/app.test.ts:15)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/app.test.ts:15)"}, "fullDescription": {"text": "`tests/services/app.test.ts:15` calls `GET http://127.0.0.1:${port}/api/documents` 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>/api/documents`\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-9054f48a561c97a1", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/app.test.ts:49)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/app.test.ts:49)"}, "fullDescription": {"text": "`tests/services/app.test.ts:49` calls `GET http://127.0.0.1:${port}/api/documents` 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>/api/documents`\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-ad24e00765553a91", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(input.model)}:generate", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(input.model)}:generateContent (server/services/geminiMsdsExtractor.ts:254)"}, "fullDescription": {"text": "`server/services/geminiMsdsExtractor.ts:254` calls `POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(input.model)}:generateContent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/<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-9aa157aba11c17f7", "name": "Dangling fetch: GET /api/documents (src/api/client.ts:288)", "shortDescription": {"text": "Dangling fetch: GET /api/documents (src/api/client.ts:288)"}, "fullDescription": {"text": "`src/api/client.ts:288` calls `GET /api/documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents`\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-50c14d2c6e63543a", "name": "Dangling fetch: GET /api/documents/${documentId}/safety-materials (src/api/client.ts:296)", "shortDescription": {"text": "Dangling fetch: GET /api/documents/${documentId}/safety-materials (src/api/client.ts:296)"}, "fullDescription": {"text": "`src/api/client.ts:296` calls `GET /api/documents/${documentId}/safety-materials` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/safety-materials`\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-c9b95279d53d9947", "name": "Dangling fetch: DELETE /api/documents/${documentId} (src/api/client.ts:300)", "shortDescription": {"text": "Dangling fetch: DELETE /api/documents/${documentId} (src/api/client.ts:300)"}, "fullDescription": {"text": "`src/api/client.ts:300` calls `DELETE /api/documents/${documentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<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-eccb4b4b71f54d50", "name": "Dangling fetch: PATCH /api/documents/${documentId} (src/api/client.ts:302)", "shortDescription": {"text": "Dangling fetch: PATCH /api/documents/${documentId} (src/api/client.ts:302)"}, "fullDescription": {"text": "`src/api/client.ts:302` calls `PATCH /api/documents/${documentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<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-119d1d199a736dee", "name": "Dangling fetch: GET /api/documents/${documentId}/basic-info (src/api/client.ts:307)", "shortDescription": {"text": "Dangling fetch: GET /api/documents/${documentId}/basic-info (src/api/client.ts:307)"}, "fullDescription": {"text": "`src/api/client.ts:307` calls `GET /api/documents/${documentId}/basic-info` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/basic-info`\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-cc0c9e42f0909f4a", "name": "Dangling fetch: GET /api/documents/${documentId}/detail-core (src/api/client.ts:308)", "shortDescription": {"text": "Dangling fetch: GET /api/documents/${documentId}/detail-core (src/api/client.ts:308)"}, "fullDescription": {"text": "`src/api/client.ts:308` calls `GET /api/documents/${documentId}/detail-core` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/detail-core`\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-ef3f0b90ce132953", "name": "Dangling fetch: PATCH /api/documents/${documentId}/basic-info (src/api/client.ts:310)", "shortDescription": {"text": "Dangling fetch: PATCH /api/documents/${documentId}/basic-info (src/api/client.ts:310)"}, "fullDescription": {"text": "`src/api/client.ts:310` calls `PATCH /api/documents/${documentId}/basic-info` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/basic-info`\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-d9c598543bf66a5e", "name": "Dangling fetch: GET /api/queues (src/api/client.ts:315)", "shortDescription": {"text": "Dangling fetch: GET /api/queues (src/api/client.ts:315)"}, "fullDescription": {"text": "`src/api/client.ts:315` calls `GET /api/queues` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/queues`\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-77750d6c7c991e25", "name": "Dangling fetch: GET /api/documents/${documentId}/components (src/api/client.ts:316)", "shortDescription": {"text": "Dangling fetch: GET /api/documents/${documentId}/components (src/api/client.ts:316)"}, "fullDescription": {"text": "`src/api/client.ts:316` calls `GET /api/documents/${documentId}/components` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/components`\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-1ee66840a09157dc", "name": "Dangling fetch: GET /api/jobs/status${suffix} (src/api/client.ts:320)", "shortDescription": {"text": "Dangling fetch: GET /api/jobs/status${suffix} (src/api/client.ts:320)"}, "fullDescription": {"text": "`src/api/client.ts:320` calls `GET /api/jobs/status${suffix}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/jobs/status/<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-a8ad5c2aa3e9c070", "name": "Dangling fetch: POST /api/documents/${documentId}/components (src/api/client.ts:323)", "shortDescription": {"text": "Dangling fetch: POST /api/documents/${documentId}/components (src/api/client.ts:323)"}, "fullDescription": {"text": "`src/api/client.ts:323` calls `POST /api/documents/${documentId}/components` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/components`\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-e85656b73abf9a1c", "name": "Dangling fetch: PATCH /api/documents/${documentId}/components/${rowId} (src/api/client.ts:329)", "shortDescription": {"text": "Dangling fetch: PATCH /api/documents/${documentId}/components/${rowId} (src/api/client.ts:329)"}, "fullDescription": {"text": "`src/api/client.ts:329` calls `PATCH /api/documents/${documentId}/components/${rowId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/components/<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-4d1d0889bac296cd", "name": "Dangling fetch: DELETE /api/documents/${documentId}/components/${rowId} (src/api/client.ts:335)", "shortDescription": {"text": "Dangling fetch: DELETE /api/documents/${documentId}/components/${rowId} (src/api/client.ts:335)"}, "fullDescription": {"text": "`src/api/client.ts:335` calls `DELETE /api/documents/${documentId}/components/${rowId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/components/<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-3d8325677fa2c70f", "name": "Dangling fetch: POST /api/documents/${documentId}/components/${rowId}/recheck (src/api/client.ts:337)", "shortDescription": {"text": "Dangling fetch: POST /api/documents/${documentId}/components/${rowId}/recheck (src/api/client.ts:337)"}, "fullDescription": {"text": "`src/api/client.ts:337` calls `POST /api/documents/${documentId}/components/${rowId}/recheck` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/components/<p>/recheck`\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-cbcbc9f8be2db260", "name": "Dangling fetch: POST /api/documents/recheck (src/api/client.ts:339)", "shortDescription": {"text": "Dangling fetch: POST /api/documents/recheck (src/api/client.ts:339)"}, "fullDescription": {"text": "`src/api/client.ts:339` calls `POST /api/documents/recheck` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/recheck`\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-7efdb8913c314f7b", "name": "Dangling fetch: POST /api/documents/${documentId}/components/${rowId}/review (src/api/client.ts:345)", "shortDescription": {"text": "Dangling fetch: POST /api/documents/${documentId}/components/${rowId}/review (src/api/client.ts:345)"}, "fullDescription": {"text": "`src/api/client.ts:345` calls `POST /api/documents/${documentId}/components/${rowId}/review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/components/<p>/review`\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-ceb85456e2b10d42", "name": "Dangling fetch: GET /api/official-lookups/status (src/api/client.ts:350)", "shortDescription": {"text": "Dangling fetch: GET /api/official-lookups/status (src/api/client.ts:350)"}, "fullDescription": {"text": "`src/api/client.ts:350` calls `GET /api/official-lookups/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/official-lookups/status`\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-1de8f50ce02809f8", "name": "Dangling fetch: GET /api/watchlist (src/api/client.ts:351)", "shortDescription": {"text": "Dangling fetch: GET /api/watchlist (src/api/client.ts:351)"}, "fullDescription": {"text": "`src/api/client.ts:351` calls `GET /api/watchlist` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/watchlist`\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-5e3f108caac6ea5c", "name": "Dangling fetch: POST /api/watchlist/recheck (src/api/client.ts:353)", "shortDescription": {"text": "Dangling fetch: POST /api/watchlist/recheck (src/api/client.ts:353)"}, "fullDescription": {"text": "`src/api/client.ts:353` calls `POST /api/watchlist/recheck` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/watchlist/recheck`\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-bd9cd238d79277a2", "name": "Dangling fetch: GET /api/products (src/api/client.ts:358)", "shortDescription": {"text": "Dangling fetch: GET /api/products (src/api/client.ts:358)"}, "fullDescription": {"text": "`src/api/client.ts:358` calls `GET /api/products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\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-9b708dd4c32063c3", "name": "Dangling fetch: GET /api/products/sites (src/api/client.ts:359)", "shortDescription": {"text": "Dangling fetch: GET /api/products/sites (src/api/client.ts:359)"}, "fullDescription": {"text": "`src/api/client.ts:359` calls `GET /api/products/sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/sites`\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-0b18815664566d02", "name": "Dangling fetch: DELETE /api/products/sites/${siteId} (src/api/client.ts:361)", "shortDescription": {"text": "Dangling fetch: DELETE /api/products/sites/${siteId} (src/api/client.ts:361)"}, "fullDescription": {"text": "`src/api/client.ts:361` calls `DELETE /api/products/sites/${siteId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/sites/<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-8f9102096ee8be7d", "name": "Dangling fetch: DELETE /api/products/${productId} (src/api/client.ts:363)", "shortDescription": {"text": "Dangling fetch: DELETE /api/products/${productId} (src/api/client.ts:363)"}, "fullDescription": {"text": "`src/api/client.ts:363` calls `DELETE /api/products/${productId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/<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-85f988d4274f8d35", "name": "Dangling fetch: POST /api/products/documents/${documentId}/revision-needed (src/api/client.ts:365)", "shortDescription": {"text": "Dangling fetch: POST /api/products/documents/${documentId}/revision-needed (src/api/client.ts:365)"}, "fullDescription": {"text": "`src/api/client.ts:365` calls `POST /api/products/documents/${documentId}/revision-needed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/documents/<p>/revision-needed`\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-ba45fb14550f7706", "name": "Dangling fetch: POST /api/products (src/api/client.ts:367)", "shortDescription": {"text": "Dangling fetch: POST /api/products (src/api/client.ts:367)"}, "fullDescription": {"text": "`src/api/client.ts:367` calls `POST /api/products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\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-26708e398a46edb2", "name": "Dangling fetch: POST /api/documents/upload (src/api/client.ts:375)", "shortDescription": {"text": "Dangling fetch: POST /api/documents/upload (src/api/client.ts:375)"}, "fullDescription": {"text": "`src/api/client.ts:375` calls `POST /api/documents/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/upload`\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-d5532a48323f3e29", "name": "Dangling fetch: POST /api/documents/${documentId}/replacement (src/api/client.ts:380)", "shortDescription": {"text": "Dangling fetch: POST /api/documents/${documentId}/replacement (src/api/client.ts:380)"}, "fullDescription": {"text": "`src/api/client.ts:380` calls `POST /api/documents/${documentId}/replacement` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/<p>/replacement`\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-951f42f519fb30e0", "name": "Dangling fetch: POST /api/documents/upload-batch (src/api/client.ts:390)", "shortDescription": {"text": "Dangling fetch: POST /api/documents/upload-batch (src/api/client.ts:390)"}, "fullDescription": {"text": "`src/api/client.ts:390` calls `POST /api/documents/upload-batch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/documents/upload-batch`\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-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`server/app.ts` declares `GET /api/health` 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-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api` 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-b90a25f6d5f27707", "name": "Unused endpoint: USE /api/documents", "shortDescription": {"text": "Unused endpoint: USE /api/documents"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/documents` 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-61519720bbf44ebe", "name": "Unused endpoint: USE /api/jobs", "shortDescription": {"text": "Unused endpoint: USE /api/jobs"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/jobs` 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-eb269f638819b639", "name": "Unused endpoint: USE /api/official-lookups", "shortDescription": {"text": "Unused endpoint: USE /api/official-lookups"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/official-lookups` 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-cefe3e16e4a7273d", "name": "Unused endpoint: USE /api/products", "shortDescription": {"text": "Unused endpoint: USE /api/products"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/products` 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-3c66e0a56692f7cf", "name": "Unused endpoint: USE /api/queues", "shortDescription": {"text": "Unused endpoint: USE /api/queues"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/queues` 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-c7213564c7b3bd77", "name": "Unused endpoint: USE /api/revisions", "shortDescription": {"text": "Unused endpoint: USE /api/revisions"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/revisions` 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-429ab099bb88de4d", "name": "Unused endpoint: USE /api/schedules", "shortDescription": {"text": "Unused endpoint: USE /api/schedules"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/schedules` 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-1afa00d06cb7e7d5", "name": "Unused endpoint: USE /api/usage", "shortDescription": {"text": "Unused endpoint: USE /api/usage"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/usage` 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-126c84a660596653", "name": "Unused endpoint: USE /api/watchlist", "shortDescription": {"text": "Unused endpoint: USE /api/watchlist"}, "fullDescription": {"text": "`server/app.ts` declares `USE /api/watchlist` 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-6d8b21ba304cc664", "name": "Unused endpoint: GET /drain", "shortDescription": {"text": "Unused endpoint: GET /drain"}, "fullDescription": {"text": "`server/routes/jobs.ts` declares `GET /drain` 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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`server/routes/watchlist.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-c52c8d5b3c785738", "name": "Unused endpoint: POST /recheck", "shortDescription": {"text": "Unused endpoint: POST /recheck"}, "fullDescription": {"text": "`server/routes/watchlist.ts` declares `POST /recheck` 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-82ca52addb418ebf", "name": "Unused endpoint: GET /auto-recheck", "shortDescription": {"text": "Unused endpoint: GET /auto-recheck"}, "fullDescription": {"text": "`server/routes/watchlist.ts` declares `GET /auto-recheck` 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-03bfe2bb33d2fdbf", "name": "Unused endpoint: POST /diff", "shortDescription": {"text": "Unused endpoint: POST /diff"}, "fullDescription": {"text": "`server/routes/revisions.ts` declares `POST /diff` 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-89a4e16b15df5f19", "name": "Unused endpoint: POST /calculate", "shortDescription": {"text": "Unused endpoint: POST /calculate"}, "fullDescription": {"text": "`server/routes/schedules.ts` declares `POST /calculate` 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-68dbfd4bdf1c29d7", "name": "Unused endpoint: GET /:documentId/detail-core", "shortDescription": {"text": "Unused endpoint: GET /:documentId/detail-core"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `GET /:documentId/detail-core` 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-b25d790e319311ef", "name": "Unused endpoint: GET /:documentId/file", "shortDescription": {"text": "Unused endpoint: GET /:documentId/file"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `GET /:documentId/file` 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-2d83199ca31c5703", "name": "Unused endpoint: GET /:documentId/safety-materials", "shortDescription": {"text": "Unused endpoint: GET /:documentId/safety-materials"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `GET /:documentId/safety-materials` 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-32bf21d2ee093379", "name": "Unused endpoint: GET /:documentId/safety-materials/:kind/:format", "shortDescription": {"text": "Unused endpoint: GET /:documentId/safety-materials/:kind/:format"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `GET /:documentId/safety-materials/:kind/:format` 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-0c110f636720d3b4", "name": "Unused endpoint: POST /:documentId/safety-materials/regenerate", "shortDescription": {"text": "Unused endpoint: POST /:documentId/safety-materials/regenerate"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `POST /:documentId/safety-materials/regenerate` 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-7d2861b29f1ba63c", "name": "Unused endpoint: GET /:documentId/components", "shortDescription": {"text": "Unused endpoint: GET /:documentId/components"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `GET /:documentId/components` 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-27b1da2cd5504519", "name": "Unused endpoint: DELETE /:documentId", "shortDescription": {"text": "Unused endpoint: DELETE /:documentId"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `DELETE /:documentId` 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-e46ce1a88122ec7f", "name": "Unused endpoint: PATCH /:documentId", "shortDescription": {"text": "Unused endpoint: PATCH /:documentId"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `PATCH /:documentId` 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-112fca53cb1f254a", "name": "Unused endpoint: GET /:documentId/basic-info", "shortDescription": {"text": "Unused endpoint: GET /:documentId/basic-info"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `GET /:documentId/basic-info` 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-e94a3d0dc2d47319", "name": "Unused endpoint: PATCH /:documentId/basic-info", "shortDescription": {"text": "Unused endpoint: PATCH /:documentId/basic-info"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `PATCH /:documentId/basic-info` 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-e18f0396e4ff020b", "name": "Unused endpoint: POST /:documentId/components", "shortDescription": {"text": "Unused endpoint: POST /:documentId/components"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `POST /:documentId/components` 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-4c7bfaed55cd2591", "name": "Unused endpoint: POST /:documentId/replacement", "shortDescription": {"text": "Unused endpoint: POST /:documentId/replacement"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `POST /:documentId/replacement` 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-b936cd7b0dcdfec3", "name": "Unused endpoint: PATCH /:documentId/components/:rowId", "shortDescription": {"text": "Unused endpoint: PATCH /:documentId/components/:rowId"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `PATCH /:documentId/components/:rowId` 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-246aee5c80d0d58f", "name": "Unused endpoint: DELETE /:documentId/components/:rowId", "shortDescription": {"text": "Unused endpoint: DELETE /:documentId/components/:rowId"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `DELETE /:documentId/components/:rowId` 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-7afd57675cc10147", "name": "Unused endpoint: POST /:documentId/components/:rowId/recheck", "shortDescription": {"text": "Unused endpoint: POST /:documentId/components/:rowId/recheck"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `POST /:documentId/components/:rowId/recheck` 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-fb9b1cbe08682036", "name": "Unused endpoint: POST /:documentId/components/:rowId/review", "shortDescription": {"text": "Unused endpoint: POST /:documentId/components/:rowId/review"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `POST /:documentId/components/:rowId/review` 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-6236b283b79811b8", "name": "Unused endpoint: POST /upload", "shortDescription": {"text": "Unused endpoint: POST /upload"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `POST /upload` 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-119345be45a8e185", "name": "Unused endpoint: POST /upload-batch", "shortDescription": {"text": "Unused endpoint: POST /upload-batch"}, "fullDescription": {"text": "`server/routes/documents.ts` declares `POST /upload-batch` 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-23a4558b5fb325e7", "name": "Unused endpoint: GET /sites", "shortDescription": {"text": "Unused endpoint: GET /sites"}, "fullDescription": {"text": "`server/routes/products.ts` declares `GET /sites` 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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`server/routes/products.ts` declares `POST /` 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-d5cd860f2703b829", "name": "Unused endpoint: POST /documents/:documentId/revision-needed", "shortDescription": {"text": "Unused endpoint: POST /documents/:documentId/revision-needed"}, "fullDescription": {"text": "`server/routes/products.ts` declares `POST /documents/:documentId/revision-needed` 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-a8d03421e24cd922", "name": "Unused endpoint: DELETE /sites/:siteId", "shortDescription": {"text": "Unused endpoint: DELETE /sites/:siteId"}, "fullDescription": {"text": "`server/routes/products.ts` declares `DELETE /sites/:siteId` 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-4238150fcc0379c6", "name": "Unused endpoint: DELETE /:productId", "shortDescription": {"text": "Unused endpoint: DELETE /:productId"}, "fullDescription": {"text": "`server/routes/products.ts` declares `DELETE /:productId` 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-621f858deaa3be43", "name": "Unused endpoint: GET /report", "shortDescription": {"text": "Unused endpoint: GET /report"}, "fullDescription": {"text": "`server/routes/usage.ts` declares `GET /report` 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/23214"}, "properties": {"repository": "YEONGJUCHO2/MSDS-App", "repoUrl": "https://github.com/YEONGJUCHO2/MSDS-App", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463297, "scanner": "foundry_dataset", "fingerprint": "ed1695dedb79572f470a81338d8f373e351c9f912147f9f7bded0b0741b32f32", "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": {"api_integration_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#8", "issue_number": "8", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d9937c162936399d", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#8\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#8\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#8\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 8\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-3023057bea4a99e7", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463296, "scanner": "foundry_dataset", "fingerprint": "4902220d861d3e34611bf66e89367af2a79565d1e5f7eb1ee3559e7a476ed468", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#7", "issue_number": "7", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-df1919eeb8ab14d5", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#7\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#7\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#7\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 7\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-f4a090eb3e996d99", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463295, "scanner": "foundry_dataset", "fingerprint": "e30d96998cf54355a83a659994581087eab648805ff7dd0d679abe17fc0b4291", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 1, "test_ci_gap": 1, "docs_or_claims": 4, "source_or_other": 3, "ci_success_signal": 1, "deployment_env_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {"ci_success_signal": 2}, "synthetic": false, "edge_count": 54, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "comment_chain_has_ci": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 9, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#64", "issue_number": "64", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ff5ac3bab236615d", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 5, "docs_or_claims": 20, "source_or_other": 15, "dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: supported_by_verification_signal\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#64\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#64\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#64\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 64\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 54\nNode types: {'pr_file': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 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, 'comment_chain_links_commit': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'docs_or_claims': 4, 'source_or_other': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'dependency_or_build': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'ci_success_signal': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {'ci_success_signal': 2}\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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-f88c3cf69153c108", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463294, "scanner": "foundry_dataset", "fingerprint": "1610b86898ab81394671287ab25400f8f1c5dd4e91258d7eba6f08fcc0be2499", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#6", "issue_number": "6", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-aa6fdc1ec9ae082a", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#6\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#6\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#6\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 6\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-292b96dfe657e1be", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463293, "scanner": "foundry_dataset", "fingerprint": "32d5ca011fe7828d42c4ce7c062fc6ebde50bb798c31e933f0662b86fedecbae", "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_or_ci": 1, "api_or_backend": 1, "deployment_env_gap": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "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": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 2, "comment_chain_links_commit": 4, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 18, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 2, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#57", "issue_number": "57", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a49690eea2aa0da0", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 5, "api_or_backend": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: supported_by_verification_signal\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#57\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#57\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#57\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 57\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 28\nNode types: {'commit': 4, 'link_quality': 4, 'comment': 2, 'pr_file': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 4, 'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_touches_file': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_issue_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, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'api_or_backend': 1, 'test_or_ci': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-5bf108e5b963e144", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463292, "scanner": "foundry_dataset", "fingerprint": "869e1c496d51b6710572ce77acd2c4944a44a0e1578ba1b1c8df65c5a4b798f9", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 18, "api_or_backend": 10, "docs_or_claims": 1, "schema_or_data": 13, "ui_or_frontend": 5, "source_or_other": 4, "data_schema_persistence": 2, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 103, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 51, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 63, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 51, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#56", "issue_number": "56", "quality_tiers": {"unresolved": 4}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-56adbeda497798b5", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 90, "api_or_backend": 50, "docs_or_claims": 5, "schema_or_data": 65, "ui_or_frontend": 25, "source_or_other": 20}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#56\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#56\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#56\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 56\nGraph consistency label: needs_more_evidence\nNodes: 63\nEdges: 103\nNode types: {'pr_file': 51, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 51, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 18, 'schema_or_data': 13, 'api_or_backend': 10, 'ui_or_frontend': 5, 'source_or_other': 4, 'not_resolved_or_not_observed': 4, 'data_schema_persistence': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'docs_or_claims': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 4}\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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-8e2bfe9841adcfb9", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463291, "scanner": "foundry_dataset", "fingerprint": "03e99cc95d520d8738c59024ce3cc20a8c6a64093ede0f9eefd3772c6e2c8fef", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 2, "api_or_backend": 1, "docs_or_claims": 8, "source_or_other": 2, "mock_placeholder": 1, "deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 65, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 13, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 13, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#55", "issue_number": "55", "quality_tiers": {"unresolved": 4}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-53c2ca7da23b9df6", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 10, "api_or_backend": 5, "docs_or_claims": 40, "source_or_other": 10}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#55\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#55\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#55\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 55\nGraph consistency label: needs_more_evidence\nNodes: 25\nEdges: 65\nNode types: {'pr_file': 13, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 13, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, '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: {'docs_or_claims': 8, 'not_resolved_or_not_observed': 4, 'source_or_other': 2, 'test_or_ci': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'api_or_backend': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 4}\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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-1335cab2485bf7fd", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463290, "scanner": "foundry_dataset", "fingerprint": "06f2255063476f07ffdb89c8abd7a91e74601a664d47c42b9d7116dfff476512", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 6, "test_ci_gap": 1, "api_or_backend": 3, "docs_or_claims": 27, "schema_or_data": 3, "source_or_other": 12, "security_or_auth": 9, "deployment_env_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 114, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 61, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 74, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 61, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#54", "issue_number": "54", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-7266c1877dca713f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 30, "api_or_backend": 15, "docs_or_claims": 135, "schema_or_data": 15, "source_or_other": 60, "security_or_auth": 45, "dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#54\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#54\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#54\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 54\nGraph consistency label: weak_supervision_needs_review\nNodes: 74\nEdges: 114\nNode types: {'pr_file': 61, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 61, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'docs_or_claims': 27, 'source_or_other': 12, 'security_or_auth': 9, 'test_or_ci': 6, 'schema_or_data': 3, 'api_or_backend': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'dependency_or_build': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-1b4b03ee6cd4a181", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463289, "scanner": "foundry_dataset", "fingerprint": "dd78249ea9873839b8b4e433e462c30b1a4e1d2cdb10bb1731a0d8e7a87eeaa1", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 31, "api_or_backend": 27, "docs_or_claims": 11, "schema_or_data": 5, "ui_or_frontend": 5, "source_or_other": 11, "security_or_auth": 8, "dependency_or_build": 2, "security_auth_secret": 2, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 152, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 100, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 112, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 100, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#53", "issue_number": "53", "quality_tiers": {"unresolved": 4}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c71b9e1c7f568d06", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 155, "api_or_backend": 135, "docs_or_claims": 55, "schema_or_data": 25, "ui_or_frontend": 25, "source_or_other": 55, "security_or_auth": 40, "dependency_or_build": 10}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#53\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#53\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#53\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 53\nGraph consistency label: needs_more_evidence\nNodes: 112\nEdges: 152\nNode types: {'pr_file': 100, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 100, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 31, 'api_or_backend': 27, 'docs_or_claims': 11, 'source_or_other': 11, 'security_or_auth': 8, 'schema_or_data': 5, 'ui_or_frontend': 5, 'not_resolved_or_not_observed': 4, 'security_auth_secret': 2, 'dependency_or_build': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 4}\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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-762d48465cf422f2", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463288, "scanner": "foundry_dataset", "fingerprint": "75b5012f0d6e8c9036754c972fbc71cbded5e0eab743ed89c7676b0399a66bac", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 1, "api_or_backend": 1, "agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 17, "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_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "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": "YEONGJUCHO2/MSDS-App#51", "issue_number": "51", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6f82d56fd90a5189", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 4}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#51\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#51\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#51\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 51\nGraph consistency label: needs_more_evidence\nNodes: 11\nEdges: 17\nNode types: {'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'api_or_backend': 1, 'test_or_ci': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-5cd1c5612fe1df57", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463287, "scanner": "foundry_dataset", "fingerprint": "096e917df1417a2c49c43853278e360f3b3f44b171ce6b13ded2c0a2271b49ca", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 1, "api_or_backend": 1, "docs_or_claims": 1, "agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#48", "issue_number": "48", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d821e7520eb929f9", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 4, "docs_or_claims": 4}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#48\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#48\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#48\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 48\nGraph consistency label: needs_more_evidence\nNodes: 12\nEdges: 20\nNode types: {'pr_file': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'chain_has_link_quality': 3, 'issue_chain_touches_file': 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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'docs_or_claims': 1, 'api_or_backend': 1, 'test_or_ci': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-2a3c624cedf4d07f", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463286, "scanner": "foundry_dataset", "fingerprint": "2d0e17dd6049daaf8073993613e9551d4a2dc6d8ffff1947cdfc5db378756571", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 13, "api_or_backend": 43, "docs_or_claims": 6, "schema_or_data": 3, "ui_or_frontend": 2, "source_or_other": 2, "dependency_or_build": 2, "agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 106, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 71, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 80, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 71, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#47", "issue_number": "47", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2c427afffb6e5e31", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 52, "api_or_backend": 172, "docs_or_claims": 24, "schema_or_data": 12, "ui_or_frontend": 8, "source_or_other": 8, "dependency_or_build": 8}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#47\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#47\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#47\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 47\nGraph consistency label: needs_more_evidence\nNodes: 80\nEdges: 106\nNode types: {'pr_file': 71, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 71, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'api_or_backend': 43, 'test_or_ci': 13, 'docs_or_claims': 6, 'schema_or_data': 3, 'not_resolved_or_not_observed': 3, 'dependency_or_build': 2, 'source_or_other': 2, 'ui_or_frontend': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-2432739aec910bb1", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463285, "scanner": "foundry_dataset", "fingerprint": "48dc7e7b037885c8444c3e556b908f1b77088ed2ecfdfe37f49e29b68455deed", "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": {"docs_or_claims": 10, "source_or_other": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 44, "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_touches_file": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "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": "YEONGJUCHO2/MSDS-App#46", "issue_number": "46", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-22a18af31afd727d", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"docs_or_claims": 40, "source_or_other": 4}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#46\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 46\nGraph consistency label: needs_more_evidence\nNodes: 20\nEdges: 44\nNode types: {'pr_file': 11, '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, '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: {'docs_or_claims': 10, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-1393eb94bf457ba4", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463284, "scanner": "foundry_dataset", "fingerprint": "64f0575cd4074b8106df5d63dfc1a51b78eb8ab097c11390ee818bd520abda04", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 1, "ui_or_frontend": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 17, "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_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "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": "YEONGJUCHO2/MSDS-App#45", "issue_number": "45", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2938efd0c3b59552", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 4, "ui_or_frontend": 4}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#45\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#45\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#45\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 45\nGraph consistency label: needs_more_evidence\nNodes: 11\nEdges: 17\nNode types: {'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'ui_or_frontend': 1, 'test_or_ci': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-3ae033cf2c13a326", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463283, "scanner": "foundry_dataset", "fingerprint": "ef275e4798939588e3f1e1c47ed060b208e323f28040dd7514e1da4930cd0191", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#43", "issue_number": "43", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-61e2c65961e348ad", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#43\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#43\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#43\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 43\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-120ec089003d64b2", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463282, "scanner": "foundry_dataset", "fingerprint": "10819b507c9129d5a57573c94c73f6272a5ddb0c780689e6c832f046627ac9b2", "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": {"ui_workflow_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#41", "issue_number": "41", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-778677594698453c", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#41\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#41\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#41\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 41\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-b269e0127b23cb32", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463281, "scanner": "foundry_dataset", "fingerprint": "249cb8f0d744578a8508a50fd7ecf02bbee20097397f3c4c4f8d4c205ea63091", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#39", "issue_number": "39", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-532570fae3139888", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#39\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#39\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#39\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 39\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-e64e0989da3062d9", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463280, "scanner": "foundry_dataset", "fingerprint": "43663af2807ee9569f00fb471b39615ab3467345edbf53df6556b9fddc042f50", "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": {"deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#37", "issue_number": "37", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-561c89794820bf14", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#37\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#37\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#37\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 37\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-e687cf5cce2bc2f4", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463279, "scanner": "foundry_dataset", "fingerprint": "cd8d03196ed22b396c1ff86f585bd343b6b64a4c982dcb47b20ddb960afc8e04", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#29", "issue_number": "29", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-5a2220e30c9344a4", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#29\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#29\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#29\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 29\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-5aaca059aee72470", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463278, "scanner": "foundry_dataset", "fingerprint": "d2ae5772d68eccb1845a68ae8ac91244726f5ebc23bfa6d0bb3a59ad99b40e00", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#28", "issue_number": "28", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6be84ef175e8257f", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#28\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#28\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#28\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 28\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-38212191f4479307", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463277, "scanner": "foundry_dataset", "fingerprint": "b62d441252f996efc16889f5b3caf3248aa06bf17bd23c2a3b25d0176017a6f5", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#27", "issue_number": "27", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4276ceb210bc8ba1", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#27\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#27\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#27\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 27\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-37b9c1cfda83a492", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463276, "scanner": "foundry_dataset", "fingerprint": "11cf4ba609d5b7a44deb5a6c170c185a964b4ef5e6fc501d8e4c0a724491ddbc", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#26", "issue_number": "26", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f76c47c9221b2db6", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#26\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#26\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#26\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 26\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-6a80f935a07ec4c6", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463275, "scanner": "foundry_dataset", "fingerprint": "97fc0a627fc0e281cecd338a68c0d5c8e171a032fba0d069b14ac4e04af85439", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#25", "issue_number": "25", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-88446714ee4a56a0", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#25\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#25\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#25\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 25\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-c0d11a76ae04893a", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463274, "scanner": "foundry_dataset", "fingerprint": "cc0107baecbef1414cef225f7c49d5e153855c22336ac74c8c6e98d41bdc80b1", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#23", "issue_number": "23", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4a5f186b6fea44f9", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#23\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#23\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#23\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 23\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-3d21a122848161df", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463273, "scanner": "foundry_dataset", "fingerprint": "a03f10c238484d47cae8dd4b9b4cac09c2c9258fb97684511d5b247cd90df555", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#22", "issue_number": "22", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4910826ec5a2cf0d", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#22\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#22\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#22\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 22\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-2ea1a820c09f54ec", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463272, "scanner": "foundry_dataset", "fingerprint": "4bc882d86d4497ec9fbca18dffb573fe034257a3b8012768f01a5031d923c9ba", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_ci_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#20", "issue_number": "20", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-69cf580e416e18e1", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#20\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#20\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#20\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 20\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-b1853dc873788230", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463271, "scanner": "foundry_dataset", "fingerprint": "427686ffc17afd936324a5d438b688a70a1269b21fac0c2d054bc79634ffbf58", "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": {"api_integration_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#16", "issue_number": "16", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c1c26c2bb3fc2bce", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#16\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#16\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#16\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 16\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-f1e1b01ea27b4227", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463270, "scanner": "foundry_dataset", "fingerprint": "572a8c1d24a8a0a91382d86e3d450c4f25f4e89a9e73ad8434e587cc9707380e", "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": {"api_integration_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#15", "issue_number": "15", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-88b676b8aef59784", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#15\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#15\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#15\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 15\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-82dce9523fbc3261", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463269, "scanner": "foundry_dataset", "fingerprint": "bbf9f1f46c4f849fb8d10620fc24ae2b2c6414483c0688811f8e95fa36a04fbf", "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": {"api_integration_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#14", "issue_number": "14", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ac6d6d0a6114d468", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#14\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#14\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#14\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 14\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-bc784038f567937b", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463268, "scanner": "foundry_dataset", "fingerprint": "8cda275e8a2198eca11a9eae5686bce59d6df3a8ed3deea3dad20dece2fc1e05", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#12", "issue_number": "12", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-843386b700253eac", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#12\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#12\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#12\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 12\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-d1d6152b88a95ac8", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 463267, "scanner": "foundry_dataset", "fingerprint": "8d8b6d8c03cd7f9b0f93e6f6522bcf92b8f9a1c09e53032bb407912158c8a114", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#10", "issue_number": "10", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-12161d07ed18b159", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#10\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#10\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#10\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 10\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-8edfb002308d2c81", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434560, "scanner": "foundry_dataset", "fingerprint": "c9d6029f0416e041c640d5c223f8a20865f58e664d7c6ea00eeb17c909fc6c39", "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": "YEONGJUCHO2/MSDS-App#9", "human_labels": ["api_integration_gap"], "issue_number": "9", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.645, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-c2970190e4f7d271", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#9\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#9\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-944f71098dfdd12e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/9\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/9\\nTitle: Fix review queue counts for official matches\\nBody:\\n## Summary\\n- stop counting official regulatory API matches as human review queue work in document and product listings\\n- keep document basic info review labels based on real human-action queue items only\\n- refresh UI tests to match the current dashboard, MSDS, upload, and site management surfaces\\n\\n## Verification\\n- Uploaded sample MSDS files locally from /Users/macmini-cho/Downloads/msds-test and rechecked official lookups\\n- Confirmed sample documents and linked site records remain approved with queueCount 0 after official matches\\n- npm test\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8b1a2f057a5ac141\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-3f6f1281af757082", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434559, "scanner": "foundry_dataset", "fingerprint": "3a7b09a0844348ab7e3d587c0212123e25709b6d9b5fed3e3edda416e468ad3a", "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": "YEONGJUCHO2/MSDS-App#64", "human_labels": ["dependency_or_build", "deployment_env_gap", "docs_or_claims", "source_or_other", "test_ci_gap", "test_or_ci"], "issue_number": "64", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.645, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-36a0a7d7173361d8", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 9, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "docs_or_claims": 4, "source_or_other": 3, "dependency_or_build": 1}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 1, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#64\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#64\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 1\nLinked CI commit count: 1\nLinked CI labels: {'ci_success_signal': 1}\nChanged file count: 9\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 3, 'docs_or_claims': 4, 'dependency_or_build': 1, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c722aaf1bdce4a22\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/64\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/64\\nTitle: docs: add Claude Design handoff packet\\nBody:\\n## Summary\\n- add a safe Claude Design context-packet workflow for the MSDS-App redesign handoff\\n- document the product brief, reference guidance, and Claude Design prompt\\n- add a packet builder script and regression test to keep backend/secrets out of the generated bundle\\n\\n## Validation\\n- npm run build\\n- npm run test -- tests/services/claudeDesignPacket.test.ts\\n\"\n  },\n  {\n    \"id\": \"github-feedback-comment-c5ad33c2a3933888\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/64#issuecomment-4700920409\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/64#issuecomment-4700920409\\nTitle: \\nBody:\\n[vc]: #SXLj5beBwtnqqcvwIQMcS0WrcOq7Q7hP2yfA+uPB/cM=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc2RzLWFwcCIsInByb2plY3RJZCI6InByal9LMFNvYmZtYm5BaTJGU2VYRFNMeWdYU0YwVFppIiwiaW5zcGVjdG9yVXJsIjoiaHR0cHM6Ly92ZXJjZWwuY29tL3llb25nanUtY2hvcy1wcm9qZWN0cy9tc2RzLWFwcC9INDNUcVBkQzlxMmNCWmJ1cHRIZmpIbVF2WFRGIiwicHJldmlld1VybCI6Im1zZHMtYXBwLWdpdC1jb2RleC1jbGF1ZGUtZGVzaWduLWMtN2Y5Y2QyLXllb25nanUtY2hvcy1wcm9qZWN0cy52ZXJjZWwuYXBwIiwibmV4dENvbW1pdFN0YXR1cyI6IkRFUExPWUVEIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6Im1zZHMtYXBwLWdpdC1jb2RleC1jbGF1ZGUtZGVzaWduLWMtN2Y5Y2QyLXllb25nanUtY2hvcy1wcm9qZWN0cy52ZXJjZWwuYXBwIn0sInJvb3REaXJlY3RvcnkiOm51bGx9XX0=\\nThe latest updates\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-66cdf7b531462564", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434558, "scanner": "foundry_dataset", "fingerprint": "73335eb5938a7355d04e7212caa81616cd055704342bbc41eef4130c5c7737e7", "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": "YEONGJUCHO2/MSDS-App#63", "human_labels": ["api_integration_gap", "deployment_env_gap", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "63", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-20294b8b2bbc8e65", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 18, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 7, "ui_or_frontend": 10, "source_or_other": 1}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#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: YEONGJUCHO2/MSDS-App#63\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 18\nLabels: {'api_integration_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 1, 'ui_or_frontend': 10, 'test_or_ci': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2b1012d2ef89b67f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/63\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/63\\nTitle: feat(design): A\uc548 \uc0ac\uc774\ub4dc \ucf58\uc194 \uc804\uba74 \ub9ac\ub514\uc790\uc778 (5\uac1c \ud654\uba74)\\nBody:\\n## \ub514\uc790\uc778 \ub9ac\ud329\ud1a0\ub9c1 \u2014 A\uc548 '\uc0ac\uc774\ub4dc \ucf58\uc194' \uc804\uba74 \uc801\uc6a9\\n\\nclaude.ai/design \ud578\ub4dc\uc624\ud504(A\uc548)\ub97c \uae30\uc900\uc73c\ub85c MSDS \uc571\uc744 \\\"\ud604\uc7a5 \uc6b4\uc601 \ucf58\uc194\\\"\ub85c \ub9ac\ub514\uc790\uc778\ud588\uc2b5\ub2c8\ub2e4. 5\uac1c \ud654\uba74 \uc804\ubd80 \ub514\uc790\uc778 \ub8e8\ube0c\ub9ad 90\uc810 \uc774\uc0c1 \ud1b5\uacfc, \ud1b5\ud569 \uc77c\uad00\uc131 \uac80\uc218 PASS, \uc778\ud130\ub799\uc158 QA 20/20 \ud1b5\uacfc(\ucf58\uc194 \uc5d0\ub7ec 0).\\n\\n### \ubcc0\uacbd \ud654\uba74 (\uac01 \ud654\uba74 \ub8e8\ube0c\ub9ad \uc810\uc218)\\n- **\uc571 \uc178**: top-nav \u2192 244px \uc0ac\uc774\ub4dc \ucf58\uc194(\uadf8\ub8f9 \ub124\ube44\u00b7\uac80\uc218 \uc644\ub8cc\uc728 \uac8c\uc774\uc9c0\u00b7\uc720\uc800\uce69\u00b7\ud1b1\ubc14)\\n- **\uc6b4\uc601 \ub300\uc2dc\ubcf4\ub4dc** (92): MSDS \ubb38\uc11c \ub300\uc7a5 \uc911\uc2ec \u2014 \ub77c\uc774\ud504\uc0ac\uc774\ud074 KPI 5\uc885(\ud074\ub9ad \ud544\ud130)\u00b7\ub2e8\uacc4 \ud0ed\u00b7dense \ud14c\uc774\ube14\u00b7\ud589 \ub4dc\ub85c\uc5b4(\uc2a4\ud14c\ud37c\u00b7\uad6c\uc131\uc131\ubd84\u00b7\uc548\uc804\uc790\ub8cc\u00b7\uc7ac\ucca8\ubd80)\u00b7\uc870\uce58 \ud544\uc694\u00b7\ud604\uc7a5\ubcc4 \ud604\ud669\\n- **MSDS \uac80\uc218** (94): \uc88c\uce21 \ubb38\uc11c \ud050 + \uc6b0\uce21 \uc0c1\uc138 \ubd84\ud560\ubdf0, \uc131\ubd84 \uac80\uc218\u00b7\uc7ac\uc870\ud68c\u00b7\uc548\uc804\uc790\ub8cc\u00b7\ucd94\ucd9c \uadfc\uac70\\n- **\uc5c5\ub85c\ub4dc\u00b7\ub4f1\ub85d** (90): \ub4dc\ub86d\uc874 + \ub4f1\ub85d \ud750\ub984 3\ub2e8\uacc4 \uc548\ub0b4 2\ub2e8 \uad6c\uc131, 5\uc0c1\ud0dc \ud53c\ub4dc\ubc31\\n- **\ud604\uc7a5 \uad00\ub9ac** (90): \ud604\uc7a5 KPI 4\uc885 + MSDS\u2194\ud604\uc7a5 \uc5f0\uacb0 \uc6cc\ud06c\ud50c\ub85c + \ud604\uc7a5 \uc2ac\ub86f/\uc0c1\uc138\\n- **\ud654\ud559\ubb3c\uc9c8 \ub300\uc7a5** (92): \uaddc\uc81c \ubaa8\ub2c8\ud130\ub9c1 KPI + \uacf5\uc2dd API \uc0c1\ud0dc \ud328\ub110 + CAS \ubaa8\ub2c8\ud130\ub9c1 \ud14c\uc774\ube14\\n\\n### \uacf5\ud1b5 \uc791\uc5c5\\n- \ub77c\uc774\ud504\uc0ac\uc774\ud074 \ub2e8\uacc4 \ud310\uc815\uc744 `shared/status.ts`\ub85c \uc911\uc559\ud654(\uba85\uce6d\u00b7\uc218\uce58 \uc77c\uad00\uc131)\\n- \uc811\uadfc\uc131: \uccb4\ud06c\ubc15\uc2a4 role=checkbox\u00b7\ud0a4\ubcf4\ub4dc \uc870\uc791, aria-sort/aria-pressed, focus-visible, reduced-motion \uac00\ub4dc\\n- \uc704\ud5d8 \uc561\uc158 \uc815\ub9ac(1\ub381\uc2a4 \uc804\uccb4\uc0ad\uc81c \uc81c\uac70 \u2192 \uc120\ud0dd \uae30\ubc18), \uc0c1\ud0dc \uc0c9 \uc2dc\ub9e8\ud2f1 \ud1b5\uc77c\\n- UI_GUIDE \uae08\uc9c0\uc0ac\ud56d \uc815\ud569(\ubcf4\ub77c AI \ud314\ub808\ud2b8 \uc81c\uac70, \u6b7b\ucf54\ub4dc \uc815\ub9ac)\\n\\n### \uac80\uc99d\\n- \uc720\ub2db/\ucef4\ud3ec\ub10c\ud2b8 \ud14c\uc2a4\ud2b8 541\uac1c \uc804\ubd80 \ud1b5\uacfc, tsc\u00b7biome\u00b7knip \ud074\ub9b0, \ud504\ub85c\ub355\uc158 \ube4c\ub4dc \uc131\uacf5\\n- \uc778\ud130\ub799\uc158 QA 20/20(KPI \ud544\ud130\u00b7\ub2e8\uacc4 \ud0ed\u00b7\ub4dc\ub85c\uc5b4\u00b7\ud654\uba74 \ud578\ub4dc\uc624\ud504\u00b7\ub124\ube44\u00b7\ud050 \ud544\ud130\u00b7\uc2ac\ub86f \uc804\ud658\u00b7\uc6cc\uce58\ub9ac\uc2a4\ud2b8 \ud544\ud130/\uc7ac\uc870\ud68c),\"\n  },\n  {\n    \"id\": \"github-feedback-comment-c5b1ef28d1d2fe4c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/63#issuecomment-4697483530\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/63#issuecomment-4697483530\\nTitle: \\nBody:\\n[vc]: #3j6Q+xdEdKQMyumYYXffl7IjWYJv5/I+zs2Ftvr4qJE=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc2RzLWFwcCI\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-30019a3bf47af0a2", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434557, "scanner": "foundry_dataset", "fingerprint": "abe4d7f60d777c733ed1a3b13df6684ae14dfd4a94dc9062f9ae9b67ec793c49", "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": "YEONGJUCHO2/MSDS-App#62", "human_labels": ["deployment_env_gap", "security_or_auth", "source_or_other", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "62", "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": "YEONGJUCHO2/MSDS-App", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-8d15fa60e05e2862", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 9, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 4, "ui_or_frontend": 3, "source_or_other": 1, "security_or_auth": 1}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#62\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: YEONGJUCHO2/MSDS-App#62\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 9\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 1, 'security_or_auth': 1, 'ui_or_frontend': 3, 'test_or_ci': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-74eb646c96c8ad96\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/62\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/62\\nTitle: fix(qa): production QA fixes + resilient e2e infra\\nBody:\\n## Summary\\n\\n\ubc30\ud3ec(ddcfe7e) \uc9c1\ud6c4 \ud504\ub85c\ub355\uc158 E2E + QA\uc5d0\uc11c \ub098\uc628 \uc218\uc815.\\n\\n**QA \uc218\uc815 (\ubaa8\ub450 \ud68c\uadc0 \ud14c\uc2a4\ud2b8 \ud3ec\ud568):**\\n- ISSUE-001: \ub300\uc2dc\ubcf4\ub4dc \uc778\uc0ac\ub9d0\uc774 \ubaa8\ub4e0 \uacc4\uc815\uc5d0\uc11c \\\"\uc815\ubbfc\ub2d8\\\"\uc73c\ub85c \ud558\ub4dc\ucf54\ub529 \u2192 \uc138\uc158 \ud504\ub85c\ud544 \uc774\ub984 \uc0ac\uc6a9\\n- ISSUE-002: \ubbf8\uc9c0\uc6d0 \ud615\uc2dd(.hwp/.html \ub4f1)\ub9cc \uc120\ud0dd\ud558\uba74 \ubb34\ubc18\uc751 \u2192 \uc9c0\uc6d0 \ud615\uc2dd \uc548\ub0b4 + \ud63c\ud569 \uc120\ud0dd \uc2dc \\\"N\uac1c \uc81c\uc678\\\" \ud45c\uae30\\n- ISSUE-003: \ud5e4\ub354 \uc54c\ub9bc \ubca8\uc774 \ud578\ub4e4\ub7ec \uc5c6\ub294 dead button \u2192 \uae30\ub2a5 \uad6c\ud604 \uc804\uae4c\uc9c0 disabled(\\\"\uc54c\ub9bc \uae30\ub2a5 \uc900\ube44 \uc911\\\")\\n\\n**E2E \uc778\ud504\ub77c:**\\n- \ud604\uc7a5 \uc2ac\ub86f \ud398\uc774\uc9c0\ub124\uc774\uc158(3\uac1c/\ud398\uc774\uc9c0) \ub300\uc751 \u2014 \uc2e0\uaddc \uc0ac\uc774\ud2b8 \uce74\ub4dc\ub97c \ud398\uc774\uc9c0 \ub118\uaca8 \ud0d0\uc0c9\\n- `scripts/refreshE2eAuthState.ts`: \ub9cc\ub8cc\ub41c QA \uc778\uc99d \uc0c1\ud0dc\ub97c Supabase admin magiclink\ub85c \uc790\ub3d9 \uc7ac\ubc1c\uae09\\n- playwright `test-results/` gitignore\\n\\nQA \ubcf4\uace0\uc11c: `.gstack/qa-reports/qa-report-msds-tstools-kr-2026-06-11.md` (\ub85c\uceec)\\n\\n## Test plan\\n- [x] `npm run lint` / `npm run test` (539 passed) / `npm run build` / `npm run deadcode:strict`\\n- [x] \ud504\ub85c\ub355\uc158 E2E 3\uc885 \ud1b5\uacfc (field-manager flow 42.9s, docx UI, performance 60.1s/3\ud30c\uc77c)\\n- [ ] \uba38\uc9c0 \ud6c4 \ud504\ub85c\ub355\uc158\uc5d0\uc11c \uc778\uc0ac\ub9d0\u00b7\uc54c\ub9bc \ubc84\ud2bc\u00b7\uc5c5\ub85c\ub4dc \uba54\uc2dc\uc9c0 \uc7ac\uac80\uc99d\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  },\n  {\n    \"id\": \"github-feedback-comment-c57113f82644f33e\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/62#issuecomment-4681030411\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/62#issuecomment-4681030411\\nTitle: \\nBody:\\n[vc]: #Of7UJcQVCQtaY777Cp/FoX/iKv0t0xgVUm9sxixkFOU=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc2RzLWFwcCIsInByb2plY3RJZCI6InByal9LMFNvYmZtYm5BaTJGU2VYRFNMeWdYU0YwVFppIiwiaW5zcGVjdG9yVXJsIjoiaHR0cHM6Ly92ZXJjZWwuY\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-36cbe704c0634d47", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434556, "scanner": "foundry_dataset", "fingerprint": "944f6e9297ac2009e713b4d669f49242a6ae4122f67d5d62b57c7dc30fbc172e", "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": "YEONGJUCHO2/MSDS-App#61", "human_labels": ["api_or_backend", "dependency_or_build", "security_auth_secret", "source_or_other", "test_or_ci"], "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": "YEONGJUCHO2/MSDS-App", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-b34b7b6eb3de6f9b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 14, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 5, "source_or_other": 3, "dependency_or_build": 2}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#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: YEONGJUCHO2/MSDS-App#61\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 14\nLabels: {'security_auth_secret': 2}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 3, 'dependency_or_build': 2, 'api_or_backend': 5, 'test_or_ci': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5fd9569960c46227\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/61\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/61\\nTitle: fix: harden security for production deploy\\nBody:\\n## Summary\\n\\n2026-06-10 \uc804\uccb4 \ubcf4\uc548\uac10\uc0ac(/cso comprehensive) \ud655\uc815 \ubc1c\uacac\uc0ac\ud56d 6\uac74\uc744 \uc218\uc815\ud55c\ub2e4.\\n\\n- **HIGH \u2014 LLM \ube44\uc6a9 \uc99d\ud3ed \ucc28\ub2e8:** `POST /api/documents/:id/replacement`\uac00 \uc77c\uc77c \uc5c5\ub85c\ub4dc ledger \uc5c6\uc774 Gemini \ucd94\ucd9c\uc744 \uc9c1\uc811 \ud638\ucd9c\ud558\ub358 \ubb38\uc81c\ub97c reserve\u2192confirm/refund\ub85c \ucc28\ub2e8. AI \ud638\ucd9c \uc2dc\uc791 \ud6c4\uc5d0\ub294 \ud658\ubd88\ud558\uc9c0 \uc54a\uc544 409 \ubc18\ubcf5 \uc6b0\ud68c\ub3c4 \ucc28\ub2e8. \ud55c\ub3c4 \ucd08\uacfc \uc2dc \uad6c\uc870\ud654\ub41c 429.\\n- **\uc5c5\ub85c\ub4dc \ud615\uc2dd \uc11c\ubc84\uce21 \uac80\uc99d:** \ud655\uc7a5\uc790 allowlist(`isSupportedMsdsUploadFileName`)\ub97c \uc5c5\ub85c\ub4dc/\ubc30\uce58/\uad50\uccb4 \uacbd\ub85c\uc5d0 \uc801\uc6a9, \ubbf8\uc9c0\uc6d0 \ud615\uc2dd\uc740 \ud55c\uad6d\uc5b4 400.\\n- **\ubcf4\uc548 \uc751\ub2f5 \ud5e4\ub354:** vercel.json \ube44-API \uacbd\ub85c\uc5d0 CSP(\uc2a4\ud06c\ub9bd\ud2b8 self \uc804\uc6a9, Pretendard CDN\u00b7Supabase \ud5c8\uc6a9)\u00b7nosniff\u00b7X-Frame-Options\u00b7HSTS\u00b7Referrer-Policy\u00b7Permissions-Policy \ucd94\uac00, Express API \uc751\ub2f5\uc5d0 nosniff.\\n- **\ud06c\ub860 \uc2dc\ud06c\ub9bf timingSafeEqual \ube44\uad50** (`server/services/secretCompare.ts`).\\n- **basic-info PATCH zod \uac80\uc99d** \u2014 \uc798\ubabb\ub41c \ubcf8\ubb38\uc5d0 500 \ub300\uc2e0 400.\\n- **\uc758\uc874\uc131 \uc815\ub9ac:** dev \uc804\uc6a9 `concurrently`(\u2192v10)\u00b7`@vitejs/plugin-react`\ub97c devDependencies\ub85c \uc774\ub3d9, qs/ws audit fix. `npm audit` \uc804\uccb4 0\uac74.\\n\\n## Test plan\\n\\n- [x] `npm run lint` / `npm run test` (533 passed, \uc2e0\uaddc \ubcf4\uc548 \ud68c\uadc0 \ud14c\uc2a4\ud2b8 12\uac74 \ud3ec\ud568) / `npm run build` / `npm run deadcode:strict`\\n- [x] \ub85c\uceec \uc11c\ubc84 \ubd80\ud305 \uc2a4\ubaa8\ud06c \u2014 401 \uc751\ub2f5\uc5d0 nosniff \ud5e4\ub354 \ud655\uc778\\n-\"\n  },\n  {\n    \"id\": \"github-feedback-comment-ce6390b0e5229f1a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/61#issuecomment-4680645856\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/61#issuecomment-4680645856\\nTitle: \\nBody:\\n[vc]: #rLpaVqCZjRe0WDY7v2BOiyXrfW8J4gTqmXmvYTCyLX0=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc2RzLWFwcCIs\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-48eb46078d1b292a", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434555, "scanner": "foundry_dataset", "fingerprint": "d7c98644e2ba383b7ae0f0334d8568c079fd2dd8be88280b8fb2b8e6e1578287", "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": "YEONGJUCHO2/MSDS-App#60", "human_labels": ["api_integration_gap", "api_or_backend", "dependency_or_build", "deployment_env_gap"], "issue_number": "60", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.842, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-750494407d5170cb", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "dependency_or_build": 2}, "linked_commit_count": 3, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#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: YEONGJUCHO2/MSDS-App#60\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'api_integration_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'dependency_or_build': 2, 'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f5eba6970baed30c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/60\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/60\\nTitle: Fix status polling durable job drain\\nBody:\\n## Summary\\n- Changes `/api/jobs/status` so owner-scoped durable job processing is deferred with Vercel `waitUntil()` instead of blocking the status response.\\n- Keeps status polling responsive while still allowing uploads to progress on Vercel Hobby where minute-level cron is unavailable.\\n- Adds `@vercel/functions` for the supported background lifecycle primitive.\\n\\n## Root Cause\\nThe first cron hotfix made status polling process a job inline. That advanced jobs but caused `/api/jobs/status` to exceed client request timeouts during Gemini extraction. Vercel Hobby also cannot run minute-level cron jobs, so the app needs polling-triggered deferred work rather than relying on frequent cron.\\n\\n## Verification\\n- `npm run lint`\\n- `npm run test -- tests/services/apiRoutes.test.ts tests/services/processingJobs.test.ts tests/services/vercelConfig.test.ts tests/services/jobs.test.ts`\\n- `npm run test`\\n- `npm run build`\\n- `npm run deadcode:strict`\\n- Vercel Preview deplo\"\n  },\n  {\n    \"id\": \"github-feedback-comment-c0547425dd7c438e\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/60#issuecomment-4589790243\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/60#issuecomment-4589790243\\nTitle: \\nBody:\\n[vc]: #RLx4uSe9L+fUNRyF4EtsDa27J3hST3O/S5VIQfmv3hs=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc2RzLWFwcCIsInByb2plY3RJZCI6InByal\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-2b60cfb8b830ec0d", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434554, "scanner": "foundry_dataset", "fingerprint": "9bf92f3244bdd93b5f1832797f57bf0359d7ee3e4961635f9b4ff34385149e04", "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": "YEONGJUCHO2/MSDS-App#59", "human_labels": ["api_integration_gap", "api_or_backend", "deployment_env_gap", "source_or_other", "test_or_ci"], "issue_number": "59", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.825, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-cf736513a5bbdce2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 2, "api_or_backend": 2, "source_or_other": 1}, "linked_commit_count": 4, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#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: YEONGJUCHO2/MSDS-App#59\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 3\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'api_integration_gap': 1, 'deployment_env_gap': 2}\nPolarities: {'bad': 3}\nChanged file labels: {'api_or_backend': 2, 'test_or_ci': 2, 'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4e3cbbdf0f193da5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/59\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/59\\nTitle: Fix production durable job drain cron\\nBody:\\n## Summary\\n- Adds a production Vercel cron for `/api/jobs/drain?maxJobs=1` so durable upload/safety/delete jobs are processed automatically.\\n- Lets the drain route honor a `maxJobs` query parameter, keeping cron invocations bounded to one job per minute to reduce serverless timeout risk.\\n- Adds a Vercel config regression test for the durable job drain cron.\\n\\n## Root Cause\\nThe previous Production QA used local durable job drain for the E2E flow. That validated the job handlers but missed that Production only had the watchlist cron configured, not the durable job drain cron. Real user uploads could therefore remain queued until a manual drain ran.\\n\\n## Verification\\n- Manually recovered current production queued jobs with local durable job drain.\\n- Confirmed current production has no queued/retrying jobs after recovery.\\n- `npm run lint`\\n- `npm run test -- tests/services/vercelConfig.test.ts tests/services/jobs.test.ts`\\n- `npm run test -- tests/services/apiR\"\n  },\n  {\n    \"id\": \"github-feedback-comment-40cad57609a450fc\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/59#issuecomment-4589735445\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/59#issuecomment-4589735445\\nTitle: \\nBody:\\nDeployment failed with the following error:\\n~~~\\nHobby accounts are limited to daily cron jobs. This cron expression (* * * * *) would run more than\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-78eb309a7cbea10f", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434553, "scanner": "foundry_dataset", "fingerprint": "7c6b2e9bcf9ab85d412ab0169246f2f29a441bf20b84a3635dc3771a1dc34fc8", "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": "YEONGJUCHO2/MSDS-App#58", "human_labels": ["api_or_backend", "deployment_env_gap", "docs_or_claims", "schema_or_data", "security_auth_secret", "security_or_auth", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "58", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.708, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-3579c57c1457eae5", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 80, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 28, "api_or_backend": 21, "docs_or_claims": 16, "schema_or_data": 5, "ui_or_frontend": 5, "source_or_other": 4, "security_or_auth": 1}, "linked_commit_count": 3, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#58\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 80\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 16, 'source_or_other': 4, 'security_or_auth': 1, 'api_or_backend': 21, 'schema_or_data': 5, 'ui_or_frontend': 5, 'test_or_ci': 28}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-11377e300c94da7a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/58\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/58\\nTitle: MSDS optimization program\\nBody:\\n## Summary\\n- Implements the MSDS optimization program through the harness phase `07-msds-optimization-program`.\\n- Keeps ADR-014 as an independent hotfix path and documents migration-first deployment rules.\\n- Adds durable jobs, schema preflight, upload idempotency, daily upload ledger TTL handling, tombstone delete cleanup, conservative regulatory cache behavior, and DB concurrency guards.\\n- Updates frontend job polling and QA harness behavior for authenticated Preview verification.\\n\\n## Key Changes\\n- Documented migration-first operations, durable job contracts, ledger behavior, tombstone delete, conservative cache, DB semaphore limits, and required sample fixture policy.\\n- Added/verified durable `processing_jobs` and `daily_upload_ledger` flows with exact secret-gated drain route and owner-scoped job status polling.\\n- Moved upload extraction and safety material rendering into durable background jobs with idempotent retry behavior.\\n- Added file-hash idempotency, act\"\n  },\n  {\n    \"id\": \"github-feedback-comment-cba4c281f60a2c56\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/58#issuecomment-4589633969\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/58#issuecomment-4589633969\\nTitle: \\nBody:\\n[vc]: #K88s1mdoHVsk/5qurApvr2WYLNKVd1bYFz08LWqQuuc=:eyJpc01v\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-d5159941ad57722f", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434552, "scanner": "foundry_dataset", "fingerprint": "ea5f3f4e971d0b28db38d88964d947a845b43621d3c09e4569e10473fc9bc336", "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": "YEONGJUCHO2/MSDS-App#54", "human_labels": ["api_or_backend", "dependency_or_build", "deployment_env_gap", "docs_or_claims", "schema_or_data", "security_or_auth", "source_or_other", "test_ci_gap", "test_or_ci"], "issue_number": "54", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-41227b6e241831ed", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 61, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 6, "api_or_backend": 3, "docs_or_claims": 27, "schema_or_data": 3, "source_or_other": 12, "security_or_auth": 9, "dependency_or_build": 1}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#54\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#54\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 61\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 12, 'docs_or_claims': 27, 'schema_or_data': 3, 'security_or_auth': 9, 'dependency_or_build': 1, 'api_or_backend': 3, 'test_or_ci': 6}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4bf34bf2eeda8431\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/54\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/54\\nTitle: Release gate and documentation cleanup\\nBody:\\n## Summary\\n- Complete QA release-gate branch changes\\n- Streamline docs so docs/ only contains core project brain files\\n- Move the living development log and operational/reference docs out of docs/\\n- Remove stale evidence, benchmark, visual QA, and completed design artifacts from the repo\\n\\n## Verification\\n- PYTHONPATH=/tmp/harness_pytest python3 -m pytest scripts/test_execute.py scripts/test_tdd_guard.py -q\\n- npm run lint\\n- npm run build\\n- git diff --check\"\n  },\n  {\n    \"id\": \"github-feedback-comment-1dccd88b65ad6f55\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/54#issuecomment-4561239074\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/54#issuecomment-4561239074\\nTitle: \\nBody:\\n[vc]: #tdGY3d8B0d86a1iB0ZccwaqYDl/mXOg0/zkwRMzqFhQ=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc2RzLWFwcCIsInByb2plY3RJZCI6InByal9LMFNvYmZtYm5BaTJGU2VYRFNMeWdYU0YwVFppIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6Im1zZHMtYXBwLWdpdC1mZWF0LWUyZS1xYS1yZWxlYXNlLWdhdGUteWVvbmdqdS1jaG9zLXByb2plY3RzLnZlcmNlbC5hcHAifSwiaW5zcGVjdG9yVXJsIjoiaHR0cHM6Ly92ZXJjZWwuY29tL3llb25nanUtY2hvcy1wcm9qZWN0cy9tc2RzLWFwcC9EVGlkcjRqckNqekVueWdxUjVlelhnZXdnZW9VIiwicHJldmlld1VybCI6Im1zZHMtYXBwLWdpdC1mZWF0LWUyZS1xYS1yZWxlYXNlLWdhdGUteWVvb\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-1da38f343fdf3030", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434551, "scanner": "foundry_dataset", "fingerprint": "81c46610f405378bef949daa79cc59945b1c908b87e6e32bca4b77785eea1dc5", "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": "YEONGJUCHO2/MSDS-App#5", "human_labels": ["api_integration_gap"], "issue_number": "5", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.61, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-265abc6323e4f4c6", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#5\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#5\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-307d08b85ae775f6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/5\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/5\\nTitle: [codex] add scheduled watchlist auto recheck\\nBody:\\n## Summary\\n- Add a small-batch automatic watchlist regulatory recheck service.\\n- Expose `/api/watchlist/auto-recheck` for scheduled background runs.\\n- Add Vercel cron config and env examples for monthly cadence with daily batch processing.\\n\\n## Behavior\\n- Rechecks only watchlist rows older than `MSDS_AUTO_RECHECK_INTERVAL_DAYS`.\\n- Processes oldest stale rows first, capped by `MSDS_AUTO_RECHECK_BATCH_SIZE`.\\n- Uses force refresh through the existing regulatory recheck flow.\\n- Requires `CRON_SECRET` or `MSDS_AUTO_RECHECK_SECRET` in production.\\n\\n## Validation\\n- `npm test -- tests/services/watchlistAutoRecheck.test.ts`\\n- `npm run build`\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-442b37dda94e2d60\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-69a0162db866aed3", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434550, "scanner": "foundry_dataset", "fingerprint": "78a74657c2fb067c3e0ca04b86c3c6642e7dad3d76f41cd25e3851e2ec9527ff", "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": "YEONGJUCHO2/MSDS-App#45", "human_labels": ["human_feedback_general", "test_or_ci", "ui_or_frontend"], "issue_number": "45", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-1b0ea6ace974736a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "ui_or_frontend": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#45\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#45\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {'ui_or_frontend': 1, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e4bbe33dca87a3d2\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/45\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/45\\nTitle: Remove quality tab from app navigation\\nBody:\\n## Summary\\\\n- remove the quality tab from the main app navigation\\\\n- stop loading/rendering the QualityPage from the user-facing shell\\\\n- add layout coverage that the \ud488\uc9c8 tab is absent\\\\n\\\\n## Tests\\\\n- npm test -- tests/ui/AppLayout.test.tsx\\\\n- npm run lint\\\\n- npm run build\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-331058888cc2dd0d\",\n    \"filename\": \"src/App.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 21,\n    \"changes\": 22,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/8e0356188b7667650772056b46eeb42908377a11/src%2FApp.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-6c048f0acafb7436\",\n    \"filename\": \"tests/ui/AppLayout.test.tsx\",\n    \"label\": \"test_or_ci\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/8e0356188b7667650772056b46eeb42908377a11/tests%2Fui%2FAppLayout.test.tsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-f6cea8cffbd4a183\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurre\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-ade445c8970f981c", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434549, "scanner": "foundry_dataset", "fingerprint": "c2061c410eb5af66ec371135ece12016754e2469c0ae61f29032c5a9f472d5a4", "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": "YEONGJUCHO2/MSDS-App#44", "human_labels": ["data_schema_persistence"], "issue_number": "44", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.61, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ad82bdc5474bdf96", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#44\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#44\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-012d5c4905410a9a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/44\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/44\\nTitle: Fix Supabase upload keys for Korean filenames\\nBody:\\n## Summary\\\\n- store Supabase document files under ASCII-safe object keys instead of raw original filenames\\\\n- keep the original uploaded filename in app data while avoiding Supabase InvalidKey errors\\\\n- add coverage for Korean filenames and unsafe document ids\\\\n\\\\n## Tests\\\\n- npm test -- tests/services/documentStorage.test.ts tests/api/uploadStorage.test.ts\\\\n- npm run lint\\\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9fc406fb69d14f4d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-9fe3628d7c232765", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434548, "scanner": "foundry_dataset", "fingerprint": "5a48e7422d501a22a815ae34d429cf8b8e5a26458a8e42ce536462a1ea4859fa", "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": "YEONGJUCHO2/MSDS-App#42", "human_labels": ["data_schema_persistence"], "issue_number": "42", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.627, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-30b44a475bb1ed75", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#42\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#42\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-aa7c33860524fd18\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/42\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/42\\nTitle: Persist SQLite snapshot in Supabase Storage\\nBody:\\n## Summary\\\\n- Add Supabase Storage support for the shared SQLite snapshot\\\\n- Document the Supabase production persistence env vars\\\\n- Ignore local Supabase CLI temp metadata\\\\n\\\\n## Production setup already applied\\\\n- Created Supabase project: msds-app (tkygsztxkrdvnbehaxjf)\\\\n- Created private bucket: msds-documents\\\\n- Set Vercel Production env vars for Supabase URL, service role key, storage bucket, storage provider, and snapshot provider\\\\n\\\\n## Tests\\\\n- npm test -- tests/services/remoteSnapshot.test.ts tests/services/documentStorage.test.ts\\\\n- npm run lint\\\\n- npm run build\\\\n- npm test\\\\n- npm run deadcode:strict\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9d9463ddecb9d743\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-51965c1be17af4da", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434547, "scanner": "foundry_dataset", "fingerprint": "9cf78dfd82de1a07490c5e50d98a7d84e09096ef44098915fd0f4adf0ae1891c", "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": "YEONGJUCHO2/MSDS-App#39", "human_labels": ["human_feedback_general"], "issue_number": "39", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-59bcdc25fc88db3f", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#39\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#39\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b0c1f565829b1381\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/39\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/39\\nTitle: Fix upload regulatory status display\\nBody:\\n## Summary\\n- pass inserted component row IDs into official regulatory matching so Gemini upload rows are actually checked\\n- return DB-enriched component rows from upload responses so the UI does not show DB \ubbf8\uc870\ud68c from raw Gemini rows\\n- keep the floating upload status panel blue while loading and green on completion\\n\\n## Verification\\n- npm test\\n- npm run lint\\n- npm run build\\n- npm run deadcode:strict\\n- npm test -- tests/services/extractionJobService.test.ts tests/ui/AppLayout.test.tsx in /Users/macmini-cho/MSDS-App-Worker\\n- deployed and smoke-tested https://msds.tstools.kr\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ba86a2d8bfa3e749\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-05606567888a6546", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434546, "scanner": "foundry_dataset", "fingerprint": "6b35495cfae07a4f97d1bb39c9c3614b45b5a3e70e80ec315c8ec0084bbd11a0", "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": "YEONGJUCHO2/MSDS-App#38", "human_labels": ["human_feedback_general"], "issue_number": "38", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.645, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-546c49af3e3ef757", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#38\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#38\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-21328e71e1f7f22f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/38\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/38\\nTitle: Use Gemini extraction and chunked MSDS uploads\\nBody:\\n## Summary\\n- replace OCR/deterministic extraction paths with Gemini-based MSDS extraction for PDF, image, XLSX, and XLS uploads\\n- process upload batches with bounded concurrency and chunk UI selections into 3-file batches, with a 30-file user-facing selection limit\\n- remove obsolete OCR/docling-style extraction dependencies and scripts, keep replacement identity validation for direct Gemini replacements, and update worker trigger concurrency\\n\\n## Verification\\n- npm test\\n- npm run lint\\n- npm run build\\n- npm run deadcode:strict\\n- npm audit --omit=dev\\n- repeated the same checks in /Users/macmini-cho/MSDS-App-Worker\\n- deployed and verified https://msds.tstools.kr upload copy shows 30-file guidance\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c886a23f5c1da37c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-ac256aab7590b6d2", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434545, "scanner": "foundry_dataset", "fingerprint": "0218749689e5c3788fd3481a0b18ce74d018fd50a2512e735da4e38559f19316", "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": "YEONGJUCHO2/MSDS-App#35", "human_labels": ["deployment_env_gap"], "issue_number": "35", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-dd447d8a639dfe22", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#35\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#35\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\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-32f503c17af0f37c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/35\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/35\\nTitle: Improve MSDS extraction accuracy for internal fields\\nBody:\\n## Summary\\n- Normalize internal product names by removing non-product labels like `(\ubd84\ub958\ucf54\ub4dc)`\\n- Extract phone numbers even when department text appears before the number\\n- Prefer local Korean CAS display names over English official names for internal registration readability\\n\\n## Test Plan\\n- [x] npm test\\n- [x] npm run build\\n- [x] npm run lint\\n- [x] Production accuracy audit with the user's msds-test files\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-93a2dc4ce0108045\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-bb2e67b943b4a84a", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434544, "scanner": "foundry_dataset", "fingerprint": "db3ad84738a6f3c25e59cd460819d8f403c0f89236c7a4e7189885aaf5e862cc", "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": "YEONGJUCHO2/MSDS-App#34", "human_labels": ["deployment_env_gap"], "issue_number": "34", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.627, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-0090b4d42ba3a148", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#34\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#34\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\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-434067edf2b6f19a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/34\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/34\\nTitle: Make Mac mini extraction worker poll pending jobs\\nBody:\\n## Summary\\n- Add periodic polling inside the Mac mini trigger server so queued extraction jobs are drained even if Vercel cannot reach the trigger URL\\n- Keep existing manual trigger behavior for immediate upload notifications\\n- Cover the no-remote-trigger path with a service test\\n\\n## Test Plan\\n- [x] npm test\\n- [x] npm run build\\n- [x] npm run lint\\n- [x] Existing extraction benchmark on user MSDS files\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-301c588a103315c7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-9b6812ffe22db2fe", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434543, "scanner": "foundry_dataset", "fingerprint": "3d66178e2712aac268e40c1d5b4b007f924da151657d1bd2215ab419065fdc08", "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": "YEONGJUCHO2/MSDS-App#33", "human_labels": ["test_ci_gap"], "issue_number": "33", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.61, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-c54a8357941601d7", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#33\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#33\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2e7516c264cb0b38\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/33\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/33\\nTitle: Clarify MSDS document status labels\\nBody:\\n## Summary\\n- Add shared display status mapping for document lifecycle states\\n- Show user-facing labels like \ubd84\uc11d \uc911, \ud655\uc778 \ud544\uc694, \ubd84\uc11d \uc644\ub8cc, \uac1c\uc815 \ud544\uc694 across dashboard and review lists\\n- Count manual-input/OCR-low-confidence documents as confirmation work and cover the behavior with tests\\n\\n## Test Plan\\n- [x] npm test\\n- [x] npm run build\\n- [x] npm run lint\\n- [x] npm run deadcode\\n- [x] Playwright smoke check on local app\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-dced614aff3eb48a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-4c522b1d0176d2b5", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434542, "scanner": "foundry_dataset", "fingerprint": "29dd56ad03e412b3ce54de83b4f7fcc884395231043610c4957e59b944873e2f", "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": "YEONGJUCHO2/MSDS-App#31", "human_labels": ["test_ci_gap"], "issue_number": "31", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b1bb3e3145127256", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#31\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#31\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d365df4c902cc4e7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/31\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/31\\nTitle: [codex] Add quality loop dashboard\\nBody:\\n## Summary\\n- Adds a local-first quality loop dashboard with production, defect, feedback, and official lookup metrics.\\n- Adds `/api/quality/metrics` and a new `\ud488\uc9c8` navigation page for Mac mini local SQLite operation.\\n- Introduces Biome lint and Knip dead-code reporting, and splits basic-info/feedback/review-page responsibilities into smaller modules.\\n\\n## Local-first storage decision\\n- Keeps the current Mac mini SQLite source of truth for DB data.\\n- Keeps object storage abstraction intact so Supabase/Postgres migration can happen later without blocking local operation.\\n\\n## Validation\\n- `npm test` -> 70 files, 253 tests passed\\n- `npm run build` -> TypeScript and Vite production build passed\\n- `npm run lint` -> Biome check passed with no diagnostics\\n- Playwright smoke check -> quality page opened and rendered `\ud488\uc9c8 \ub8e8\ud504` plus quality score card\\n- `npm run deadcode` -> report mode runs successfully and lists existing cleanup candidates\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-aa5b753a3bd5082e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-9ca05ec2a47abb96", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434541, "scanner": "foundry_dataset", "fingerprint": "07a172e78a5f598f68806bf5d11d72342aaabf5b761cec6e4564c0d99db0397d", "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": "YEONGJUCHO2/MSDS-App#3", "human_labels": ["api_integration_gap"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-85bda27e4599492e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#3\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#3\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9742a7c2694645a7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/3\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/3\\nTitle: feat: align UI to OD reference design\\nBody:\\n## Summary\\n- OD \uc2dc\uc548(handoff prototype)\uc744 \uc815\ub2f5\uc73c\ub85c \ub450\uace0 5\uac1c \ud398\uc774\uc9c0(\ub300\uc2dc\ubcf4\ub4dc/\uc5c5\ub85c\ub4dc/MSDS \uac80\uc218/\ubb3c\uc9c8\uc815\ubcf4/\ud604\uc7a5\uad00\ub9ac)\ub97c OD \ub514\uc790\uc778 \ud1a0\ud070\u00b7\ucef4\ud3ec\ub10c\ud2b8\uc640 \uc77c\uce58\uc2dc\ucf30\uc2b5\ub2c8\ub2e4.\\n- Tailwind 4 + Pretendard \ub3c4\uc785, IconSprite \ucd94\uac00, \uc0c1\ub2e8 nav\ub97c OD \uad6c\uc870\ub85c \uc7ac\uad6c\uc131.\\n- \uc0ac\uc6a9\uc790 \ub514\uc790\uc778 \ud53c\ub4dc\ubc31\uc744 \ubc18\uc601\ud574 Dashboard \uc778\uc0ac\ud615 \ud5e4\ub4dc, KPI trend \ud654\uc0b4\ud45c/alert variant, Review \uc6b0\uce21 \ud328\ub110 \uc561\uc158 \uc815\ub9ac(\ucca8\ubd80 \uc5f4\uae30/\uc800\uc7a5/\uc804\uccb4 \ubcf5\uc0ac), \uc0ac\ub0b4 \uc785\ub825 \ud3ec\ub9f7 \uc798\ub9bc \uc218\uc815, Upload \ub4dc\ub86d\uc874 5\ub2e8\uacc4 \uc0c1\ud0dc(default/dragging/busy/success/partial/error)\ub97c \uc801\uc6a9.\\n- \ubb3c\uc9c8\uc815\ubcf4\ub294 \uacf5\uc2dd API \uce74\ub4dc \ub77c\ubca8/\uba54\ud0c0\u00b7\ub0a0\uc9dc \ud3ec\ub9f7\u00b7\uce69\u00b7\ubc30\uc9c0 \uce74\ud53c\ub97c OD\uc5d0 \ub9de\ucdb0 \ud1b5\uc77c\ud588\uace0, \ud604\uc7a5\uad00\ub9ac\ub294 \uc2ac\ub86f\uc744 \uac80\uc218 \ud544\uc694 \uc6b0\uc120\uc73c\ub85c \uc815\ub82c.\\n\\n## Test plan\\n- [ ] \\\\`PORT=8787 npm run dev\\\\` \ud6c4 \ub2e4\uc74c 5\ud398\uc774\uc9c0\ub97c 1440x900 viewport\ub85c \ud655\uc778\\n  - [ ] \\\\`/?page=dashboard\\\\` \u2014 \uc778\uc0ac\ud615 \ud5e4\ub4dc + KPI 4\uac1c\uc758 trend \uce74\ud53c\u00b7\ud654\uc0b4\ud45c\\n  - [ ] \\\\`/?page=upload\\\\` \u2014 \ud30c\uc77c \ub4dc\ub798\uadf8 \uc2dc dragging, \uc5c5\ub85c\ub4dc \uc2dc busy, \uacb0\uacfc\uc5d0 \ub530\ub978 success/partial/error \uc0c1\ud0dc \uc804\ud658\\n  - [ ] \\\\`/?page=review\\\\` \u2014 \uc6b0\uce21 \ud328\ub110 \uc561\uc158 3\uac1c(\ucca8\ubd80 \uc5f4\uae30/\uc800\uc7a5/\uc804\uccb4 \ubcf5\uc0ac), \uae34 \ud30c\uc77c\uba85 ellipsis, \uc0ac\ub0b4 \uc785\ub825 \ud3ec\ub9f7\u00b7\ucd94\ucd9c \uadfc\uac70 \uc139\uc158\uc774 \ud398\uc774\uc9c0 \ud558\ub2e8\uc5d0 \ubd84\ub9ac\ub418\uc5b4 \ub178\ucd9c\\n  - [ ] \\\\`/?page=queues\\\\` \u2014 \uacf5\uc2dd API \uce74\ub4dc \ub77c\ubca8/\uba54\ud0c0, \uce69 'KOSHA \ub9e4\uce6d/\ud654\uad00\ubc95 \ub9e4\uce6d', \ubc30\uc9c0 '\uacf5\uc2dd \ub9e4\uce6d', \ub0a0\uc9dc \ud3ec\ub9f7 \\\\`YYYY-MM-DD HH:mm\\\\`\\n  - [ ] \\\\`/?page=products\\\\` \u2014 \ud604\uc7a5 \uc2ac\ub86f\uc774 \uac80\uc218 \ud544\uc694 \uc6b0\uc120\uc73c\ub85c \uc815\ub82c, \uba54\ud0c0 '\u00b7 \uc815\ub82c: \uac80\uc218 \ud544\uc694 \uc6b0\uc120'\\n- [ ] \\\\`npm r\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4d56a16ead1888ac\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bund\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-4f563fa8726154b2", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434540, "scanner": "foundry_dataset", "fingerprint": "0088aef3cc4451b392e3423b815a6a4c36d7512e2d069291c5bffc787ab53121", "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": "YEONGJUCHO2/MSDS-App#29", "human_labels": ["human_feedback_general"], "issue_number": "29", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-9bc08332a520f895", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#29\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#29\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5a7f17e30ad27de9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/29\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/29\\nTitle: Persist worker basic info and failure review state\\nBody:\\n## Summary\\n- persist generated basic info after worker completion\\n- mark documents for manual review when worker jobs fail\\n- add extraction job service coverage for completion, failure, and basic info persistence\\n\\n## Verification\\n- npm rebuild better-sqlite3\\n- npm test -- --run tests/services/extractionJobService.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ef3cf7c890becad1\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-250095f2360aa9fe", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434539, "scanner": "foundry_dataset", "fingerprint": "92efbc3b0cb6531b21e8f49adad0b4fa497e37d2e9f48f7afcdda7fc1e05a845", "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": "YEONGJUCHO2/MSDS-App#28", "human_labels": ["human_feedback_general"], "issue_number": "28", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-00971d7a58066507", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#28\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#28\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b77e6de572e822c1\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/28\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/28\\nTitle: Replace truncated component names from CAS lookups\\nBody:\\n## Summary\\n- treat truncated Korean fragments such as \uc77c\uc0b0\ud654/\uc774\uc0b0\ud654 as weak extracted names\\n- replace those fragments with the official CAS lookup name even when the official result is English-only\\n- add regression coverage for the carbon dioxide case\\n\\n## Verification\\n- npm test -- --run tests/services/regulatoryMatcher.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-195bfefc85010d7a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-bd7cd0285c4dab38", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434538, "scanner": "foundry_dataset", "fingerprint": "e72c5ce8b13dc05b30b1c9d547cf5a39be8b482f2d51f97556ce75e90c3f3192", "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": "YEONGJUCHO2/MSDS-App#27", "human_labels": ["human_feedback_general"], "issue_number": "27", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-78d9854712659067", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#27\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#27\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6c7ba9ba68240483\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/27\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/27\\nTitle: Fill component names from CAS lookup results\\nBody:\\n## Summary\\n- update component chemical names from official CAS lookup results when extraction leaves them blank or weak\\n- keep watchlist names aligned with the resolved official name\\n- cover missing-name and Korean official-name cases in regulatory matcher tests\\n\\n## Verification\\n- npm test -- --run tests/services/regulatoryMatcher.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1302ab2018482561\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-994a1c1cb1b2d753", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434537, "scanner": "foundry_dataset", "fingerprint": "04b50917688c4b0a0a7880ab2085effe3984c1abcb9af3c2e1da5c047c2f3620", "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": "YEONGJUCHO2/MSDS-App#24", "human_labels": ["api_integration_gap"], "issue_number": "24", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-6da30653768e295f", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#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: YEONGJUCHO2/MSDS-App#24\nRepo: YEONGJUCHO2/MSDS-App\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: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7327c58cc4664578\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/24\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/24\\nTitle: Await Mac mini trigger before upload response\\nBody:\\n## Summary\\n- await the Mac mini trigger call before upload/replacement responses so Vercel serverless does not drop the async request\\n\\n## Verification\\n- npm test -- --run tests/services/macminiTriggerClient.test.ts tests/services/macminiTriggerServer.test.ts tests/services/extractionWorker.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-cfa24a616a6f28ad\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-4ab431754cc2d6af", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434536, "scanner": "foundry_dataset", "fingerprint": "c135792e4419e5b213ca056edfda4d848878e26a90ac5ae65f5f45f1211b0523", "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": "YEONGJUCHO2/MSDS-App#22", "human_labels": ["human_feedback_general"], "issue_number": "22", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-3be490c0a39b9afc", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#22\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#22\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-df666b51c68c7866\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/22\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/22\\nTitle: Document Mac mini worker boundary\\nBody:\\n## Summary\\n- clarify that company PCs are browser-only clients\\n- document the Mac mini LaunchAgent checkout and logs\\n- note why the worker runs outside ~/Documents\\n\\n## Verification\\n- LaunchAgent plist linted with plutil\\n- launchctl reports com.msds.extraction-worker running\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3edc80813f572054\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-11d127b8d42dcfee", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434535, "scanner": "foundry_dataset", "fingerprint": "1f21ef73e770c769c59e02c43dba2c23ea08cd7e8b3dadae6b65bc5284a9464f", "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": "YEONGJUCHO2/MSDS-App#2", "human_labels": ["security_auth_secret"], "issue_number": "2", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.645, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-5a9e2a2bfa54364a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#2\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: YEONGJUCHO2/MSDS-App#2\nRepo: YEONGJUCHO2/MSDS-App\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: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ab2740f488f2b530\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/2\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/2\\nTitle: [codex] Add MSDS review lifecycle\\nBody:\\n## Summary\\n- Add MSDS document review lifecycle with needs-review/approved handling and replacement upload flow.\\n- Add dashboard/MSDS/date/status filters, attachment opening controls, rename interaction, and site MSDS management warnings.\\n- Improve MSDS text extraction for XLSX shared strings and Korean basic info parsing, plus CORS support for local Vite ports.\\n- Add revision and designer handoff documentation.\\n\\n## Validation\\n- npm test\\n- npm run build\\n- Production deployment verified at https://msds-app-beta.vercel.app\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7693c4ca556d5a5b\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-bf3ce425d6e63731", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434534, "scanner": "foundry_dataset", "fingerprint": "c8ed6a44c3d79df09344af03513b4dae719d89a437ae0643b0e49400c652c024", "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": "YEONGJUCHO2/MSDS-App#18", "human_labels": ["human_feedback_general"], "issue_number": "18", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.627, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-1d04191c56d0f38a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#18\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#18\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4e90e4e787f9e651\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/18\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/18\\nTitle: Stabilize MSDS browser E2E flow\\nBody:\\n## Summary\\n- make the browser E2E upload use a unique in-memory filename to avoid collisions with prior QA data\\n- use visible site cards/detail sections instead of ambiguous global text assertions\\n\\n## Verification\\n- E2E_RUN_MSDS_FLOW=true E2E_BASE_URL=https://msds.tstools.kr E2E_SAMPLE_MSDS=... npm run test:e2e\\n- npm test -- tests/services/productsList.test.ts tests/services/documentStorage.test.ts tests/services/connection.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-50039f942d2a7285\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-98d69f29c87299f2", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434533, "scanner": "foundry_dataset", "fingerprint": "43dc29930f0c229b51669b051cd0e9f374b881503b65298c8b9ab8b720ab2c86", "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": "YEONGJUCHO2/MSDS-App#13", "human_labels": ["data_schema_persistence"], "issue_number": "13", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-8dcb3a21e0ad1bc3", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#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: YEONGJUCHO2/MSDS-App#13\nRepo: YEONGJUCHO2/MSDS-App\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: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-07a2e7d7dc9fee67\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/13\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/13\\nTitle: Add Vercel Blob persistence for production\\nBody:\\n## Summary\\n- add private Vercel Blob-backed document storage for production uploads\\n- sync the SQLite database file to private Vercel Blob on mutating API responses\\n- document the Blob snapshot safety net and keep the long-term DB requirement explicit\\n\\n## Verification\\n- npm test\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-420ad7a8a8bbe938\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-66770e984a2899ee", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 434532, "scanner": "foundry_dataset", "fingerprint": "f9f68b5e79d8bf81d994365fbaf2ecb44541966831178203a798a508531dad87", "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": "YEONGJUCHO2/MSDS-App#1", "human_labels": ["data_schema_persistence"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-70dbf35e1c5588dc", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#1\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_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#1\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-04c11afff3465606\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/1\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/1\\nTitle: [codex] cloud mvp foundation and site slot filtering\\nBody:\\n## What changed\\n\\n- Locked the trusted-tester cloud MVP direction around Vercel, Supabase, and OpenAI.\\n- Added the cloud MVP implementation plan and setup documentation.\\n- Introduced storage/repository boundaries and Supabase schema for the cloud path.\\n- Improved upload routing and partial-failure handling.\\n- Simplified the product/site management UI so site selection is a horizontal slot selector and `MSDS\ubcc4 \uc5f0\uacb0 \ud604\ud669` only shows the selected site's MSDS rows.\\n\\n## Why\\n\\nThe app needed a clean path from local review tooling to a deployable trusted-tester cloud version, and the site management screen was duplicating information in a way that grew awkwardly as sites increased.\\n\\n## Impact\\n\\n- Testers can follow the documented cloud setup path.\\n- Site management is more compact: selecting a site directly filters the MSDS connection list.\\n- The removed selected-site summary/modal flow reduces duplicated UI and avoids oversized cards as site count g\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8c604a6c8a16d65c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-assumption_checks-abf8c4a8091aba20", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457934, "scanner": "foundry_dataset", "fingerprint": "23240c76f590ba9ce86292a7558bcc99dc69a04610c482ea8a926cabc02c4493", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 1, "test_ci_gap": 1, "docs_or_claims": 4, "source_or_other": 3, "ci_success_signal": 1, "deployment_env_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_success_signal": 2}, "synthetic": false, "edge_count": 54, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "comment_chain_has_ci": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 23, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 9, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#64", "issue_number": "64", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-f784ac855ebd5bde", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 5, "docs_or_claims": 20, "source_or_other": 15, "dependency_or_build": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#64\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#64\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#64\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 64\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 54\nNode types: {'pr_file': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 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, 'comment_chain_links_commit': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'docs_or_claims': 4, 'source_or_other': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'dependency_or_build': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'ci_success_signal': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {'ci_success_signal': 2}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-5268b5292aa0cc4c", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457933, "scanner": "foundry_dataset", "fingerprint": "30c7bc7b1adfd23917839a487f38ac5984cdb84df6bcae44f0f15eea354c4812", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 4, "test_ci_gap": 1, "ui_or_frontend": 3, "source_or_other": 1, "security_or_auth": 1, "deployment_env_gap": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 4, "comment_has_related_commit_context": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 8}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 54, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 2, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 22, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 9, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#62", "issue_number": "62", "quality_tiers": {"high_confidence": 3, "weak_supervision": 1}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-01ed1a2da925f3d7", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 20, "ui_or_frontend": 15, "source_or_other": 5, "security_or_auth": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#62\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#62\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#62\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 62\nGraph consistency label: supported_by_high_confidence_link\nNodes: 22\nEdges: 54\nNode types: {'pr_file': 9, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 9, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_links_commit': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 4, 'ambiguous_needs_more_evidence': 4, 'ui_or_frontend': 3, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'security_or_auth': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-6f7f2c35ce5a90a8", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457932, "scanner": "foundry_dataset", "fingerprint": "761475849cf050f294b9d4e6b473f7da5ba9382691101bf8a77156caa2034935", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 6, "test_ci_gap": 1, "api_or_backend": 3, "docs_or_claims": 27, "schema_or_data": 3, "source_or_other": 12, "security_or_auth": 9, "deployment_env_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 114, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 61, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 74, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "pr_file": 61, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#54", "issue_number": "54", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-521b473b516936e9", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 30, "api_or_backend": 15, "docs_or_claims": 135, "schema_or_data": 15, "source_or_other": 60, "security_or_auth": 45, "dependency_or_build": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#54\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#54\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#54\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 54\nGraph consistency label: weak_supervision_needs_review\nNodes: 74\nEdges: 114\nNode types: {'pr_file': 61, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 61, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'docs_or_claims': 27, 'source_or_other': 12, 'security_or_auth': 9, 'test_or_ci': 6, 'schema_or_data': 3, 'api_or_backend': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'dependency_or_build': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-24cb210a2fe8ae27", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457931, "scanner": "foundry_dataset", "fingerprint": "1384d985ad1b362e3c077ec91942fb8bc32520a38b1668839d30bc45ac8c7a8d", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_ci_gap": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#33", "issue_number": "33", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-5abb148a6d9405ca", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#33\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#33\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#33\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 33\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-9118cc4ec359ec7a", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457930, "scanner": "foundry_dataset", "fingerprint": "b09f926208430034abee7a870730efa9288479b76297a43e2abe8a049b1ff961", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "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": "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": 13, "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": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#32", "issue_number": "32", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-0d3582dab4b400c1", "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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#32\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#32\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#32\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 32\nGraph consistency label: supported_by_verification_signal\nNodes: 11\nEdges: 13\nNode types: {'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'comment_chain_links_commit': 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: {'claimed_resolved_with_verification_signal': 3, '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, 'verification_or_tests': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-f4e045e4345126d1", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457929, "scanner": "foundry_dataset", "fingerprint": "0f0b6fb6af4f92dc4176b73b052f70a60ca21ff9dc5851b832f7b279f2df10d3", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_ci_gap": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#31", "issue_number": "31", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-7aee557bdc6215e1", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#31\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#31\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#31\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 31\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-8c86a82dc6ad2a44", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457928, "scanner": "foundry_dataset", "fingerprint": "cfd1305889a82d0017511f4dcdca8723ca82bae5a6d9b142ebc7a3d49a52753b", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_ci_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#20", "issue_number": "20", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-23a5f0f50f484965", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#20\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#20\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#20\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 20\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-b83e369de39ec49f", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457927, "scanner": "foundry_dataset", "fingerprint": "c79efb3eec18c19fad0c4f817f6a2e774da87a786248f0968c9c76997ecf2e71", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "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": "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": 13, "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": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#19", "issue_number": "19", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-bec93afd02bb293a", "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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#19\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#19\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#19\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 19\nGraph consistency label: supported_by_verification_signal\nNodes: 11\nEdges: 13\nNode types: {'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'comment_chain_links_commit': 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: {'claimed_resolved_with_verification_signal': 3, '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, 'verification_or_tests': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-cc7556304509ea7e", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 457926, "scanner": "foundry_dataset", "fingerprint": "1433c2baa63a24d0bd7e18c2a8475f2746bed79caab5e23f49625c16ca98c382", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "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": "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": 13, "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": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#17", "issue_number": "17", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-00c79b51999ade98", "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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#17\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#17\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#17\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 17\nGraph consistency label: supported_by_verification_signal\nNodes: 11\nEdges: 13\nNode types: {'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'comment_chain_links_commit': 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: {'claimed_resolved_with_verification_signal': 3, '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, 'verification_or_tests': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-5c83be3c8a570dcd", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452862, "scanner": "foundry_dataset", "fingerprint": "08aaf69667e3e77f712ecbeb9114d80fedc6a49d88e124c0f13c20d8819e96dd", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#6", "issue_number": "6", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-2e273c31463a3362", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#6\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#6\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#6\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 6\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-f1c976e0754d86c1", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452861, "scanner": "foundry_dataset", "fingerprint": "7830a9b65e26f9923e810994ec253503a5b81aa4161ba50ffc6b46bb1ac90bb3", "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, "test_or_ci": 1, "api_or_backend": 1, "deployment_env_gap": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "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": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 2, "comment_chain_links_commit": 4, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 18, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 2, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#57", "issue_number": "57", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6aa4e75aa5f08ae4", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 5, "api_or_backend": 5}}, "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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#57\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#57\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#57\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 57\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 28\nNode types: {'commit': 4, 'link_quality': 4, 'comment': 2, 'pr_file': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 4, 'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_touches_file': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_issue_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, 'data_schema_persistence': 1, 'deployment_env_gap': 1, 'api_or_backend': 1, 'test_or_ci': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 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- 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-423b94a4b7837e90", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452860, "scanner": "foundry_dataset", "fingerprint": "c90c77093f15571b014b772172891dbe4c57e936a4192f543b2c139094cfb3b4", "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": {"test_or_ci": 18, "api_or_backend": 10, "docs_or_claims": 1, "schema_or_data": 13, "ui_or_frontend": 5, "source_or_other": 4, "data_schema_persistence": 2, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 103, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 51, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 63, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 51, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#56", "issue_number": "56", "quality_tiers": {"unresolved": 4}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-296909024e43bcbc", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 90, "api_or_backend": 50, "docs_or_claims": 5, "schema_or_data": 65, "ui_or_frontend": 25, "source_or_other": 20}}, "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#56\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#56\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#56\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 56\nGraph consistency label: needs_more_evidence\nNodes: 63\nEdges: 103\nNode types: {'pr_file': 51, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 51, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 18, 'schema_or_data': 13, 'api_or_backend': 10, 'ui_or_frontend': 5, 'source_or_other': 4, 'not_resolved_or_not_observed': 4, 'data_schema_persistence': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'docs_or_claims': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 4}\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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-753e2264b2634867", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452859, "scanner": "foundry_dataset", "fingerprint": "baf196fd5c47e8640a075e0efc6c94ae21be0eafbd5dfee7b156e50670be5cb7", "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": 1, "api_or_backend": 1, "verification_or_tests": 1, "data_schema_persistence": 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": 16, "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": 2, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "commit": 2, "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": "YEONGJUCHO2/MSDS-App#52", "issue_number": "52", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-817ec315672bff82", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"api_or_backend": 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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#52\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#52\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#52\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 52\nGraph consistency label: supported_by_verification_signal\nNodes: 12\nEdges: 16\nNode types: {'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, '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: {'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'api_or_backend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-0d823e31814fb3ad", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452858, "scanner": "foundry_dataset", "fingerprint": "6b4069c8f3db70a94a6f6dfe28bc6d1953c8b11de2e6f8e95e20178f0a705591", "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": {"docs_or_claims": 10, "source_or_other": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 44, "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_touches_file": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "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": "YEONGJUCHO2/MSDS-App#46", "issue_number": "46", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-9d0c439fd53edff4", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"docs_or_claims": 40, "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#46\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 46\nGraph consistency label: needs_more_evidence\nNodes: 20\nEdges: 44\nNode types: {'pr_file': 11, '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, '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: {'docs_or_claims': 10, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-e2cc0b0508369c42", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452857, "scanner": "foundry_dataset", "fingerprint": "96864ebb33455e056d6736b60a8c0c0d80a08c0930ae5a85a580cac62f6b6073", "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": {"verification_or_tests": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#44", "issue_number": "44", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ee7c7844acd63553", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#44\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#44\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#44\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 44\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-8d7a996a7d4e36ef", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452856, "scanner": "foundry_dataset", "fingerprint": "0e256b25f588e9bb63d99acaa5a302a224b3bfecd75290f05480228562d56f3b", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#43", "issue_number": "43", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-125d374728bb025c", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#43\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#43\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#43\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 43\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-85beedc514ca7674", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452855, "scanner": "foundry_dataset", "fingerprint": "51a6de4a2c27547de4f1d187df06a007b6fd38e7e4486b4d8f2414b34d72ed53", "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": {"verification_or_tests": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#42", "issue_number": "42", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-52ad8c1f59d0dfc2", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#42\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#42\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#42\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 42\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-fd8150bc2bfd3950", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452854, "scanner": "foundry_dataset", "fingerprint": "671f9c05b0929e2dacd2c25c41cfc469daed29512c8080e9f5945d039f988dd9", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#26", "issue_number": "26", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-93afd514ab5111e4", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#26\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#26\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#26\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 26\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-fb8b376fef974ffd", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452853, "scanner": "foundry_dataset", "fingerprint": "a41bdb3b07864c392517b3b7be67bac5381de921ac79b56192e9ee87d45db8dc", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#25", "issue_number": "25", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8e36593099109fa9", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#25\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#25\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#25\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 25\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-88efe1fcf28c54fc", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452852, "scanner": "foundry_dataset", "fingerprint": "917d3fe20edbdace9c8bf595bfdca69edbf82715cceb643d45a6de0c1e2a1f4e", "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": 1, "data_schema_persistence": 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": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#13", "issue_number": "13", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-046339cec1e6dc01", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#13\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#13\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#13\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 13\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-bbebe54ff2164aa7", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452851, "scanner": "foundry_dataset", "fingerprint": "598b37c04fda65fe54e5ae44a44453590c38c80290563d34496244a680fecb3d", "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": {"data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#12", "issue_number": "12", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-d1518b98b294bac4", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#12\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#12\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#12\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 12\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-280d2999852bafa8", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452850, "scanner": "foundry_dataset", "fingerprint": "692a6faf5a7a93d0d30877d3ab5597b0f5b5df74adf3520a3d488fb5e6f9ceb0", "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": 1, "verification_or_tests": 1, "data_schema_persistence": 2, "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": "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": 20, "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": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 14, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#11", "issue_number": "11", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-b3119548d1fbf677", "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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#11\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#11\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#11\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 11\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 4, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_with_verification_signal': 4, 'data_schema_persistence': 2, 'human_reported_issue_then_verified_fix_attempt': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'verification_or_tests': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 8}\nQuality tiers: {'weak_supervision': 4}\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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-19a9ae76d0faf89e", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 452849, "scanner": "foundry_dataset", "fingerprint": "1385f7d2ef3e8da6a7b92c028062847c79411738861dcd4c95fc181ba1b031b7", "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": {"verification_or_tests": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#1", "issue_number": "1", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-731f5ec772e997dc", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#1\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#1\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-239794b31cd4afd3", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 450618, "scanner": "foundry_dataset", "fingerprint": "c03d523efa4af29abad8e8b16ef63cc91425b6c994cfa47a0ba5abbc0e463aa7", "category": "practices", "severity": "high", "confidence": 0.8, "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": "Docs-only response to runtime or integration issue", "intent": "Assumption-check examples where docs or claims are not enough proof.", "labels": {"docs_or_claims": 10, "source_or_other": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "docs_only_runtime_fix", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 44, "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_touches_file": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "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": "YEONGJUCHO2/MSDS-App#46", "issue_number": "46", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ce8cce8f770320ce", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"docs_or_claims": 40, "source_or_other": 4}}, "text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#46\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 46\nGraph consistency label: needs_more_evidence\nNodes: 20\nEdges: 44\nNode types: {'pr_file': 11, '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, '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: {'docs_or_claims': 10, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train models to reject docs-only fixes for runtime, integration, data, or security failures.\n- Add paired examples where the correct fix changes executable paths and adds verification.\nAssumption checks:\n- Do changed files include executable code or only documentation/claims?\n- Does the complaint require runtime behavior that docs cannot prove?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-90a934d0b62c9908", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/docs_only_runtime_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442015, "scanner": "foundry_dataset", "fingerprint": "5d7b4e134947dd65e73c00cd2dea3b8730032b8cc652b3faa18290bb5356226d", "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": "YEONGJUCHO2/MSDS-App#8", "human_labels": ["api_integration_gap"], "issue_number": "8", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-99297580783b204d", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#8\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#8\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-83bf5953ddba6ae7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/8\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/8\\nTitle: [codex] Trace PDF worker for Vercel uploads\\nBody:\\n## Summary\\n- trace the pdfjs worker from the Vercel API entry so PDF uploads can parse on serverless\\n- add a regression test for the serverless bundle tracing requirements\\n\\n## Tests\\n- npm test -- tests/services/vercelConfig.test.ts\\n- npm run build\\n- vercel build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-85ed63b95def5da6\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-4577c5967ada1f21", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442014, "scanner": "foundry_dataset", "fingerprint": "0ced828c27ca139f421e981e636e4ead2b4bba0921c40c71da10f45f3e7d1987", "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": "YEONGJUCHO2/MSDS-App#7", "human_labels": ["mock_placeholder"], "issue_number": "7", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-1bafe32a0be68b63", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#7\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#7\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f6f3b821f23035c3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/7\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/7\\nTitle: [codex] exclude local storage from Vercel deploy\\nBody:\\n## Summary\\n- Exclude local SQLite databases and uploaded files from Vercel deployments.\\n- Keep production demo deployments from booting with local dummy MSDS data.\\n\\n## Validation\\n- `npm run build`\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-6a163426b324f69e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-3d5b759b84fc123f", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442013, "scanner": "foundry_dataset", "fingerprint": "6425bc76c670c25f6086ce02b9f406edaa2c44d7b0554d9da4c0054d823d1433", "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": "YEONGJUCHO2/MSDS-App#6", "human_labels": ["data_schema_persistence"], "issue_number": "6", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-40976e6dcb9e8d21", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#6\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#6\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2264a6f565dd2133\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/6\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/6\\nTitle: [codex] fix Vercel writable database storage\\nBody:\\n## Summary\\n- Move default Vercel SQLite storage to `/tmp` so serverless functions can write.\\n- Copy the bundled demo database into writable storage on first Vercel invocation.\\n- Add connection tests for Vercel storage resolution and bundled DB copy behavior.\\n\\n## Why\\nProduction testing showed `/api/watchlist` failed with `attempt to write a readonly database` because GET cleanup attempted to prune orphan watchlist rows against the bundled read-only DB.\\n\\n## Validation\\n- `npm test -- tests/services/connection.test.ts tests/services/watchlistAutoRecheck.test.ts`\\n- `npm run build`\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-46578e527450fbb4\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-ab4aab81b03fad21", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442012, "scanner": "foundry_dataset", "fingerprint": "8fc5eadad7932c2e3a622fcc955ac45aa59b69fc89e7fac1045a2308c4c292b1", "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": "YEONGJUCHO2/MSDS-App#56", "human_labels": ["api_or_backend", "data_schema_persistence", "docs_or_claims", "schema_or_data", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "56", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b4f7797086c5d905", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 51, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 18, "api_or_backend": 10, "docs_or_claims": 1, "schema_or_data": 13, "ui_or_frontend": 5, "source_or_other": 4}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#56\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#56\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 51\nLabels: {'data_schema_persistence': 2}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 1, 'schema_or_data': 13, 'source_or_other': 4, 'api_or_backend': 10, 'ui_or_frontend': 5, 'test_or_ci': 18}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b23bbbf78ec3cf12\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/56\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/56\\nTitle: fix: harden postgres migration QA flows\\nBody:\\n## Summary\\n- harden MSDS bulk deletion with immediate UI removal and bounded background cleanup\\n- keep upload batch processing at 5 and cover upload/delete overlap behavior\\n- require KECO, KOSHA law, and KOSHA MSDS lookup coverage\\n- record 04 harness production QA follow-up evidence and remaining job-queue optimization work\\n\\n## Verification\\n- npm run lint\\n- npm run test\\n- npm run build\\n- production upload/delete spot checks recorded in 04 harness follow-up logs\"\n  },\n  {\n    \"id\": \"github-feedback-comment-afaa99b7a02ffa39\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/56#issuecomment-4582059573\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/56#issuecomment-4582059573\\nTitle: \\nBody:\\n[vc]: #Lv5UusfhogpDSrFJiv171egVU8vMb0VMjylaqe9z7aE=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc2RzLWFwcCIsInByb2plY3RJZCI6InByal9LMFNvYmZtYm5BaTJGU2VYRFNMeWdYU0YwVFppIiwiaW5zcGVjdG9yVXJsIjoiaHR0cHM6Ly92ZXJjZWwuY29tL3llb25nanUtY2hvcy1wcm9qZWN0cy9tc2RzLWFwcC83OUJLc3FlOHhSOUhHOVJwNE5nTTFyaVpYWmlrIiwicHJldmlld1VybCI6Im1zZHMtYXBwLWdpdC1mZWF0LTA0LXBvc3RncmVzLW1pZ3ItYzk1Y2RjLXllb25nanUtY2hvcy1wcm9qZWN0cy52ZXJjZWwuYXBwIiwibmV4dENvbW1pdFN0YXR1cyI6IkRFUExPWUVEIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6Im1zZHMtYXBwLWdpdC1\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-a7f5bbead8c5e1b8", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442011, "scanner": "foundry_dataset", "fingerprint": "f265c1fca41b9ea5123cee76e3e44020a4a3a23590d7151d5ae0c47a98941ded", "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": "YEONGJUCHO2/MSDS-App#55", "human_labels": ["api_or_backend", "deployment_env_gap", "docs_or_claims", "mock_placeholder", "source_or_other", "test_or_ci"], "issue_number": "55", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-99912322ead4a7dd", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 13, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 2, "api_or_backend": 1, "docs_or_claims": 8, "source_or_other": 2}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#55\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#55\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 13\nLabels: {'mock_placeholder': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 8, 'source_or_other': 2, 'api_or_backend': 1, 'test_or_ci': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-40f6a3e91f9042ac\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/55\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/55\\nTitle: [codex] Add performance baseline phase\\nBody:\\n## Summary\\n\\n- Added and completed the `performance-baseline` harness phase.\\n- Documented performance principles, failure-first handling, and next optimization priorities in the project journal and docs.\\n- Added opt-in sanitized API timing logs behind `VITE_ENABLE_API_TIMING=true`.\\n- Added mock-based user-flow performance baseline coverage for login data load, MSDS detail load, deletion feedback, and upload concurrency/progress.\\n\\n## Why\\n\\nThe next optimization work needs a stable baseline before changing chunking, API shape, delete behavior, or upload concurrency. This keeps tradeoffs visible and gives later changes a comparison point.\\n\\n## Validation\\n\\n- `npm run lint` passed\\n- `npm run test` passed: 88 files, 316 tests\\n- `npm run build` passed\\n- Existing Vite chunk warning remains and is recorded as baseline: JS about 505 kB, gzip about 141 kB\\n\\n## Notes\\n\\nReal-browser e2e performance measurement was not run because the required sample MSDS/test-data env was \"\n  },\n  {\n    \"id\": \"github-feedback-comment-6a385b6f94a6bad8\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/55#issuecomment-4562776320\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/55#issuecomment-4562776320\\nTitle: \\nBody:\\n[vc]: #nErAVbvFA8kUH1P3x8kxwwpSPArAoGlrxjmEYnKDUxQ=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJtc\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-e823c1128ec0ca0d", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442010, "scanner": "foundry_dataset", "fingerprint": "744cf919adac414ae8f635c549042e3d49e62b806166845f7c55cd6d049bf721", "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": "YEONGJUCHO2/MSDS-App#53", "human_labels": ["api_or_backend", "dependency_or_build", "docs_or_claims", "schema_or_data", "security_auth_secret", "security_or_auth", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "53", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-a041929c3b9e7bc5", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 100, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 31, "api_or_backend": 27, "docs_or_claims": 11, "schema_or_data": 5, "ui_or_frontend": 5, "source_or_other": 11, "security_or_auth": 8, "dependency_or_build": 2}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#53\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#53\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 100\nLabels: {'security_auth_secret': 2}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 11, 'source_or_other': 11, 'schema_or_data': 5, 'security_or_auth': 8, 'dependency_or_build': 2, 'api_or_backend': 27, 'ui_or_frontend': 5, 'test_or_ci': 31}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-efbd114cea352776\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/53\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/53\\nTitle: [codex] stabilize Supabase auth and postgres branch\\nBody:\\n## Summary\\n- Brings the postgres-auth reset branch up to the latest `origin/main` so production fixes and the Supabase egress incident documentation are no longer split from the auth work.\\n- Fixes Supabase OAuth client configuration handling by supporting `VITE_SUPABASE_PUBLISHABLE_KEY` with `VITE_SUPABASE_ANON_KEY` as a legacy fallback and surfacing missing env names in the login screen.\\n- Loads `.env.local` for the local API server and keeps API route tests pinned to local storage when developer machines have Supabase storage envs set.\\n\\n## Environment cleanup\\n- Pushed branch: `codex/postgres-auth-reset-oauth-fix`\\n- Added Vercel Preview env for this branch only: `VITE_SUPABASE_URL`, `VITE_SUPABASE_PUBLISHABLE_KEY`\\n- Did not copy production `DATABASE_URL` or `SUPABASE_SERVICE_ROLE_KEY` into Preview, to avoid giving unreviewed preview code access to production data.\\n\\n## Validation\\n- `npm run lint`\\n- `npm run test`\\n- `npm run build`\\n- Produ\"\n  },\n  {\n    \"id\": \"github-feedback-comment-f6087c4bbde1025f\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/53#issuecomment-4544187440\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: issue_comment\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/53#issuecomment-4544187440\\nTitle: \\nBody:\\n[vc]: #th8cVx4BeE4kHZCyawBVn6sl30fHm3YQcvdIWwGGtQ4=:\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-3c79640c3dee1912", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442009, "scanner": "foundry_dataset", "fingerprint": "dde9a538c21e2ef44ccf5e2c3cc0e2af985c600e0d6447d79c7a4109d3cbf008", "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": "YEONGJUCHO2/MSDS-App#51", "human_labels": ["agent_instruction_gap", "api_or_backend", "test_or_ci"], "issue_number": "51", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-bb0a3384aefdf180", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#51\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#51\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 1, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-487ce967f89f4f0b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/51\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/51\\nTitle: [codex] fix work instruction truncation\\nBody:\\n## Summary\\n- Prevent work-instruction first-aid text from rendering mid-sentence ellipses.\\n- Preserve the management-instruction table geometry while tightening bullet line spacing so SC-MT content fits on one slide.\\n- Add a regression test for the SC-MT skin-contact case.\\n\\n## Root Cause\\nThe PPTX renderer truncated long work-instruction emergency text with an ellipsis when it could not find a sentence boundary before the length limit. SC-MT skin-contact text has a complete instruction ending at `\uc138\ud0c1\ud558\uc2dc\uc624` followed by another instruction, so the renderer showed an incomplete `\uc989\uc2dc \uc758\uc0ac\uc758 \uce58\ub8cc\ub97c\u2026` fragment.\\n\\n## Validation\\n- `npm test -- tests/services/safetyMaterialRenderer.test.ts`\\n- `npm run build`\\n- `npm test`\\n- Generated a SC-MT preview PPTX and inspected it in Keynote because PowerPoint is not installed locally.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-6ac73385fdcd5f39\",\n    \"filename\": \"server/services/safetyMaterialPptxRenderer.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 20,\n    \"deletions\": 8,\n    \"changes\": 28,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/7cad33dc8789c2404a8100f55a9d1a973cb63c85/server%2Fservices%2FsafetyMaterialPptxRenderer.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-777735b45123f483\",\n    \"filename\": \"tests/services/safetyMaterialRenderer.test.ts\",\n    \"label\": \"test_or_ci\",\n    \"status\": \"modified\",\n    \"additions\": 21,\n    \"deletions\": 0,\n    \"changes\": 21,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/7cad33dc8789c2404a8100f55a9d1a973cb63c85/tests%2Fservices%2FsafetyMaterialRenderer.test.ts\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-co\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-cf1b20cfd9e97afc", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442008, "scanner": "foundry_dataset", "fingerprint": "839624b931b33077cf9678c957fb0123d8cad67ffe00078b52bcae1c86fe5814", "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": "YEONGJUCHO2/MSDS-App#48", "human_labels": ["agent_instruction_gap", "api_or_backend", "docs_or_claims", "test_or_ci"], "issue_number": "48", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c952c6d8c47ac9cf", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 1, "docs_or_claims": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#48\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#48\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'api_or_backend': 1, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-91f0a9f1c38e1d69\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/48\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/48\\nTitle: [codex] fix safety PPTX font and layout standard\\nBody:\\n## Summary\\n- Switch safety material PPTX font normalization from Pretendard to the standard Malgun Gothic / \ub9d1\uc740 \uace0\ub515 specified in design.md.\\n- Document that custom/web fonts such as Pretendard must not be used for the work-instruction standard.\\n- Keep CA-13R two-pictogram work-instruction GHS images on the fixed design.md slots instead of using a dense alternate layout.\\n\\n## Validation\\n- `npm test -- tests/services/safetyMaterialRenderer.test.ts`\\n- `npm run build`\\n- `npm run lint`\\n- Generated CA-13R work-instruction PPTX and verified XML for slide size, table/signal-box coordinates, fixed GHS slots, and `\ub9d1\uc740 \uace0\ub515` font references.\\n- Opened the generated PPTX in Keynote and confirmed it stays on one slide with no `?????` text rendering.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-51fcf36d422de667\",\n    \"filename\": \"design.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 1,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/ad57da5c96801c25868ef642b5f2c9637aea84a1/design.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-098c0c130db8de40\",\n    \"filename\": \"server/services/safetyMaterialPptxRenderer.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 7,\n    \"deletions\": 9,\n    \"changes\": 16,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/ad57da5c96801c25868ef642b5f2c9637aea84a1/server%2Fservices%2FsafetyMaterialPptxRenderer.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-8dce7b3cda01b9d5\",\n    \"filename\": \"tests/services/safetyMaterialRenderer.test.ts\",\n    \"label\": \"test_or_ci\",\n    \"status\": \"m\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-a615c0c3a445576d", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442007, "scanner": "foundry_dataset", "fingerprint": "4d1c568df971262d38fd457f32e283f5a32fa809527a75be44599139414e962c", "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": "YEONGJUCHO2/MSDS-App#47", "human_labels": ["agent_instruction_gap", "api_or_backend", "dependency_or_build", "docs_or_claims", "schema_or_data", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "47", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f586a1b5fc783bb6", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 71, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 13, "api_or_backend": 43, "docs_or_claims": 6, "schema_or_data": 3, "ui_or_frontend": 2, "source_or_other": 2, "dependency_or_build": 2}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#47\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#47\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 71\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 6, 'dependency_or_build': 2, 'api_or_backend': 43, 'schema_or_data': 3, 'source_or_other': 2, 'ui_or_frontend': 2, 'test_or_ci': 13}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1f961b4947f779f9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/47\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/47\\nTitle: [codex] generate safety materials as pptx only\\nBody:\\n## Summary\\n- Generate safety materials as PPTX-only outputs: warning label and work-process safety instruction.\\n- Remove generated safety material PDF rendering, PDF dependencies, and PDF download exposure.\\n- Preserve the CA-90R work-instruction template structure and use bundled GHS/PPE image assets.\\n- Update product/design/architecture documentation to match the current PPTX-only scope.\\n\\n## Validation\\n- `npm run lint`\\n- `npm test`\\n- `npm run build`\\n\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-abd52b31bb0308bd\",\n    \"filename\": \"MSDS_\uad00\ub9ac\uc790\ub3d9\ud654_\ubcc0\uacbd\uac10\uc2dc_\uc571_\uae30\ud68d\uc548.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 40,\n    \"deletions\": 7,\n    \"changes\": 47,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/ea461af079613a467347e2c7cf6e5a92c06461d2/MSDS_%EA%B4%80%EB%A6%AC%EC%9E%90%EB%8F%99%ED%99%94_%EB%B3%80%EA%B2%BD%EA%B0%90%EC%8B%9C_%EC%95%B1_%EA%B8%B0%ED%9A%8D%EC%95%88.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-357567e42e17d526\",\n    \"filename\": \"design.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 148,\n    \"deletions\": 0,\n    \"changes\": 148,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/ea461af079613a467347e2c7cf6e5a92c06461d2/design.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-47ab6fa0607b6232\",\n    \"filename\": \"docs/README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 1,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/ea461af079613a467347e2c7cf6e5\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-8c6c4a12af103460", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442006, "scanner": "foundry_dataset", "fingerprint": "5e881c90820667594ed08145d52f82597147ba6b69c1144dc3de33feacb17bfe", "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": "YEONGJUCHO2/MSDS-App#46", "human_labels": ["data_schema_persistence", "docs_or_claims", "source_or_other"], "issue_number": "46", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b8c3c71e0fc1fbc3", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 11, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 10, "source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#46\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#46\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 11\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1, 'docs_or_claims': 10}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e781f17cfa3ca0ce\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/46\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/46\\nTitle: Update docs for current production architecture\\nBody:\\n## Summary\\\\n- add a current architecture document for frontend/backend/DB/storage/Gemini flow\\\\n- update project, product, deployment, and docs index to reflect direct Gemini extraction and Supabase Storage persistence\\\\n- mark older worker/deterministic benchmark docs as historical and clarify Mac mini worker fallback status\\\\n- refresh .env.example for current production variables\\\\n\\\\n## Tests\\\\n- npm run lint\\\\n- npm run build\\\\n- git diff --check\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-d006952eadf44b86\",\n    \"filename\": \".env.example\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 14,\n    \"deletions\": 27,\n    \"changes\": 41,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/c37c53615da251d728f78388e46f73c7ff1a53f2/.env.example\"\n  },\n  {\n    \"id\": \"github-pr-file-file-24764db4b4d45f1d\",\n    \"filename\": \"MSDS_\uad00\ub9ac\uc790\ub3d9\ud654_\ubcc0\uacbd\uac10\uc2dc_\uc571_\uae30\ud68d\uc548.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 11,\n    \"deletions\": 12,\n    \"changes\": 23,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/c37c53615da251d728f78388e46f73c7ff1a53f2/MSDS_%EA%B4%80%EB%A6%AC%EC%9E%90%EB%8F%99%ED%99%94_%EB%B3%80%EA%B2%BD%EA%B0%90%EC%8B%9C_%EC%95%B1_%EA%B8%B0%ED%9A%8D%EC%95%88.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-14124a5eeab868ec\",\n    \"filename\": \"PROJECT.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 23,\n    \"deletions\": 9,\n    \"changes\": 32,\n    \"blob_url\": \"https://github.com/YEONGJUCHO2/MSDS-App/blob/c37c53615da251d728f78388e46f73c7ff1a53f2/PROJECT.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-1322c\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-e6b5209055eb8cf4", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442005, "scanner": "foundry_dataset", "fingerprint": "656b4c0780b4f61b4ab77a0c117a3cf7bef7902d3cfa5c8ca1698ac7d94a470f", "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": "YEONGJUCHO2/MSDS-App#43", "human_labels": ["data_schema_persistence"], "issue_number": "43", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-855a02a67f520a2a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#43\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#43\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-3fa61d421520cc0c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/43\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/43\\nTitle: Prefer explicit Supabase storage provider\\nBody:\\n## Summary\\\\n- Make explicit MSDS_STORAGE_PROVIDER=supabase override the automatic Vercel Blob fallback\\\\n- Add regression coverage for Vercel environments that still have BLOB_READ_WRITE_TOKEN configured\\\\n\\\\n## Tests\\\\n- npm test -- tests/services/documentStorage.test.ts tests/services/remoteSnapshot.test.ts\\\\n- npm run lint\\\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4269ea380bb9b2e7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-584b343735e177af", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442004, "scanner": "foundry_dataset", "fingerprint": "eb457f2228bfda6fbefb4004a1c421b9a1dd1bdd5fce64acebe329254d7aa1a2", "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": "YEONGJUCHO2/MSDS-App#41", "human_labels": ["ui_workflow_gap"], "issue_number": "41", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-054f218c869e062f", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#41\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#41\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-aace4833b84c2fbd\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/41\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/41\\nTitle: Hide completed upload popup\\nBody:\\n## Summary\\\\n- Show the floating upload popup only while uploads are actively running\\\\n- Hide the popup after success or failure while keeping inline upload-page results intact\\\\n- Update app layout tests for the new behavior\\\\n\\\\n## Tests\\\\n- npm test -- tests/ui/AppLayout.test.tsx\\\\n- npm test -- tests/ui/UploadPage.test.tsx tests/ui/AppLayout.test.tsx\\\\n- npm run lint\\\\n- npm run build\\\\n- npm test\\\\n- npm run deadcode:strict\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9c313139addb8ea7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-7bc833faa5b742eb", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442003, "scanner": "foundry_dataset", "fingerprint": "8e03191f8d470bd717da623a04fa21cde4be9a0403fc76377a7b69a90edbed8c", "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": "YEONGJUCHO2/MSDS-App#40", "human_labels": ["mock_placeholder"], "issue_number": "40", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.627, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-62c1f4187f8e9327", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#40\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: YEONGJUCHO2/MSDS-App#40\nRepo: YEONGJUCHO2/MSDS-App\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: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b634a832bacde0a3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/40\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/40\\nTitle: Harden upload regulatory lookup loop\\nBody:\\n## Summary\\n- add an end-to-end upload loop regression test that mocks Gemini extraction and official API lookup\\n- assert upload-batch responses include DB-enriched row IDs, official lookup status, and regulatory matches\\n\\n## Verification\\n- npm test\\n- npm run lint\\n- npm run build\\n- npm run deadcode:strict\\n- worker folder targeted loop tests\\n- production upload smoke test on https://msds.tstools.kr confirmed official_api_matched rows\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8adcf8d0b1b32e04\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-aa0cd6f92bacb165", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442002, "scanner": "foundry_dataset", "fingerprint": "4bb555afc4eae9d832bb2e8b2850db770dd310e9e34d64ffe647a21b549c4e83", "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": "YEONGJUCHO2/MSDS-App#4", "human_labels": ["mock_placeholder"], "issue_number": "4", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-fa5246dafff50bc2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 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": 4, "source_artifact_count": 9, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#4\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: YEONGJUCHO2/MSDS-App#4\nRepo: YEONGJUCHO2/MSDS-App\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: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-be54ea5c980cea15\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/4\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/4\\nTitle: fix: harden MSDS review and revision flows\\nBody:\\n## Summary\\n- Preserves document extensions on rename and keeps site-linked MSDS metadata synchronized with renamed/replaced documents.\\n- Persists generated MSDS basic info after upload/replacement so document management opens with saved default fields.\\n- Adds app-level floating progress for uploads and chemical rechecks, including skeleton/spinner states that survive page changes.\\n- Adds review-needed to revision-needed conversion from MSDS document management and syncs revision-needed state into dashboard and site management.\\n- Clears revision-needed site links after a valid replacement MSDS is approved.\\n- Blocks replacement uploads that appear to be a different MSDS product by comparing product identity fields before mutating the existing document.\\n- Removes bundled dummy regulatory seed CSV and adds an explicit seed CLI/env path for real regulatory test data.\\n- Adds QA upload fixture for manual MSDS flow testing.\\n\\n## Test plan\\n- [x] npm test -- test\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d18cba0b6e69ab5a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccu\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-0a8442978befe9c8", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442001, "scanner": "foundry_dataset", "fingerprint": "d7a456265ee310c9648b1a71bbde8437e8ce17db2ff5130f018369576674dcb9", "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": "YEONGJUCHO2/MSDS-App#37", "human_labels": ["deployment_env_gap"], "issue_number": "37", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-dcd3794136be5a2e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#37\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#37\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0b157b0fdf7d8cc6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/37\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/37\\nTitle: Add Gemini fallback extraction gate\\nBody:\\n## Summary\\n- add deployed-app A/B/C benchmark evidence for 10 fresh public MSDS files\\n- adopt deterministic-first extraction with Gemini 2.5 Flash fallback after internal-entry/component confidence gates\\n- remove obsolete Codex/Docling worker tooling and dead code\\n\\n## Verification\\n- npm run build\\n- npm test\\n- npm run lint\\n- npm run deadcode:strict\\n- deployed app A/B/C benchmark: docs/performance/msds-abc-production-report-2026-05-14.md\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3ced443284ffe401\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-8f5ec120609c6ab1", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 442000, "scanner": "foundry_dataset", "fingerprint": "1e80d6621617c931d159e825dd57ed8e5b99ef78f91f477de268d0d31c821b61", "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": "YEONGJUCHO2/MSDS-App#26", "human_labels": ["data_schema_persistence"], "issue_number": "26", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-ece363d9f65e89bd", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#26\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#26\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5b395e70ce4aa19d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/26\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/26\\nTitle: Keep Mac mini extraction worker stateless\\nBody:\\n## Summary\\n- add a worker-only extraction path that builds reviewed rows without writing to the worker SQLite DB\\n- keep production persistence centralized in the extraction-job complete API\\n- avoids local worker DB foreign-key state affecting production job completion\\n\\n## Verification\\n- npm test -- --run tests/services/extractionWorker.test.ts tests/services/processingPipeline.test.ts tests/services/macminiTriggerServer.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-20b9bef0b89947eb\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-84a96924156e7dc5", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441999, "scanner": "foundry_dataset", "fingerprint": "bcec814315edbb566586d5465c8f5f9937a21b83b79e6dabd30f029733facfea", "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": "YEONGJUCHO2/MSDS-App#25", "human_labels": ["data_schema_persistence"], "issue_number": "25", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c4b03455946c9ac6", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#25\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#25\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a33a9a63be649f51\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/25\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/25\\nTitle: Serialize remote DB snapshot access\\nBody:\\n## Summary\\n- serialize per-instance DB snapshot restore/persist handling in Express middleware\\n- prevent concurrent worker requests from closing the sqlite connection while another completion request is writing\\n\\n## Verification\\n- npm test -- --run tests/services/macminiTriggerClient.test.ts tests/services/macminiTriggerServer.test.ts tests/services/extractionWorker.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ea1f4e7bcfea3acc\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-01ee911c1c5cb95c", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441998, "scanner": "foundry_dataset", "fingerprint": "22f64e8f97705f69ed43225a431800dff6f53f6dfefb6630a3a1ccd0038b32ea", "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": "YEONGJUCHO2/MSDS-App#23", "human_labels": ["security_auth_secret"], "issue_number": "23", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c98da0473a2e681d", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#23\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#23\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8c8eea2352841204\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/23\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/23\\nTitle: Trigger Mac mini extraction through Tailscale\\nBody:\\n## Summary\\n- add Mac mini trigger server for Tailscale Funnel\\n- call the trigger endpoint after upload/replacement jobs are queued\\n- document Tailscale Funnel operation and add focused tests\\n\\n## Verification\\n- npm test -- --run tests/services/macminiTriggerClient.test.ts tests/services/macminiTriggerServer.test.ts tests/services/extractionWorker.test.ts\\n- npm run build\\n- verified local trigger server health and Tailscale Funnel auth behavior\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a03e7af1ee220d67\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-804e4d291c9a8aea", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441997, "scanner": "foundry_dataset", "fingerprint": "e40ae153f1f1ea2a0e2dd16f192b0b3fa5b0e7e392dc5d238df54be7bff383f9", "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": "YEONGJUCHO2/MSDS-App#20", "human_labels": ["test_ci_gap"], "issue_number": "20", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-884e54e8dedcecd9", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#20\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#20\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a7011bd5cb5d0b47\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/20\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/20\\nTitle: [codex] Fix OpenAI extraction learning context type\\nBody:\\n## Summary\\n- Allow the optional learningContext property on OpenAI extraction input so shared AI reviewer calls type-check in Vercel production builds.\\n\\n## Validation\\n- npm run build\\n- npx vitest run tests/services/openAiAdapter.test.ts tests/services/aiReviewer.test.ts tests/services/codexAdapter.test.ts\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b68d9d766c94d11a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-542bf2cc771410e2", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441996, "scanner": "foundry_dataset", "fingerprint": "e20da643a924554c2580602d26021575715498a72ad976ab0fcab273402dbea4", "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": "YEONGJUCHO2/MSDS-App#16", "human_labels": ["api_integration_gap"], "issue_number": "16", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-d9f09e10fa4182ed", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#16\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#16\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b125fcdd99d3ced3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/16\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/16\\nTitle: Return summarized product after creation\\nBody:\\n## Summary\\n- return the just-created product from the calculated product summaries\\n- keep the immediate product response shape aligned with the products list, including componentCount and queueCount\\n\\n## Verification\\n- npm test\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-886c13f3f3afc007\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-998bb9e39f8a0b94", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441995, "scanner": "foundry_dataset", "fingerprint": "9309d2cf3d978410eaadd15048f2ebaecc82835b2a582e9ed5a4c97ce321ca7f", "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": "YEONGJUCHO2/MSDS-App#15", "human_labels": ["api_integration_gap"], "issue_number": "15", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c235a6531487c7eb", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#15\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#15\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7b07650b10b5e889\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/15\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/15\\nTitle: Clean API 404 route messages\\nBody:\\n## Summary\\n- avoid exposing Vercel rewrite query parameters in unknown API route errors\\n\\n## Verification\\n- npm test -- tests/services/apiRoutes.test.ts\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-2f6ee711ed24e6a9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-4b55dbd3b1b09ccb", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441994, "scanner": "foundry_dataset", "fingerprint": "f5c7532d887828b5e667a7c427103a2263cc7f9a6ce670920c2c9a593b1eb1cf", "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": "YEONGJUCHO2/MSDS-App#14", "human_labels": ["api_integration_gap"], "issue_number": "14", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-e65a667dd0972dc5", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#14\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#14\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8315397a7b083219\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/14\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/14\\nTitle: Return JSON for unknown API routes\\nBody:\\n## Summary\\n- add an API 404 JSON fallback after registered routers\\n- cover unknown API routes with a regression test\\n\\n## Verification\\n- npm test\\n- npm run build\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-58e0fb2393b96c5b\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-0da690f535964639", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441993, "scanner": "foundry_dataset", "fingerprint": "accd2e9fdae08c4ec17db4465eb0a84fc33aebb2ca2d7c6e8c45f7a97e0ba1ed", "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": "YEONGJUCHO2/MSDS-App#12", "human_labels": ["data_schema_persistence"], "issue_number": "12", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-84111e84f266ac65", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#12\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#12\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-976a3c390f687f40\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/12\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/12\\nTitle: Document production persistence gate\\nBody:\\n## Summary\\n- document that Vercel /tmp SQLite is not acceptable for production persistence\\n- add post-deploy checks for documentId readback, queue count consistency, and products consistency\\n- link the production persistence blocker issue\\n\\n## Verification\\n- npm test -- tests/services/connection.test.ts tests/services/documentStorage.test.ts\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c6bd9b18af96632a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-4688c62b85a32ee5", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 441992, "scanner": "foundry_dataset", "fingerprint": "8eb443742d430e7213b2826ca9af6da5e6bc280a25449ce8dcefee1f9e8355c9", "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": "YEONGJUCHO2/MSDS-App#10", "human_labels": ["mock_placeholder"], "issue_number": "10", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-318f90930d911738", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#10\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: YEONGJUCHO2/MSDS-App#10\nRepo: YEONGJUCHO2/MSDS-App\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-30716f05a8b2d760\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/YEONGJUCHO2/MSDS-App/pull/10\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: YEONGJUCHO2/MSDS-App\\nAuthor: YEONGJUCHO2 (User)\\nURL: https://github.com/YEONGJUCHO2/MSDS-App/pull/10\\nTitle: Harden MSDS extraction fallbacks\\nBody:\\n## Summary\\n- fill known chemical names from CAS when AI extraction returns blank or clearly wrong names for sample refractory MSDS rows\\n- skip hazard-section labels such as \uc2e0\ud638\uc5b4 and placeholder \uc815\ubcf4 text when extracting basic supplier/manufacturer fields\\n\\n## Verification\\n- npm test\\n- npm run build\\n- production QA exposed the CA-13R extraction case this covers\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-04f9952250d283ce\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: YEONGJUCHO2/MSDS-App\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 3, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 3, \"docs\": 5, \"generated_claims\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "comment-chain-pattern-bad_chains-f0e76bef91aa52b4", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 455010, "scanner": "foundry_dataset", "fingerprint": "ae333f8fec3518eacae2878f06549d592a30e57bcfd5962334626c7384683153", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#23", "issue_number": "23", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6fd2b2a8a781b6be", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#23\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#23\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#23\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 23\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-60f2b1d68676bbd5", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 455009, "scanner": "foundry_dataset", "fingerprint": "3b9b3c3a62d84817b6c475b2ed25c0936a4cf25935a88a0201dccc79f7c768e5", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 1, "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": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#2", "issue_number": "2", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-5e0e6b592fa34b3f", "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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#2\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#2\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'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, 'bug_fix': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-71fc59944f267fbe", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 451127, "scanner": "foundry_dataset", "fingerprint": "3dffdec71abf583e5bda07a236212f29c2e3a0c2dc1c8fbbb16693ae3ba59611", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#7", "issue_number": "7", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-eae533bea0cde644", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#7\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#7\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#7\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 7\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-e20360478d8aff71", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 451126, "scanner": "foundry_dataset", "fingerprint": "0fe1f5e1d04c750f1d58f81030edd0f55aaef0986e5d79a7d645f73f9cd379af", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 2, "api_or_backend": 1, "docs_or_claims": 8, "source_or_other": 2, "mock_placeholder": 1, "deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 65, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 13, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 25, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 13, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#55", "issue_number": "55", "quality_tiers": {"unresolved": 4}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-cd1762659b931f37", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"test_or_ci": 10, "api_or_backend": 5, "docs_or_claims": 40, "source_or_other": 10}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#55\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#55\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#55\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 55\nGraph consistency label: needs_more_evidence\nNodes: 25\nEdges: 65\nNode types: {'pr_file': 13, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 13, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, '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: {'docs_or_claims': 8, 'not_resolved_or_not_observed': 4, 'source_or_other': 2, 'test_or_ci': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'deployment_env_gap': 1, 'api_or_backend': 1}\nOutcomes: {'not_resolved_or_not_observed': 8}\nQuality tiers: {'unresolved': 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/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-9686c98eb691583f", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 451125, "scanner": "foundry_dataset", "fingerprint": "09386569ae57e94623bfcdf9d48096a32ba68c9d4d3fa072d3674d5d95901152", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 1, "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": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#40", "issue_number": "40", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-948cd72e8d88e317", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#40\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#40\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#40\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 40\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'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, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-9d8ab0cc99f38b97", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 451124, "scanner": "foundry_dataset", "fingerprint": "fd597696a8cf290fad935a143a8db2ca321835bd951c892cedb753c8993a6d52", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 1, "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": 12, "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": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#4", "issue_number": "4", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-a5545d081e01ea8b", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#4\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: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#4\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'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, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-02a4f403c47e192f", "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": "YEONGJUCHO2/MSDS-App", "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: YEONGJUCHO2/MSDS-App"}, "properties": {"repobilityId": 451123, "scanner": "foundry_dataset", "fingerprint": "cc62143c98a0a11c7cf269ae13cea5952e8c53dc8d1aced3c0a759b23e10baa9", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "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, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "YEONGJUCHO2/MSDS-App#10", "issue_number": "10", "quality_tiers": {"unresolved": 3}, "repo_full_name": "YEONGJUCHO2/MSDS-App", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-31467d4471e17838", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#10\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: YEONGJUCHO2/MSDS-App\nThread: YEONGJUCHO2/MSDS-App#10\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: YEONGJUCHO2/MSDS-App#10\nRepo: YEONGJUCHO2/MSDS-App\nIssue/PR number: 10\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/YEONGJUCHO2/MSDS-App", "source_id": "graph-query-motif_query-0f4501d33118015f", "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": "YEONGJUCHO2/MSDS-App", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-1ce9811253491db9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refreshE2eAuthState.ts:56"}, "properties": {"repobilityId": "7ad62d138ebb27a1", "scanner": "scanner-primary", "fingerprint": "1ce9811253491db9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a554b62b04507530", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/buildClaudeDesignPacket.ts:191"}, "properties": {"repobilityId": "add1534b36665a48", "scanner": "scanner-primary", "fingerprint": "a554b62b04507530", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-975e494c0f608e05", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/captureE2eAuthState.ts:39"}, "properties": {"repobilityId": "32658d39565001f1", "scanner": "scanner-primary", "fingerprint": "975e494c0f608e05", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8369898aede2e375", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/index.ts:10"}, "properties": {"repobilityId": "b4961a877930fd2f", "scanner": "scanner-primary", "fingerprint": "8369898aede2e375", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d554e9328356575", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/benchmarkGeminiExtraction.ts:81"}, "properties": {"repobilityId": "ebda2083bcbba1d4", "scanner": "scanner-primary", "fingerprint": "7d554e9328356575", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7616a0568f17875c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/seed.ts:9"}, "properties": {"repobilityId": "d7ca726e1d78acab", "scanner": "scanner-primary", "fingerprint": "7616a0568f17875c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b7ea40d75325ee6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/backfillMvpReview.ts:27"}, "properties": {"repobilityId": "0c7446f8ac614ee6", "scanner": "scanner-primary", "fingerprint": "8b7ea40d75325ee6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-484b9765cec2ca13", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/preflightChemicalApiCache.ts:6"}, "properties": {"repobilityId": "1e9732b49b8b9de4", "scanner": "scanner-primary", "fingerprint": "484b9765cec2ca13", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-a6bdac103b39581e", "level": "note", "message": {"text": "Very large file: tests/services/apiRoutes.test.ts (2018 lines)"}, "properties": {"repobilityId": "a3ed3d72e38d28a6", "scanner": "scanner-primary", "fingerprint": "a6bdac103b39581e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9dd8196049184ba9", "level": "note", "message": {"text": "Very large file: tests/services/regulatoryMatcher.test.ts (1855 lines)"}, "properties": {"repobilityId": "25ce2f8479d4ff83", "scanner": "scanner-primary", "fingerprint": "9dd8196049184ba9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-78a78f4ef76e691a", "level": "note", "message": {"text": "Very large file: src/pages/ReviewPage.tsx (1187 lines)"}, "properties": {"repobilityId": "fe3b13f74ded8b6b", "scanner": "scanner-primary", "fingerprint": "78a78f4ef76e691a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "2befd74b05e15993", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b2565fbd211e94c5", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "3915c03254ff1818", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "2d12851847b1fa03", "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": "a61b384ecce10a8b", "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": "c5be6f2e555ec80f", "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": "5379a149c3e827f0", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-64e91ee4e06e9d1d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: phases/05-regulatory-watch-pipeline/AGENTS.md"}, "properties": {"repobilityId": "5e5694674159e913", "scanner": "scanner-primary", "fingerprint": "64e91ee4e06e9d1d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/05-regulatory-watch-pipeline/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c00dec6fdd9d9a63", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: phases/06-release-defect-hardening/AGENTS.md"}, "properties": {"repobilityId": "a1eab376bf541496", "scanner": "scanner-primary", "fingerprint": "c00dec6fdd9d9a63", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/06-release-defect-hardening/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-909eb64265cce1c7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/hooks.json"}, "properties": {"repobilityId": "6befa6c7c9baca08", "scanner": "scanner-primary", "fingerprint": "909eb64265cce1c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/hooks.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a84d9ae6358b91a4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/execute.py:111"}, "properties": {"repobilityId": "36d66c53e8b772ac", "scanner": "scanner-primary", "fingerprint": "a84d9ae6358b91a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76a5a1e9be79cc6a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/middleware/auth.ts:246"}, "properties": {"repobilityId": "aace465bd7e53b15", "scanner": "scanner-primary", "fingerprint": "76a5a1e9be79cc6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2d6ffa20a9f1093b", "level": "note", "message": {"text": "24 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "880bbf29bf1f87e1", "scanner": "scanner-primary", "fingerprint": "2d6ffa20a9f1093b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-e4156ebc0e13404d", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/usage/report (tests/services/usageRoutes.test.ts:40)"}, "properties": {"repobilityId": "db1f7b33cab600dd", "scanner": "scanner-primary", "fingerprint": "e4156ebc0e13404d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-248a8d247b580597", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/health (tests/services/apiRoutes.test.ts:58)"}, "properties": {"repobilityId": "715542615c287215", "scanner": "scanner-primary", "fingerprint": "248a8d247b580597", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12364812992ae6f2", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/apiRoutes.test.ts:59)"}, "properties": {"repobilityId": "857d3108a8d5c230", "scanner": "scanner-primary", "fingerprint": "12364812992ae6f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d9613fc0e2bd82dc", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/products/from-documents (tests/services/apiRoutes.test.ts:74)"}, "properties": {"repobilityId": "474c8701df444932", "scanner": "scanner-primary", "fingerprint": "d9613fc0e2bd82dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4de109e8bc5ea972", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/imports/regulatory-seeds (tests/services/apiRoutes.test.ts:93)"}, "properties": {"repobilityId": "1ba4742720587b94", "scanner": "scanner-primary", "fingerprint": "4de109e8bc5ea972", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-751d44249267aefc", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck (tests/services/apiRoutes.test.ts:117)"}, "properties": {"repobilityId": "a104a08019cbc254", "scanner": "scanner-primary", "fingerprint": "751d44249267aefc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0b4bb17ff807c65", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck (tests/services/apiRoutes.test.ts:137)"}, "properties": {"repobilityId": "a5ea4b1b920751e0", "scanner": "scanner-primary", "fingerprint": "f0b4bb17ff807c65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9ac024045244080a", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/watchlist/auto-recheck?secret=test-cron-secret (tests/services/apiRoutes.test.ts:153)"}, "properties": {"repobilityId": "fad45cee403d0541", "scanner": "scanner-primary", "fingerprint": "9ac024045244080a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e72f8fa77da34fd", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:172)"}, "properties": {"repobilityId": "ed9e7dadbf94f4ff", "scanner": "scanner-primary", "fingerprint": "5e72f8fa77da34fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-891545069fa74c96", "level": "error", "message": {"text": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:180)"}, "properties": {"repobilityId": "08e2a86b46caaf08", "scanner": "scanner-primary", "fingerprint": "891545069fa74c96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-29c6551df2f25926", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:212)"}, "properties": {"repobilityId": "1dcbd1585909b072", "scanner": "scanner-primary", "fingerprint": "29c6551df2f25926", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a94d772cf85a6a6b", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core (tests/services/apiRoutes.test.ts:234)"}, "properties": {"repobilityId": "bf6984254b1a0beb", "scanner": "scanner-primary", "fingerprint": "a94d772cf85a6a6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-892a213dcb08c5b4", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/detail-core (tests/services/apiRoutes.test.ts:290)"}, "properties": {"repobilityId": "e1a60dad397012c8", "scanner": "scanner-primary", "fingerprint": "892a213dcb08c5b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-acbdc52c491ae5fd", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/missing/detail-core (tests/services/apiRoutes.test.ts:291)"}, "properties": {"repobilityId": "9cb5999e529e59b7", "scanner": "scanner-primary", "fingerprint": "acbdc52c491ae5fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0a25f6788953f42c", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/file (tests/services/apiRoutes.test.ts:313)"}, "properties": {"repobilityId": "f94781742c9ff895", "scanner": "scanner-primary", "fingerprint": "0a25f6788953f42c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6bdbc29e446dfb26", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:333)"}, "properties": {"repobilityId": "52a481ffec41164e", "scanner": "scanner-primary", "fingerprint": "6bdbc29e446dfb26", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a57a1b57ecc76cd5", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:356)"}, "properties": {"repobilityId": "d5de996f6aeefb36", "scanner": "scanner-primary", "fingerprint": "a57a1b57ecc76cd5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba8e421919ab80e0", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-other (tests/services/apiRoutes.test.ts:392)"}, "properties": {"repobilityId": "4d417c8cf67355b2", "scanner": "scanner-primary", "fingerprint": "ba8e421919ab80e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f78cea4b81bb818", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:445)"}, "properties": {"repobilityId": "3b4ea2be10552e62", "scanner": "scanner-primary", "fingerprint": "0f78cea4b81bb818", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2cff810514042be6", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:480)"}, "properties": {"repobilityId": "0105748821622476", "scanner": "scanner-primary", "fingerprint": "2cff810514042be6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d8ead2b0a6535d0", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-delete (tests/services/apiRoutes.test.ts:501)"}, "properties": {"repobilityId": "fe2209a174fa9d46", "scanner": "scanner-primary", "fingerprint": "5d8ead2b0a6535d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a44bc17a94aea334", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-1 (tests/services/apiRoutes.test.ts:537)"}, "properties": {"repobilityId": "46530e31a2555334", "scanner": "scanner-primary", "fingerprint": "a44bc17a94aea334", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a0f733e6bd294b2c", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials (tests/services/apiRoutes.test.ts:569)"}, "properties": {"repobilityId": "9acc1ed0d29f59e0", "scanner": "scanner-primary", "fingerprint": "a0f733e6bd294b2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6d454a64e49feaba", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx (tests/services/apiRoutes.test.ts:570)"}, "properties": {"repobilityId": "6e48f11d01f0a5b9", "scanner": "scanner-primary", "fingerprint": "6d454a64e49feaba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e794002373dae913", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pdf (tests/services/apiRoutes.test.ts:571)"}, "properties": {"repobilityId": "a7b4dc243694772b", "scanner": "scanner-primary", "fingerprint": "e794002373dae913", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-89540589d42051ec", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials (tests/services/apiRoutes.test.ts:604)"}, "properties": {"repobilityId": "e9afd7eb11748ce3", "scanner": "scanner-primary", "fingerprint": "89540589d42051ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d757f5826b97f57b", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/warning-label/pptx (tests/services/apiRoutes.test.ts:605)"}, "properties": {"repobilityId": "88bfa61637fed54e", "scanner": "scanner-primary", "fingerprint": "d757f5826b97f57b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07cd04427dcd24d8", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:630)"}, "properties": {"repobilityId": "0b810ba83a7f901c", "scanner": "scanner-primary", "fingerprint": "07cd04427dcd24d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f130172ce89acf8", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:664)"}, "properties": {"repobilityId": "f11fec81053aa25b", "scanner": "scanner-primary", "fingerprint": "3f130172ce89acf8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a8bc812e61286812", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:699)"}, "properties": {"repobilityId": "7d2dca205d784b81", "scanner": "scanner-primary", "fingerprint": "a8bc812e61286812", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f2154fb80817087", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/replacement (tests/services/apiRoutes.test.ts:737)"}, "properties": {"repobilityId": "d00183286cdb514f", "scanner": "scanner-primary", "fingerprint": "6f2154fb80817087", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9aed1c3e3cbbf292", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:766)"}, "properties": {"repobilityId": "44474cbcb6955979", "scanner": "scanner-primary", "fingerprint": "9aed1c3e3cbbf292", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c114a93569eca516", "level": "error", "message": {"text": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/documents/doc-1/basic-info (tests/services/apiRoutes.test.ts:786)"}, "properties": {"repobilityId": "43384f654f1b1aec", "scanner": "scanner-primary", "fingerprint": "c114a93569eca516", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ec65711f45080e3", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/recheck (tests/services/apiRoutes.test.ts:804)"}, "properties": {"repobilityId": "3020ce59cad46b28", "scanner": "scanner-primary", "fingerprint": "0ec65711f45080e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f540bd3175736b4", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components (tests/services/apiRoutes.test.ts:822)"}, "properties": {"repobilityId": "b865e11b70a05b08", "scanner": "scanner-primary", "fingerprint": "3f540bd3175736b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0427817bf7fa0244", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/watchlist/recheck (tests/services/apiRoutes.test.ts:840)"}, "properties": {"repobilityId": "fb8dcd469858f0bf", "scanner": "scanner-primary", "fingerprint": "0427817bf7fa0244", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7e6ac09eb6ac63d7", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/products (tests/services/apiRoutes.test.ts:858)"}, "properties": {"repobilityId": "b2d9fc24ceb72ab4", "scanner": "scanner-primary", "fingerprint": "7e6ac09eb6ac63d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fb9472b8739936c0", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:885)"}, "properties": {"repobilityId": "d22c1541ef0df710", "scanner": "scanner-primary", "fingerprint": "fb9472b8739936c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e49770fc22a65e3e", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:908)"}, "properties": {"repobilityId": "8bcbbcad7e81f730", "scanner": "scanner-primary", "fingerprint": "e49770fc22a65e3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aed3a33a3f384efb", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:932)"}, "properties": {"repobilityId": "43df495078b117d8", "scanner": "scanner-primary", "fingerprint": "aed3a33a3f384efb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7dcc0ff7f80926bf", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/upload (tests/services/apiRoutes.test.ts:960)"}, "properties": {"repobilityId": "4a5ccedb52c9c243", "scanner": "scanner-primary", "fingerprint": "7dcc0ff7f80926bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a91bf8fbb971c3bc", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/documents/doc-1 (tests/services/apiRoutes.test.ts:981)"}, "properties": {"repobilityId": "d6db1b87920adb25", "scanner": "scanner-primary", "fingerprint": "a91bf8fbb971c3bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-59c968311cefa471", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status (tests/services/apiRoutes.test.ts:1000)"}, "properties": {"repobilityId": "23f042cebc56ae9c", "scanner": "scanner-primary", "fingerprint": "59c968311cefa471", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bfc21f20c4d9488", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status (tests/services/apiRoutes.test.ts:1001)"}, "properties": {"repobilityId": "1e2e6f3d1995039d", "scanner": "scanner-primary", "fingerprint": "5bfc21f20c4d9488", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b36eae81df04b3d0", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-1,job-other (tests/services/apiRoutes.test.ts:1018)"}, "properties": {"repobilityId": "24ad9c1a76fd1519", "scanner": "scanner-primary", "fingerprint": "b36eae81df04b3d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3047eda61fdebdb", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/status?jobIds=job-other (tests/services/apiRoutes.test.ts:1041)"}, "properties": {"repobilityId": "a6ca0e9bd1f70d3e", "scanner": "scanner-primary", "fingerprint": "f3047eda61fdebdb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-84f8a504a97a8c22", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${missingSchemaPort}/api/jobs/drain (tests/services/apiRoutes.test.ts:1060)"}, "properties": {"repobilityId": "5f74e316ccac142b", "scanner": "scanner-primary", "fingerprint": "84f8a504a97a8c22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ffdf71cb75d4e7a", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1069)"}, "properties": {"repobilityId": "d4ffc7c7a1934a62", "scanner": "scanner-primary", "fingerprint": "7ffdf71cb75d4e7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-031c545193728f49", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1070)"}, "properties": {"repobilityId": "610650cae393e56a", "scanner": "scanner-primary", "fingerprint": "031c545193728f49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d9fcf0bc22eff6cc", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/jobs/drain (tests/services/apiRoutes.test.ts:1073)"}, "properties": {"repobilityId": "4dc679e744d298c0", "scanner": "scanner-primary", "fingerprint": "d9fcf0bc22eff6cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9d5f3b0bac100b0b", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/components/row-1/recheck (tests/services/apiRoutes.test.ts:1093)"}, "properties": {"repobilityId": "3aa3c9d424da248b", "scanner": "scanner-primary", "fingerprint": "9d5f3b0bac100b0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6bba8dea4fbc791", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/documents/doc-1/safety-materials/regenerate (tests/services/apiRoutes.test.ts:1119)"}, "properties": {"repobilityId": "3e24d2296b814a89", "scanner": "scanner-primary", "fingerprint": "e6bba8dea4fbc791", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78f9858f1d3f811e", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:65)"}, "properties": {"repobilityId": "21f10c2743877d95", "scanner": "scanner-primary", "fingerprint": "78f9858f1d3f811e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2572364d2d7e88ba", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:93)"}, "properties": {"repobilityId": "bf301c1a6e6195cb", "scanner": "scanner-primary", "fingerprint": "2572364d2d7e88ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a12a0c054a568dab", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/protected (tests/services/auth.test.ts:215)"}, "properties": {"repobilityId": "2f7a43b6e89a6571", "scanner": "scanner-primary", "fingerprint": "a12a0c054a568dab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0bc6269a112b1791", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/health (tests/services/app.test.ts:14)"}, "properties": {"repobilityId": "3ddcd7d2a709fc5b", "scanner": "scanner-primary", "fingerprint": "0bc6269a112b1791", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-326835de0a592b3d", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/app.test.ts:15)"}, "properties": {"repobilityId": "a59ec134f8c5eed5", "scanner": "scanner-primary", "fingerprint": "326835de0a592b3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9054f48a561c97a1", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/documents (tests/services/app.test.ts:49)"}, "properties": {"repobilityId": "ee6110b0c6d09e02", "scanner": "scanner-primary", "fingerprint": "9054f48a561c97a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ad24e00765553a91", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(input.model)}:generateContent (server/services/geminiMsdsExtractor.ts:254)"}, "properties": {"repobilityId": "2ba37cd33b29b616", "scanner": "scanner-primary", "fingerprint": "ad24e00765553a91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9aa157aba11c17f7", "level": "error", "message": {"text": "Dangling fetch: GET /api/documents (src/api/client.ts:288)"}, "properties": {"repobilityId": "b73f4f122cf21c30", "scanner": "scanner-primary", "fingerprint": "9aa157aba11c17f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-50c14d2c6e63543a", "level": "error", "message": {"text": "Dangling fetch: GET /api/documents/${documentId}/safety-materials (src/api/client.ts:296)"}, "properties": {"repobilityId": "3d98c4a2b48debee", "scanner": "scanner-primary", "fingerprint": "50c14d2c6e63543a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9b95279d53d9947", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/documents/${documentId} (src/api/client.ts:300)"}, "properties": {"repobilityId": "ef6d6385ad47c70f", "scanner": "scanner-primary", "fingerprint": "c9b95279d53d9947", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eccb4b4b71f54d50", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/documents/${documentId} (src/api/client.ts:302)"}, "properties": {"repobilityId": "10e6ebd6427c859c", "scanner": "scanner-primary", "fingerprint": "eccb4b4b71f54d50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-119d1d199a736dee", "level": "error", "message": {"text": "Dangling fetch: GET /api/documents/${documentId}/basic-info (src/api/client.ts:307)"}, "properties": {"repobilityId": "5aba2b81d24ff3d4", "scanner": "scanner-primary", "fingerprint": "119d1d199a736dee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc0c9e42f0909f4a", "level": "error", "message": {"text": "Dangling fetch: GET /api/documents/${documentId}/detail-core (src/api/client.ts:308)"}, "properties": {"repobilityId": "6edda169a0d437b1", "scanner": "scanner-primary", "fingerprint": "cc0c9e42f0909f4a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef3f0b90ce132953", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/documents/${documentId}/basic-info (src/api/client.ts:310)"}, "properties": {"repobilityId": "2c92c3de7cbf5a49", "scanner": "scanner-primary", "fingerprint": "ef3f0b90ce132953", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d9c598543bf66a5e", "level": "error", "message": {"text": "Dangling fetch: GET /api/queues (src/api/client.ts:315)"}, "properties": {"repobilityId": "388c51792e13f879", "scanner": "scanner-primary", "fingerprint": "d9c598543bf66a5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-77750d6c7c991e25", "level": "error", "message": {"text": "Dangling fetch: GET /api/documents/${documentId}/components (src/api/client.ts:316)"}, "properties": {"repobilityId": "b0050e5fe922e300", "scanner": "scanner-primary", "fingerprint": "77750d6c7c991e25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ee66840a09157dc", "level": "error", "message": {"text": "Dangling fetch: GET /api/jobs/status${suffix} (src/api/client.ts:320)"}, "properties": {"repobilityId": "ab6b837421f042ec", "scanner": "scanner-primary", "fingerprint": "1ee66840a09157dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8ad5c2aa3e9c070", "level": "error", "message": {"text": "Dangling fetch: POST /api/documents/${documentId}/components (src/api/client.ts:323)"}, "properties": {"repobilityId": "17310f291b10fd21", "scanner": "scanner-primary", "fingerprint": "a8ad5c2aa3e9c070", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e85656b73abf9a1c", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/documents/${documentId}/components/${rowId} (src/api/client.ts:329)"}, "properties": {"repobilityId": "6258ea45ff18d8f3", "scanner": "scanner-primary", "fingerprint": "e85656b73abf9a1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d1d0889bac296cd", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/documents/${documentId}/components/${rowId} (src/api/client.ts:335)"}, "properties": {"repobilityId": "9047c89806739857", "scanner": "scanner-primary", "fingerprint": "4d1d0889bac296cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d8325677fa2c70f", "level": "error", "message": {"text": "Dangling fetch: POST /api/documents/${documentId}/components/${rowId}/recheck (src/api/client.ts:337)"}, "properties": {"repobilityId": "4f336f9321f108dc", "scanner": "scanner-primary", "fingerprint": "3d8325677fa2c70f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cbcbc9f8be2db260", "level": "error", "message": {"text": "Dangling fetch: POST /api/documents/recheck (src/api/client.ts:339)"}, "properties": {"repobilityId": "e92cef9f2a9b70ec", "scanner": "scanner-primary", "fingerprint": "cbcbc9f8be2db260", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7efdb8913c314f7b", "level": "error", "message": {"text": "Dangling fetch: POST /api/documents/${documentId}/components/${rowId}/review (src/api/client.ts:345)"}, "properties": {"repobilityId": "3eb874e5c85cbcb6", "scanner": "scanner-primary", "fingerprint": "7efdb8913c314f7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ceb85456e2b10d42", "level": "error", "message": {"text": "Dangling fetch: GET /api/official-lookups/status (src/api/client.ts:350)"}, "properties": {"repobilityId": "bc66ef8a9bbb7a46", "scanner": "scanner-primary", "fingerprint": "ceb85456e2b10d42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1de8f50ce02809f8", "level": "error", "message": {"text": "Dangling fetch: GET /api/watchlist (src/api/client.ts:351)"}, "properties": {"repobilityId": "e8addab31ebab742", "scanner": "scanner-primary", "fingerprint": "1de8f50ce02809f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e3f108caac6ea5c", "level": "error", "message": {"text": "Dangling fetch: POST /api/watchlist/recheck (src/api/client.ts:353)"}, "properties": {"repobilityId": "961ad6c0bf6baa2d", "scanner": "scanner-primary", "fingerprint": "5e3f108caac6ea5c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bd9cd238d79277a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/products (src/api/client.ts:358)"}, "properties": {"repobilityId": "df3543847a0245b8", "scanner": "scanner-primary", "fingerprint": "bd9cd238d79277a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9b708dd4c32063c3", "level": "error", "message": {"text": "Dangling fetch: GET /api/products/sites (src/api/client.ts:359)"}, "properties": {"repobilityId": "0dbea49bec924f5f", "scanner": "scanner-primary", "fingerprint": "9b708dd4c32063c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b18815664566d02", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/products/sites/${siteId} (src/api/client.ts:361)"}, "properties": {"repobilityId": "05b4b89306e01895", "scanner": "scanner-primary", "fingerprint": "0b18815664566d02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f9102096ee8be7d", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/products/${productId} (src/api/client.ts:363)"}, "properties": {"repobilityId": "ef587d1a94882e6a", "scanner": "scanner-primary", "fingerprint": "8f9102096ee8be7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-85f988d4274f8d35", "level": "error", "message": {"text": "Dangling fetch: POST /api/products/documents/${documentId}/revision-needed (src/api/client.ts:365)"}, "properties": {"repobilityId": "503f7c414eb8b99c", "scanner": "scanner-primary", "fingerprint": "85f988d4274f8d35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ba45fb14550f7706", "level": "error", "message": {"text": "Dangling fetch: POST /api/products (src/api/client.ts:367)"}, "properties": {"repobilityId": "a80948ac0f33f4d6", "scanner": "scanner-primary", "fingerprint": "ba45fb14550f7706", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-26708e398a46edb2", "level": "error", "message": {"text": "Dangling fetch: POST /api/documents/upload (src/api/client.ts:375)"}, "properties": {"repobilityId": "1ce8d1cd37afc01b", "scanner": "scanner-primary", "fingerprint": "26708e398a46edb2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d5532a48323f3e29", "level": "error", "message": {"text": "Dangling fetch: POST /api/documents/${documentId}/replacement (src/api/client.ts:380)"}, "properties": {"repobilityId": "87e081bd1237ee56", "scanner": "scanner-primary", "fingerprint": "d5532a48323f3e29", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-951f42f519fb30e0", "level": "error", "message": {"text": "Dangling fetch: POST /api/documents/upload-batch (src/api/client.ts:390)"}, "properties": {"repobilityId": "daa5cc90a4e06d74", "scanner": "scanner-primary", "fingerprint": "951f42f519fb30e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "0c034bb4d2d27ee2", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "69b71c03e1b3cfd7", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b90a25f6d5f27707", "level": "note", "message": {"text": "Unused endpoint: USE /api/documents"}, "properties": {"repobilityId": "01e17c97acc26e4d", "scanner": "scanner-primary", "fingerprint": "b90a25f6d5f27707", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-61519720bbf44ebe", "level": "note", "message": {"text": "Unused endpoint: USE /api/jobs"}, "properties": {"repobilityId": "007d7c1866d52fd7", "scanner": "scanner-primary", "fingerprint": "61519720bbf44ebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eb269f638819b639", "level": "note", "message": {"text": "Unused endpoint: USE /api/official-lookups"}, "properties": {"repobilityId": "8750d6492cf79873", "scanner": "scanner-primary", "fingerprint": "eb269f638819b639", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cefe3e16e4a7273d", "level": "note", "message": {"text": "Unused endpoint: USE /api/products"}, "properties": {"repobilityId": "bccc25d76fbb8968", "scanner": "scanner-primary", "fingerprint": "cefe3e16e4a7273d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3c66e0a56692f7cf", "level": "note", "message": {"text": "Unused endpoint: USE /api/queues"}, "properties": {"repobilityId": "fd028015dccdd89c", "scanner": "scanner-primary", "fingerprint": "3c66e0a56692f7cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c7213564c7b3bd77", "level": "note", "message": {"text": "Unused endpoint: USE /api/revisions"}, "properties": {"repobilityId": "b32eed3e8ea5c5c3", "scanner": "scanner-primary", "fingerprint": "c7213564c7b3bd77", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-429ab099bb88de4d", "level": "note", "message": {"text": "Unused endpoint: USE /api/schedules"}, "properties": {"repobilityId": "565334180404c6d9", "scanner": "scanner-primary", "fingerprint": "429ab099bb88de4d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1afa00d06cb7e7d5", "level": "note", "message": {"text": "Unused endpoint: USE /api/usage"}, "properties": {"repobilityId": "85422963cd86cda4", "scanner": "scanner-primary", "fingerprint": "1afa00d06cb7e7d5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-126c84a660596653", "level": "note", "message": {"text": "Unused endpoint: USE /api/watchlist"}, "properties": {"repobilityId": "9cb73cab112fd546", "scanner": "scanner-primary", "fingerprint": "126c84a660596653", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d8b21ba304cc664", "level": "note", "message": {"text": "Unused endpoint: GET /drain"}, "properties": {"repobilityId": "73846a23e55fe7c0", "scanner": "scanner-primary", "fingerprint": "6d8b21ba304cc664", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "e3632e52a1049ecb", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c52c8d5b3c785738", "level": "note", "message": {"text": "Unused endpoint: POST /recheck"}, "properties": {"repobilityId": "40247911fd850a34", "scanner": "scanner-primary", "fingerprint": "c52c8d5b3c785738", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-82ca52addb418ebf", "level": "note", "message": {"text": "Unused endpoint: GET /auto-recheck"}, "properties": {"repobilityId": "6c3e05d2a0febfde", "scanner": "scanner-primary", "fingerprint": "82ca52addb418ebf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-03bfe2bb33d2fdbf", "level": "note", "message": {"text": "Unused endpoint: POST /diff"}, "properties": {"repobilityId": "ecda508074d891d2", "scanner": "scanner-primary", "fingerprint": "03bfe2bb33d2fdbf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-89a4e16b15df5f19", "level": "note", "message": {"text": "Unused endpoint: POST /calculate"}, "properties": {"repobilityId": "6873ce93b48d321a", "scanner": "scanner-primary", "fingerprint": "89a4e16b15df5f19", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-68dbfd4bdf1c29d7", "level": "note", "message": {"text": "Unused endpoint: GET /:documentId/detail-core"}, "properties": {"repobilityId": "9eac70769e738975", "scanner": "scanner-primary", "fingerprint": "68dbfd4bdf1c29d7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b25d790e319311ef", "level": "note", "message": {"text": "Unused endpoint: GET /:documentId/file"}, "properties": {"repobilityId": "5c92bfcdb33f10d8", "scanner": "scanner-primary", "fingerprint": "b25d790e319311ef", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2d83199ca31c5703", "level": "note", "message": {"text": "Unused endpoint: GET /:documentId/safety-materials"}, "properties": {"repobilityId": "eb20be55c091a706", "scanner": "scanner-primary", "fingerprint": "2d83199ca31c5703", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-32bf21d2ee093379", "level": "note", "message": {"text": "Unused endpoint: GET /:documentId/safety-materials/:kind/:format"}, "properties": {"repobilityId": "453d1c5a8dee33eb", "scanner": "scanner-primary", "fingerprint": "32bf21d2ee093379", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c110f636720d3b4", "level": "note", "message": {"text": "Unused endpoint: POST /:documentId/safety-materials/regenerate"}, "properties": {"repobilityId": "80106357c4c560a6", "scanner": "scanner-primary", "fingerprint": "0c110f636720d3b4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7d2861b29f1ba63c", "level": "note", "message": {"text": "Unused endpoint: GET /:documentId/components"}, "properties": {"repobilityId": "94ba9b7f9327df09", "scanner": "scanner-primary", "fingerprint": "7d2861b29f1ba63c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-27b1da2cd5504519", "level": "note", "message": {"text": "Unused endpoint: DELETE /:documentId"}, "properties": {"repobilityId": "7289fe548db24657", "scanner": "scanner-primary", "fingerprint": "27b1da2cd5504519", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e46ce1a88122ec7f", "level": "note", "message": {"text": "Unused endpoint: PATCH /:documentId"}, "properties": {"repobilityId": "c72f08f3f9645a3f", "scanner": "scanner-primary", "fingerprint": "e46ce1a88122ec7f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-112fca53cb1f254a", "level": "note", "message": {"text": "Unused endpoint: GET /:documentId/basic-info"}, "properties": {"repobilityId": "804c0c50b50150c5", "scanner": "scanner-primary", "fingerprint": "112fca53cb1f254a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e94a3d0dc2d47319", "level": "note", "message": {"text": "Unused endpoint: PATCH /:documentId/basic-info"}, "properties": {"repobilityId": "76b7eb27ef89e385", "scanner": "scanner-primary", "fingerprint": "e94a3d0dc2d47319", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e18f0396e4ff020b", "level": "note", "message": {"text": "Unused endpoint: POST /:documentId/components"}, "properties": {"repobilityId": "57258c262df90291", "scanner": "scanner-primary", "fingerprint": "e18f0396e4ff020b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c7bfaed55cd2591", "level": "note", "message": {"text": "Unused endpoint: POST /:documentId/replacement"}, "properties": {"repobilityId": "cec736141220f04b", "scanner": "scanner-primary", "fingerprint": "4c7bfaed55cd2591", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b936cd7b0dcdfec3", "level": "note", "message": {"text": "Unused endpoint: PATCH /:documentId/components/:rowId"}, "properties": {"repobilityId": "58d69a58e84457d5", "scanner": "scanner-primary", "fingerprint": "b936cd7b0dcdfec3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-246aee5c80d0d58f", "level": "note", "message": {"text": "Unused endpoint: DELETE /:documentId/components/:rowId"}, "properties": {"repobilityId": "2714ba2a6edd563b", "scanner": "scanner-primary", "fingerprint": "246aee5c80d0d58f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7afd57675cc10147", "level": "note", "message": {"text": "Unused endpoint: POST /:documentId/components/:rowId/recheck"}, "properties": {"repobilityId": "e5fdc491299d1e26", "scanner": "scanner-primary", "fingerprint": "7afd57675cc10147", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fb9b1cbe08682036", "level": "note", "message": {"text": "Unused endpoint: POST /:documentId/components/:rowId/review"}, "properties": {"repobilityId": "34e3fd5f834064b6", "scanner": "scanner-primary", "fingerprint": "fb9b1cbe08682036", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6236b283b79811b8", "level": "note", "message": {"text": "Unused endpoint: POST /upload"}, "properties": {"repobilityId": "cc30c5f30a3cd347", "scanner": "scanner-primary", "fingerprint": "6236b283b79811b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-119345be45a8e185", "level": "note", "message": {"text": "Unused endpoint: POST /upload-batch"}, "properties": {"repobilityId": "272f1dd5c7bf80ff", "scanner": "scanner-primary", "fingerprint": "119345be45a8e185", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-23a4558b5fb325e7", "level": "note", "message": {"text": "Unused endpoint: GET /sites"}, "properties": {"repobilityId": "e6de798a7ab65af0", "scanner": "scanner-primary", "fingerprint": "23a4558b5fb325e7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "6bf056784a77b053", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d5cd860f2703b829", "level": "note", "message": {"text": "Unused endpoint: POST /documents/:documentId/revision-needed"}, "properties": {"repobilityId": "bc46e3e67d89b358", "scanner": "scanner-primary", "fingerprint": "d5cd860f2703b829", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a8d03421e24cd922", "level": "note", "message": {"text": "Unused endpoint: DELETE /sites/:siteId"}, "properties": {"repobilityId": "0c91c2c7a0a90e4b", "scanner": "scanner-primary", "fingerprint": "a8d03421e24cd922", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4238150fcc0379c6", "level": "note", "message": {"text": "Unused endpoint: DELETE /:productId"}, "properties": {"repobilityId": "4e6535285613a30b", "scanner": "scanner-primary", "fingerprint": "4238150fcc0379c6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-621f858deaa3be43", "level": "note", "message": {"text": "Unused endpoint: GET /report"}, "properties": {"repobilityId": "761ecde351f161c2", "scanner": "scanner-primary", "fingerprint": "621f858deaa3be43", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}