{"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: unchartedterritory5995-cyber/UCT-Dashboard", "shortDescription": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 9\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_qua"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard", "shortDescription": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 79\nGraph consistency label: assumption_check\nNodes: 13\nEdges: 18\nNode types: {'link_qua"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard", "shortDescription": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\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: unchartedterritory5995-cyber/UCT-Dashboard#77\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5ed5424a5db45b3a\",\n    \"kind\": \"pull_requ"}, "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: unchartedterritory5995-cyber/UCT-Dashboard", "shortDescription": {"text": "Foundry mined test ci gap after feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 78\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 2"}, "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: unchartedterritory5995-cyber/UCT-Dashboard", "shortDescription": {"text": "Foundry mined schema ui api mismatch: unchartedterritory5995-cyber/UCT-Dashboard"}, "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 53\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comme"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard", "shortDescription": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\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: unchartedterritory5995-cyber/UCT-Dashboard#9\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9f64b98a52b6f90b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: unchartedterritory5995-cyber/UCT-Dashboard", "shortDescription": {"text": "Foundry mined mock as real or placeholder: unchartedterritory5995-cyber/UCT-Dashboard"}, "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: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#57\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#57\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#57\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 57\nGraph consistency label: weak_super"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-fcd9783882f45b57", "name": "Possibly dead Python function: start_auto_refresh", "shortDescription": {"text": "Possibly dead Python function: start_auto_refresh"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5fd882b54ee6758", "name": "Possibly dead Python function: stop_auto_refresh", "shortDescription": {"text": "Possibly dead Python function: stop_auto_refresh"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a57870bff4b7233", "name": "Possibly dead Python function: save_picks", "shortDescription": {"text": "Possibly dead Python function: save_picks"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e29b228d2968e4a", "name": "Possibly dead Python function: migrate_entries", "shortDescription": {"text": "Possibly dead Python function: migrate_entries"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5391ad9a30e9f21", "name": "Possibly dead Python function: fetch_live_flow_csv_text", "shortDescription": {"text": "Possibly dead Python function: fetch_live_flow_csv_text"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b71f2be0a4abdf48", "name": "Possibly dead Python function: save_watchlist", "shortDescription": {"text": "Possibly dead Python function: save_watchlist"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-484fd678a2663f6e", "name": "Possibly dead Python function: prebuild_all_windows", "shortDescription": {"text": "Possibly dead Python function: prebuild_all_windows"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9604043dfb8c68d3", "name": "Possibly dead Python function: query_csv", "shortDescription": {"text": "Possibly dead Python function: query_csv"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-777d8521b8e7c1e2", "name": "Possibly dead Python function: query_all_csv", "shortDescription": {"text": "Possibly dead Python function: query_all_csv"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ac7c14874f06b30", "name": "Possibly dead Python function: parse_key", "shortDescription": {"text": "Possibly dead Python function: parse_key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ed8036e41ad2497", "name": "Possibly dead Python function: require_plan", "shortDescription": {"text": "Possibly dead Python function: require_plan"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0858772809b16904", "name": "Possibly dead Python function: checker", "shortDescription": {"text": "Possibly dead Python function: checker"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13424aaf3a9e0078", "name": "Possibly dead Python function: require_admin", "shortDescription": {"text": "Possibly dead Python function: require_admin"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c9e6de2e73083a5a", "name": "Possibly dead Python function: is_paid_user", "shortDescription": {"text": "Possibly dead Python function: is_paid_user"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-826dd37cd7d55944", "name": "Possibly dead Python function: requires_voice_access", "shortDescription": {"text": "Possibly dead Python function: requires_voice_access"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5dfeb211297a5bf7", "name": "Possibly dead Python function: set_default", "shortDescription": {"text": "Possibly dead Python function: set_default"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e8ee097fc8586d2", "name": "TODO/FIXME marker in shipping code \u2014 app/src/App.test.jsx:1", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/src/App.test.jsx:1"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4be4aa1eef49e741", "name": "Icon-only button without accessible name \u2014 app/src/components/tiles/NHNLModal.jsx:31", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/src/components/tiles/NHNLModal.jsx:31"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-517ddbcc47af77bd", "name": "Icon-only button without accessible name \u2014 app/src/pages/OptionsFlow.jsx:2760", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/src/pages/OptionsFlow.jsx:2760"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0eab5a6e2003f3e", "name": "Stray `console.log` in TS/JS \u2014 app/src/pages/OptionsFlow.jsx:1648", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/src/pages/OptionsFlow.jsx:1648"}, "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-26495404ec9f0d74", "name": "Stray `console.log` in TS/JS \u2014 app/src/pages/DarkPool.jsx:2832", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/src/pages/DarkPool.jsx:2832"}, "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-f8f119ff89c433cc", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/src/pages/MorningWire.jsx:170", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/src/pages/MorningWire.jsx:170"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15bc3d83507a940c", "name": "Icon-only button without accessible name \u2014 app/src/pages/LiveFlow.jsx:1250", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/src/pages/LiveFlow.jsx:1250"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f161fe8c26d4dca", "name": "Stray `console.log` in TS/JS \u2014 app/src/pages/LiveFlow.jsx:1022", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/src/pages/LiveFlow.jsx:1022"}, "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-224dc309118c6beb", "name": "Icon-only button without accessible name \u2014 app/src/pages/calendar/DayDetailDrawer.jsx:19", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/src/pages/calendar/DayDetailDrawer.jsx:19"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fba7ff3174f4f913", "name": "Stray `console.log` in TS/JS \u2014 app/src/hooks/useRealtimeSession.js:213", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/src/hooks/useRealtimeSession.js:213"}, "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-097c703207fe5d82", "name": "Possible secret in CLAUDE.md", "shortDescription": {"text": "Possible secret in CLAUDE.md"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-05811b2b11693037", "name": "Insecure pattern 'weak_hash' in CLAUDE.md:1366", "shortDescription": {"text": "Insecure pattern 'weak_hash' in CLAUDE.md:1366"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa7f399f84cffd91", "name": "Insecure pattern 'cors_wildcard' in api/main.py:1968", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/main.py:1968"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e61e3633a2ce3bf8", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/src/utils/htmlToSpeech.js:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/src/utils/htmlToSpeech.js:46"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1f779afb7801e95", "name": "Insecure pattern 'dangerous_innerhtml' in app/src/pages/MorningWire.jsx:170", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/src/pages/MorningWire.jsx:170"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1ec628504f9c392", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/src/hooks/useRealtimeSession.js:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/src/hooks/useRealtimeSession.js:31"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b7a78275de51179f", "name": "Possible secret in tools/ui_sweep.mjs", "shortDescription": {"text": "Possible secret in tools/ui_sweep.mjs"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-bd5560cd3b6c9492", "name": "Possible secret in tools/seed_sweep_admin.py", "shortDescription": {"text": "Possible secret in tools/seed_sweep_admin.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4694a4da42ab5986", "name": "Very large file: api/main.py (2178 lines)", "shortDescription": {"text": "Very large file: api/main.py (2178 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-bc3db53919f2c2a0", "name": "Very large file: api/services/bars_fetch.py (2072 lines)", "shortDescription": {"text": "Very large file: api/services/bars_fetch.py (2072 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-d98746d8489789b4", "name": "Very large file: api/services/engine.py (2124 lines)", "shortDescription": {"text": "Very large file: api/services/engine.py (2124 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-6578d5fcaae77a9b", "name": "Very large file: api/services/voice_tool_impls.py (3953 lines)", "shortDescription": {"text": "Very large file: api/services/voice_tool_impls.py (3953 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-66788042b6d60ebd", "name": "Very large file: api/services/pattern_engine/detectors/structure/stage_analysis.py (1142 lines)", "shortDescription": {"text": "Very large file: api/services/pattern_engine/detectors/structure/stage_analysis.py (1142 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-4529a9e8b7cc782a", "name": "Very large file: api/services/journal_two/coach_chat_tools.py (1620 lines)", "shortDescription": {"text": "Very large file: api/services/journal_two/coach_chat_tools.py (1620 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-de4a8e4948b7aab6", "name": "Very large file: api/routers/calendar.py (1402 lines)", "shortDescription": {"text": "Very large file: api/routers/calendar.py (1402 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-2120e4b4f11a829d", "name": "Very large file: api/routers/journal_two.py (1655 lines)", "shortDescription": {"text": "Very large file: api/routers/journal_two.py (1655 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-6b56e871621d539e", "name": "Very large file: api/routers/voice.py (1604 lines)", "shortDescription": {"text": "Very large file: api/routers/voice.py (1604 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-3e67f86a1b60e91d", "name": "Very large file: api/routers/modelbook.py (1963 lines)", "shortDescription": {"text": "Very large file: api/routers/modelbook.py (1963 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-821a4060f8fd59e8", "name": "Very large file: app/src/components/StockChart.jsx (5726 lines)", "shortDescription": {"text": "Very large file: app/src/components/StockChart.jsx (5726 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-50b84354475229ae", "name": "Very large file: app/src/components/chart/ChartToolbar.jsx (1206 lines)", "shortDescription": {"text": "Very large file: app/src/components/chart/ChartToolbar.jsx (1206 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-ecacc058da1f8310", "name": "Very large file: app/src/components/chart/ChartDrawingOverlay.jsx (1634 lines)", "shortDescription": {"text": "Very large file: app/src/components/chart/ChartDrawingOverlay.jsx (1634 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-33ac374d344efaa7", "name": "Very large file: app/src/pages/Settings.jsx (1407 lines)", "shortDescription": {"text": "Very large file: app/src/pages/Settings.jsx (1407 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-a96cddd4961318c2", "name": "Very large file: app/src/pages/Breadth.jsx (1514 lines)", "shortDescription": {"text": "Very large file: app/src/pages/Breadth.jsx (1514 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-a9ce995c56f18846", "name": "Very large file: app/src/pages/OptionsFlow.jsx (7851 lines)", "shortDescription": {"text": "Very large file: app/src/pages/OptionsFlow.jsx (7851 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-f411107deba4f958", "name": "Very large file: app/src/pages/DarkPool.jsx (3317 lines)", "shortDescription": {"text": "Very large file: app/src/pages/DarkPool.jsx (3317 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-8302f2b54adf41c4", "name": "Very large file: app/src/pages/Admin.jsx (2226 lines)", "shortDescription": {"text": "Very large file: app/src/pages/Admin.jsx (2226 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-2005a347cfe01024", "name": "Very large file: app/src/pages/Watchlists.jsx (1099 lines)", "shortDescription": {"text": "Very large file: app/src/pages/Watchlists.jsx (1099 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-32f31f2bdc008e49", "name": "Very large file: app/src/pages/ModelBook.jsx (2282 lines)", "shortDescription": {"text": "Very large file: app/src/pages/ModelBook.jsx (2282 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-63ebce8bdffab547", "name": "Very large file: app/src/pages/LiveFlow.jsx (2880 lines)", "shortDescription": {"text": "Very large file: app/src/pages/LiveFlow.jsx (2880 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 474 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 224 placeholder/mock markers across 100 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "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, ci. 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-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.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-992b0a76a5156f9f", "name": "Legacy-named symbol `sess_legacy` in tests/test_voice_openai.py:261", "shortDescription": {"text": "Legacy-named symbol `sess_legacy` in tests/test_voice_openai.py:261"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12a2e838c2cea2bf", "name": "Legacy-named symbol `scout_v1` in tests/test_voice_prompt_registry.py:54", "shortDescription": {"text": "Legacy-named symbol `scout_v1` in tests/test_voice_prompt_registry.py:54"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-713514bd2522e3ee", "name": "Legacy-named symbol `analyst_v1` in tests/test_voice_explainability.py:32", "shortDescription": {"text": "Legacy-named symbol `analyst_v1` in tests/test_voice_explainability.py:32"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-93b8407522e009bf", "name": "Legacy-named symbol `test_data_freshness_old` in tests/test_voice_temporal_awareness.py:105", "shortDescription": {"text": "Legacy-named symbol `test_data_freshness_old` in tests/test_voice_temporal_awareness.py:105"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-765aecc065bfbafd", "name": "Legacy-named symbol `analyst_v1` in tests/test_voice_trace_service.py:42", "shortDescription": {"text": "Legacy-named symbol `analyst_v1` in tests/test_voice_trace_service.py:42"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fc82b577f8848db1", "name": "Legacy-named symbol `list_objects_v2` in tests/api/test_delta_snapshot.py:49", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in tests/api/test_delta_snapshot.py:49"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e280f13aed59644", "name": "Commented-code block (5 lines) in tests/fixtures/rising_wedge/_generate.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/rising_wedge/_generate.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-178d378042e841db", "name": "Commented-code block (5 lines) in tests/fixtures/evening_star/_generate.py:234", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/evening_star/_generate.py:234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8755ec090e269b8d", "name": "Commented-code block (5 lines) in tests/fixtures/double_top/_generate.py:142", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/double_top/_generate.py:142"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82f58b75a74bc7f1", "name": "Commented-code block (12 lines) in tests/fixtures/three_black_crows/_generate.py:262", "shortDescription": {"text": "Commented-code block (12 lines) in tests/fixtures/three_black_crows/_generate.py:262"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bb6e227de5a3194", "name": "Commented-code block (8 lines) in tests/fixtures/bullish_harami/_generate.py:201", "shortDescription": {"text": "Commented-code block (8 lines) in tests/fixtures/bullish_harami/_generate.py:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b758733fc6008383", "name": "Legacy-named symbol `dc_cross_too_old` in tests/fixtures/death_cross/_generate.py:453", "shortDescription": {"text": "Legacy-named symbol `dc_cross_too_old` in tests/fixtures/death_cross/_generate.py:453"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee9dfb5d3aa1d6cd", "name": "Commented-code block (5 lines) in tests/fixtures/double_bottom/_generate.py:142", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/double_bottom/_generate.py:142"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6685eabeb01af9be", "name": "Legacy-named symbol `stale_cross_10_bars_old` in tests/fixtures/macd_bullish_cross/_generate.py:183", "shortDescription": {"text": "Legacy-named symbol `stale_cross_10_bars_old` in tests/fixtures/macd_bullish_cross/_generate.py:183"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c348fdc0cd2d2104", "name": "Legacy-named symbol `gap_too_old` in tests/fixtures/power_earnings_gap/_generate.py:58", "shortDescription": {"text": "Legacy-named symbol `gap_too_old` in tests/fixtures/power_earnings_gap/_generate.py:58"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e2e9c2f6f3c1b7a", "name": "Commented-code block (5 lines) in tests/fixtures/inverse_head_shoulders/_generate.py:332", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/inverse_head_shoulders/_generate.py:332"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad19a2417252fa18", "name": "Commented-code block (5 lines) in tests/fixtures/volume_profile_nodes/_generate.py:438", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/volume_profile_nodes/_generate.py:438"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d4b45e2b015b151", "name": "Commented-code block (5 lines) in tests/fixtures/falling_wedge/_generate.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/falling_wedge/_generate.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20db135ee3e5a811", "name": "Commented-code block (6 lines) in tests/fixtures/vcp/_generate.py:111", "shortDescription": {"text": "Commented-code block (6 lines) in tests/fixtures/vcp/_generate.py:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c254c4e545f3d828", "name": "Commented-code block (5 lines) in tests/fixtures/marubozu/_generate.py:485", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/marubozu/_generate.py:485"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0e8aa20831185b5", "name": "Commented-code block (6 lines) in tests/fixtures/bearish_engulfing/_generate.py:193", "shortDescription": {"text": "Commented-code block (6 lines) in tests/fixtures/bearish_engulfing/_generate.py:193"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed81f93098c4a0a2", "name": "Commented-code block (6 lines) in tests/fixtures/remount/_generate.py:161", "shortDescription": {"text": "Commented-code block (6 lines) in tests/fixtures/remount/_generate.py:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f048b57609c324b", "name": "Commented-code block (11 lines) in tests/fixtures/three_white_soldiers/_generate.py:295", "shortDescription": {"text": "Commented-code block (11 lines) in tests/fixtures/three_white_soldiers/_generate.py:295"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7b4b75c02f7b6d0", "name": "Commented-code block (6 lines) in tests/fixtures/range_detection/_generate.py:237", "shortDescription": {"text": "Commented-code block (6 lines) in tests/fixtures/range_detection/_generate.py:237"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eab4fa7fbfb35128", "name": "Commented-code block (5 lines) in tests/fixtures/pennant/_generate.py:70", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fixtures/pennant/_generate.py:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9fad1fbb4f285f0", "name": "Legacy-named symbol `stale_cross_8_bars_old` in tests/fixtures/macd_bearish_cross/_generate.py:170", "shortDescription": {"text": "Legacy-named symbol `stale_cross_8_bars_old` in tests/fixtures/macd_bearish_cross/_generate.py:170"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77a14ce04a32bd91", "name": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_bearish_engulfing.py:29", "shortDescription": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_bearish_engulfing.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1a64441c233be6f", "name": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_golden_cross.py:153", "shortDescription": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_golden_cross.py:153"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-859fe44df1f778d8", "name": "Commented-code block (8 lines) in tests/pattern_engine/detectors/test_three_black_crows.py:156", "shortDescription": {"text": "Commented-code block (8 lines) in tests/pattern_engine/detectors/test_three_black_crows.py:156"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5db00e07cc5e020e", "name": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_death_cross.py:157", "shortDescription": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_death_cross.py:157"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da9ffc0b6f998ec3", "name": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_bearish_harami.py:29", "shortDescription": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_bearish_harami.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1454ef81383cb532", "name": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_evening_star.py:32", "shortDescription": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_evening_star.py:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f693c918d1825748", "name": "Commented-code block (5 lines) in api/schwab_service.py:637", "shortDescription": {"text": "Commented-code block (5 lines) in api/schwab_service.py:637"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-987df63a154be9bd", "name": "Commented-code block (5 lines) in api/dealer_positioning.py:115", "shortDescription": {"text": "Commented-code block (5 lines) in api/dealer_positioning.py:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94353ff19da33695", "name": "Commented-code block (5 lines) in api/darkpool_router.py:56", "shortDescription": {"text": "Commented-code block (5 lines) in api/darkpool_router.py:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-474f3cff10815969", "name": "Commented-code block (5 lines) in api/flow_router.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in api/flow_router.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bdebc19ebfeb7928", "name": "Commented-code block (6 lines) in api/top_flow_tracker.py:285", "shortDescription": {"text": "Commented-code block (6 lines) in api/top_flow_tracker.py:285"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a9bca0e151446ad", "name": "Commented-code block (5 lines) in api/worker_main.py:33", "shortDescription": {"text": "Commented-code block (5 lines) in api/worker_main.py:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8d1d5d8793b3409", "name": "Commented-code block (7 lines) in api/gex_service.py:326", "shortDescription": {"text": "Commented-code block (7 lines) in api/gex_service.py:326"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e242edb65e1bf4f", "name": "Commented-code block (5 lines) in api/darkpool_aggregator.py:38", "shortDescription": {"text": "Commented-code block (5 lines) in api/darkpool_aggregator.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e0c2f377c4f1f8c", "name": "Legacy-named symbol `bullish_v1` in api/main.py:666", "shortDescription": {"text": "Legacy-named symbol `bullish_v1` in api/main.py:666"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1295035a1d38f33f", "name": "Commented-code block (5 lines) in api/main.py:10", "shortDescription": {"text": "Commented-code block (5 lines) in api/main.py:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5aebc686c5826cbe", "name": "Commented-code block (5 lines) in api/oi_snapshots.py:675", "shortDescription": {"text": "Commented-code block (5 lines) in api/oi_snapshots.py:675"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49c660c98546b015", "name": "Stub function `commit` (body is just `pass`/`return`) \u2014 api/services/bars_sqlite_test.py:199", "shortDescription": {"text": "Stub function `commit` (body is just `pass`/`return`) \u2014 api/services/bars_sqlite_test.py:199"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3cca6e067d9b328c", "name": "Legacy-named symbol `prev_copy` in api/services/bar_rollup_test.py:121", "shortDescription": {"text": "Legacy-named symbol `prev_copy` in api/services/bar_rollup_test.py:121"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33918b1209478859", "name": "Commented-code block (5 lines) in api/services/bar_rollup_test.py:101", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/bar_rollup_test.py:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06d350f5ca386d94", "name": "Commented-code block (5 lines) in api/services/yfinance_pool.py:38", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/yfinance_pool.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db641b1ef0fe1f87", "name": "Legacy-named symbol `hours_old` in api/services/voice_temporal_awareness.py:138", "shortDescription": {"text": "Legacy-named symbol `hours_old` in api/services/voice_temporal_awareness.py:138"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d65a46c8d932074a", "name": "Commented-code block (5 lines) in api/services/voice_agents.py:329", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/voice_agents.py:329"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2c0eb0a2c900d6b", "name": "Legacy-named symbol `modelbook_dollarvol_v1` in api/services/modelbook_service.py:256", "shortDescription": {"text": "Legacy-named symbol `modelbook_dollarvol_v1` in api/services/modelbook_service.py:256"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca9f6b1b9769dbde", "name": "Commented-code block (5 lines) in api/services/modelbook_service.py:765", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/modelbook_service.py:765"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90060076436d608e", "name": "Commented-code block (5 lines) in api/services/massive.py:34", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/massive.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67bd102d46208a02", "name": "Commented-code block (8 lines) in api/services/bars_fetch.py:42", "shortDescription": {"text": "Commented-code block (8 lines) in api/services/bars_fetch.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-690a8888229dba2e", "name": "Legacy-named symbol `minute_aggs_v1` in api/services/build_intraday_cache.py:151", "shortDescription": {"text": "Legacy-named symbol `minute_aggs_v1` in api/services/build_intraday_cache.py:151"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b47aea72262d891", "name": "Commented-code block (6 lines) in api/services/earnings_audio.py:31", "shortDescription": {"text": "Commented-code block (6 lines) in api/services/earnings_audio.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-382351f2aca531a7", "name": "Commented-code block (7 lines) in api/services/bars_continuous_audit.py:46", "shortDescription": {"text": "Commented-code block (7 lines) in api/services/bars_continuous_audit.py:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0b6d7462df6502c", "name": "Legacy-named symbol `analyst_v1` in api/services/voice_prompt_registry.py:73", "shortDescription": {"text": "Legacy-named symbol `analyst_v1` in api/services/voice_prompt_registry.py:73"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9db219988291a93e", "name": "Commented-code block (15 lines) in api/services/bars_reconciliation.py:48", "shortDescription": {"text": "Commented-code block (15 lines) in api/services/bars_reconciliation.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-039bb602bbb2dc74", "name": "Commented-code block (5 lines) in api/services/voice_tool_impls.py:1934", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/voice_tool_impls.py:1934"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7181133c716ccea2", "name": "Legacy-named symbol `days_old` in api/services/cot_service.py:457", "shortDescription": {"text": "Legacy-named symbol `days_old` in api/services/cot_service.py:457"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-798ce62c31eaa31a", "name": "Commented-code block (5 lines) in api/services/cot_service.py:488", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/cot_service.py:488"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7aca9372e9f711aa", "name": "Commented-code block (8 lines) in api/services/bar_audit_bootstrap.py:18", "shortDescription": {"text": "Commented-code block (8 lines) in api/services/bar_audit_bootstrap.py:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e47f26324756d35", "name": "Commented-code block (5 lines) in api/services/scheduler_lock.py:34", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/scheduler_lock.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95ec20dc0070a09f", "name": "Legacy-named symbol `_migrate_journal_v2` in api/services/auth_db.py:530", "shortDescription": {"text": "Legacy-named symbol `_migrate_journal_v2` in api/services/auth_db.py:530"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b7d6ddb70c34913", "name": "Commented-code block (6 lines) in api/services/bars_fetch_test.py:317", "shortDescription": {"text": "Commented-code block (6 lines) in api/services/bars_fetch_test.py:317"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9c877c85bdfef9b", "name": "Network/subprocess call without timeout or try/except \u2014 api/services/bars_fetch_test.py:459", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 api/services/bars_fetch_test.py:459"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` 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-e201d7f6091e36de", "name": "Commented-code block (5 lines) in api/services/bars_sqlite.py:21", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/bars_sqlite.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3771d26afef173d", "name": "Legacy-named symbol `test_returns_independent_copy` in api/services/bars_reconciliation_test.py:101", "shortDescription": {"text": "Legacy-named symbol `test_returns_independent_copy` in api/services/bars_reconciliation_test.py:101"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f941f6f6d444cb3b", "name": "Commented-code block (5 lines) in api/services/realtime_stream.py:95", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/realtime_stream.py:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9dc6a92d10be6c1d", "name": "Legacy-named symbol `list_objects_v2` in api/services/data_sync.py:325", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in api/services/data_sync.py:325"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-daf6c129af446882", "name": "Commented-code block (9 lines) in api/services/data_sync.py:58", "shortDescription": {"text": "Commented-code block (9 lines) in api/services/data_sync.py:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9f95999ae4bff0b", "name": "Commented-code block (9 lines) in api/services/audit.py:338", "shortDescription": {"text": "Commented-code block (9 lines) in api/services/audit.py:338"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a4b918eabc3b400", "name": "Legacy-named symbol `cache_nuked_v2` in api/services/bars_prewarm.py:30", "shortDescription": {"text": "Legacy-named symbol `cache_nuked_v2` in api/services/bars_prewarm.py:30"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-edf0fcf834c580fd", "name": "Commented-code block (6 lines) in api/services/bars_prewarm.py:80", "shortDescription": {"text": "Commented-code block (6 lines) in api/services/bars_prewarm.py:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d43c22d06b9b65f1", "name": "Commented-code block (6 lines) in api/services/catalyst/tagging.py:23", "shortDescription": {"text": "Commented-code block (6 lines) in api/services/catalyst/tagging.py:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3003e4840df607d8", "name": "Commented-code block (9 lines) in api/services/catalyst/synthesize.py:16", "shortDescription": {"text": "Commented-code block (9 lines) in api/services/catalyst/synthesize.py:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2839a9c4850e6e6c", "name": "Commented-code block (5 lines) in api/services/catalyst/engine.py:620", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/catalyst/engine.py:620"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-766833ae4740eff1", "name": "Commented-code block (5 lines) in api/services/catalyst/sources.py:150", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/catalyst/sources.py:150"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a0bfd3bf6d363f3", "name": "Commented-code block (9 lines) in api/services/pattern_engine/detectors/uct/lance_opening_drive.py:107", "shortDescription": {"text": "Commented-code block (9 lines) in api/services/pattern_engine/detectors/uct/lance_opening_drive.py:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-435ddea1fb038e0a", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/uct/remount.py:189", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/uct/remount.py:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7bbf8cb686e6396", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/uct/vcp.py:186", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/uct/vcp.py:186"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a98457e3d633e828", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bullish_engulfing.py:79", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bullish_engulfing.py:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a32a97372cbb98a2", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/tweezer_bottom.py:123", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/tweezer_bottom.py:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1afaa01eac3fc5ab", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/piercing.py:77", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/piercing.py:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0793edef4ae05f8", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bearish_engulfing.py:80", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bearish_engulfing.py:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77b0c94a0ef5506d", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bearish_harami.py:87", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bearish_harami.py:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a9e23a86abf99a3", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/dark_cloud_cover.py:76", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/dark_cloud_cover.py:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f1b9e09d1567a11", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/hammer.py:75", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/hammer.py:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9f6f48e78f7b024", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/evening_star.py:80", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/evening_star.py:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d3912981498f906", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/morning_star.py:83", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/morning_star.py:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7219bed084aa8ab", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bullish_harami.py:82", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bullish_harami.py:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb754530e1e465a3", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/tweezer_top.py:128", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/tweezer_top.py:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5af454ec13267dd4", "name": "Legacy-named symbol `ma50_old` in api/services/pattern_engine/detectors/classical/death_cross.py:133", "shortDescription": {"text": "Legacy-named symbol `ma50_old` in api/services/pattern_engine/detectors/classical/death_cross.py:133"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29053f4a89e3c0f7", "name": "Commented-code block (12 lines) in api/services/pattern_engine/detectors/classical/death_cross.py:58", "shortDescription": {"text": "Commented-code block (12 lines) in api/services/pattern_engine/detectors/classical/death_cross.py:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ea3982a84268cfe", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/classical/rectangle.py:182", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/classical/rectangle.py:182"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef2be316883cba2e", "name": "Legacy-named symbol `ma50_old` in api/services/pattern_engine/detectors/classical/golden_cross.py:125", "shortDescription": {"text": "Legacy-named symbol `ma50_old` in api/services/pattern_engine/detectors/classical/golden_cross.py:125"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4f202f444184c4c", "name": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/classical/golden_cross.py:54", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/classical/golden_cross.py:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a02300f34d465a71", "name": "Legacy-named symbol `notebook_migration_v1` in api/services/journal_two/db.py:357", "shortDescription": {"text": "Legacy-named symbol `notebook_migration_v1` in api/services/journal_two/db.py:357"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-35623169dd4b5436", "name": "Commented-code block (7 lines) in api/services/journal_two/db.py:550", "shortDescription": {"text": "Commented-code block (7 lines) in api/services/journal_two/db.py:550"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b60038504f36c39", "name": "Commented-code block (8 lines) in api/services/journal_two/analytics.py:730", "shortDescription": {"text": "Commented-code block (8 lines) in api/services/journal_two/analytics.py:730"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c2472f88d535363", "name": "Commented-code block (7 lines) in api/services/journal_two/test_csv_import.py:268", "shortDescription": {"text": "Commented-code block (7 lines) in api/services/journal_two/test_csv_import.py:268"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5468afaa6023c338", "name": "Commented-code block (5 lines) in api/services/journal_two/accounts.py:299", "shortDescription": {"text": "Commented-code block (5 lines) in api/services/journal_two/accounts.py:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b366ade89b10be8", "name": "Commented-code block (6 lines) in api/services/journal_two/coach_chat_tools.py:773", "shortDescription": {"text": "Commented-code block (6 lines) in api/services/journal_two/coach_chat_tools.py:773"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94a9a05fb8fcb908", "name": "Commented-code block (6 lines) in api/routers/admin_patterns.py:34", "shortDescription": {"text": "Commented-code block (6 lines) in api/routers/admin_patterns.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4e182da28316b90", "name": "Legacy-named symbol `eps_est_backup` in api/routers/calendar.py:103", "shortDescription": {"text": "Legacy-named symbol `eps_est_backup` in api/routers/calendar.py:103"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a98c68b59145274", "name": "Commented-code block (5 lines) in api/routers/calendar.py:1176", "shortDescription": {"text": "Commented-code block (5 lines) in api/routers/calendar.py:1176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-746d29dcf20174ce", "name": "Commented-code block (8 lines) in api/routers/bars.py:145", "shortDescription": {"text": "Commented-code block (8 lines) in api/routers/bars.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94ae50d59097c9fe", "name": "Commented-code block (6 lines) in api/routers/voice.py:179", "shortDescription": {"text": "Commented-code block (6 lines) in api/routers/voice.py:179"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b413012858b83ca3", "name": "Commented-code block (5 lines) in api/routers/modelbook.py:328", "shortDescription": {"text": "Commented-code block (5 lines) in api/routers/modelbook.py:328"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4059fbecc4ae89b9", "name": "Commented-code block (5 lines) in api/routers/catalysts.py:28", "shortDescription": {"text": "Commented-code block (5 lines) in api/routers/catalysts.py:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f3400fe099c204e", "name": "Commented-code block (6 lines) in app/vite.config.js:11", "shortDescription": {"text": "Commented-code block (6 lines) in app/vite.config.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-397b35784712cb2f", "name": "Commented-code block (5 lines) in app/src/LiveFlow_integration_guide.jsx:138", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/LiveFlow_integration_guide.jsx:138"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-143b100f5ce27278", "name": "Commented-code block (5 lines) in app/src/utils/landingTrack.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/utils/landingTrack.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57515d4f0aa30722", "name": "Commented-code block (7 lines) in app/src/utils/chartViewAnchor.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in app/src/utils/chartViewAnchor.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df1de9ae2d338afc", "name": "Commented-code block (5 lines) in app/src/utils/barsMemCache.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/utils/barsMemCache.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8da7363b62dcc7d", "name": "Commented-code block (6 lines) in app/src/utils/barsBackfill.js:16", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/utils/barsBackfill.js:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dddeee616f3fd843", "name": "Commented-code block (8 lines) in app/src/utils/prefetchBars.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in app/src/utils/prefetchBars.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe88b01ab834e249", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/utils/prefetchBars.js:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/utils/prefetchBars.js:18"}, "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-e3c9bc863eda75cc", "name": "Legacy-named symbol `uct_bars_v1` in app/src/utils/barsIDB.js:12", "shortDescription": {"text": "Legacy-named symbol `uct_bars_v1` in app/src/utils/barsIDB.js:12"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f6345ed464e962aa", "name": "Commented-code block (5 lines) in app/src/utils/barsIDB.js:20", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/utils/barsIDB.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea7fc9446729ec94", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/AlertBell.jsx:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/AlertBell.jsx:9"}, "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-9ce1c6ae00745e5d", "name": "Commented-code block (5 lines) in app/src/components/RouteErrorBoundary.jsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/RouteErrorBoundary.jsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79f18c906ad23e5b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/NavBar.jsx:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/NavBar.jsx:9"}, "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-3b8d328c54557534", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/MobileNav.jsx:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/MobileNav.jsx:13"}, "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-81e7dbb6c36865d3", "name": "Commented-code block (6 lines) in app/src/components/StockChart.jsx:48", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/components/StockChart.jsx:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-498ca00d49791e1b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/StockChart.jsx:560", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/StockChart.jsx:560"}, "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-1733ff7678c09236", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/TickerActions.jsx:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/TickerActions.jsx:86"}, "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-4792518bb242490a", "name": "Commented-code block (5 lines) in app/src/components/CompanyLogo.jsx:30", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/CompanyLogo.jsx:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd95304d4bc08e85", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/CompanyLogo.jsx:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/CompanyLogo.jsx:17"}, "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-550ead57d7799b01", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/MoversSidebar.jsx:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/MoversSidebar.jsx:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-625f3743367351bc", "name": "Commented-code block (6 lines) in app/src/components/IntradayDayPopover.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/components/IntradayDayPopover.jsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d57dcf7b6e491a9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/IntradayDayPopover.jsx:87", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/IntradayDayPopover.jsx:87"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0baaa098d3a0181f", "name": "Legacy-named symbol `uct_intro_seen_v1` in app/src/components/intro/introStorage.js:1", "shortDescription": {"text": "Legacy-named symbol `uct_intro_seen_v1` in app/src/components/intro/introStorage.js:1"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-18f15faef3a093b0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/voice/VoiceTelemetryPanel.jsx:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/voice/VoiceTelemetryPanel.jsx:35"}, "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-7b07f1aa492cc543", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/voice/VisionAttachButton.jsx:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/voice/VisionAttachButton.jsx:46"}, "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-51e27cb6f63cf4d0", "name": "Commented-code block (6 lines) in app/src/components/voice/AudioPlayerBar.test.jsx:94", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/components/voice/AudioPlayerBar.test.jsx:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d077873c2f29e465", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/admin/TwitterAccountsPanel.jsx:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/admin/TwitterAccountsPanel.jsx:11"}, "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-4788604a50586a7e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/chart/SymbolSearch.jsx:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/chart/SymbolSearch.jsx:100"}, "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-9471855fa212e691", "name": "Commented-code block (8 lines) in app/src/components/chart/indicators.test.js:32", "shortDescription": {"text": "Commented-code block (8 lines) in app/src/components/chart/indicators.test.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4db33697e42f2f6", "name": "Commented-code block (8 lines) in app/src/components/chart/swingPivots.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in app/src/components/chart/swingPivots.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ffbda6e55cc84fb8", "name": "Commented-code block (5 lines) in app/src/components/chart/lightThemePalette.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/chart/lightThemePalette.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13bbf124a6e909be", "name": "Commented-code block (5 lines) in app/src/components/chart/indicators.js:193", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/chart/indicators.js:193"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ede0e18ea2b75552", "name": "Commented-code block (5 lines) in app/src/components/chart/ChartDrawingOverlay.jsx:203", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/chart/ChartDrawingOverlay.jsx:203"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eb54a25bb3482d7", "name": "Commented-code block (9 lines) in app/src/components/chart/PatternSidePanel.jsx:7", "shortDescription": {"text": "Commented-code block (9 lines) in app/src/components/chart/PatternSidePanel.jsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fdd0f6b821f8c880", "name": "Commented-code block (7 lines) in app/src/components/chart/liveBarClassify.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in app/src/components/chart/liveBarClassify.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4227b9c71501f539", "name": "Commented-code block (7 lines) in app/src/components/chart/ChartCalloutOverlay.jsx:20", "shortDescription": {"text": "Commented-code block (7 lines) in app/src/components/chart/ChartCalloutOverlay.jsx:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a2fdcda9644738c", "name": "Commented-code block (5 lines) in app/src/components/chart/patternShapes/CandleMark.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/chart/patternShapes/CandleMark.jsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de9ffc0ffdf748c0", "name": "Commented-code block (5 lines) in app/src/components/tiles/MarketBreadth.test.jsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/tiles/MarketBreadth.test.jsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ce266fccc04e415", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/RegimeTile.jsx:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/RegimeTile.jsx:12"}, "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-f0f8bb7d6facb930", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/MarketBreadth.jsx:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/MarketBreadth.jsx:8"}, "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-7b9b159b0703d16a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/CompassTodayTile.jsx:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/CompassTodayTile.jsx:23"}, "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-e67b2312902b532c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/ThemeTracker.jsx:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/ThemeTracker.jsx:10"}, "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-f816ab94d1066fd8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/CatalystFlow.jsx:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/CatalystFlow.jsx:12"}, "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-3546d069a3b5a2e0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/MARelationship.jsx:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/MARelationship.jsx:6"}, "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-45292369da449b2a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/UCT20Backtest.jsx:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/UCT20Backtest.jsx:10"}, "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-08e17b99d6260850", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/NewsFeed.jsx:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/NewsFeed.jsx:9"}, "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-6202f4558ea15e13", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/UCT20Performance.jsx:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/UCT20Performance.jsx:8"}, "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-18c7fd3dbd8131a7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/LeadershipTile.jsx:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/LeadershipTile.jsx:12"}, "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-c39bb52e54003643", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/IntradayPulse.jsx:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/IntradayPulse.jsx:5"}, "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-07c99788ab0f9861", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/EpisodicPivots.jsx:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/EpisodicPivots.jsx:7"}, "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-f9da7e3f2c3075d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/FuturesStrip.jsx:423", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/FuturesStrip.jsx:423"}, "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-30633af2be8bd046", "name": "Commented-code block (9 lines) in app/src/components/calendar/CallRecapSection.jsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in app/src/components/calendar/CallRecapSection.jsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be7bb2b3ba5f4814", "name": "Commented-code block (5 lines) in app/src/components/calendar/SentimentGauge.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/components/calendar/SentimentGauge.jsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83350d2208c2eae5", "name": "Commented-code block (12 lines) in app/src/lib/journal-2-0/calculations.test.js:106", "shortDescription": {"text": "Commented-code block (12 lines) in app/src/lib/journal-2-0/calculations.test.js:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-393968ac4f0eea1e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Settings.jsx:293", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Settings.jsx:293"}, "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-f42e2ede0aa588c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Breadth.jsx:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Breadth.jsx:23"}, "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-b13a99f6c22ae3ed", "name": "Commented-code block (6 lines) in app/src/pages/OptionsFlow.jsx:958", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/pages/OptionsFlow.jsx:958"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ab3171c3b1ea3c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/OptionsFlow.jsx:1677", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/OptionsFlow.jsx:1677"}, "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-56833e69a6adeb1a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Patterns.jsx:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Patterns.jsx:7"}, "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-fa13b6ec07a64824", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/SetupLibrary.jsx:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/SetupLibrary.jsx:8"}, "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-b6417fe631262c03", "name": "Commented-code block (5 lines) in app/src/pages/DarkPool.jsx:75", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/DarkPool.jsx:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9d4280e322313b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/DarkPool.jsx:986", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/DarkPool.jsx:986"}, "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-082fd6914da07816", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/PostMarket.jsx:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/PostMarket.jsx:5"}, "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-e54aaab8f773052b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/MorningWire.jsx:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/MorningWire.jsx:18"}, "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-b73e679af951d03a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/CatalystsHistory.jsx:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/CatalystsHistory.jsx:16"}, "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-fd92216f91bfb25d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/UCT20.jsx:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/UCT20.jsx:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5d7534fdf8c305b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Admin.jsx:708", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Admin.jsx:708"}, "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-bb5a30cc9261c5ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Watchlists.jsx:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Watchlists.jsx:17"}, "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-96a45277a4b66927", "name": "Legacy-named symbol `modelbook_panel_width_v2` in app/src/pages/ModelBook.jsx:2080", "shortDescription": {"text": "Legacy-named symbol `modelbook_panel_width_v2` in app/src/pages/ModelBook.jsx:2080"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4bf187de664fefb3", "name": "Commented-code block (6 lines) in app/src/pages/ModelBook.jsx:548", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/pages/ModelBook.jsx:548"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4e12ec0dd3564bb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/ModelBook.jsx:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/ModelBook.jsx:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c03055a3f8a09bb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Traders.jsx:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Traders.jsx:5"}, "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-3a671a9379c55455", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/RiskDashboard.jsx:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/RiskDashboard.jsx:25"}, "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-eff841c9a98d7a2f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/BreadthCharts.jsx:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/BreadthCharts.jsx:7"}, "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-ed97367e0c9e58ea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Screener.jsx:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Screener.jsx:10"}, "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-fe8a6083e983a73c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/CustomScan.jsx:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/CustomScan.jsx:17"}, "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-2676fbf8026e6a45", "name": "Commented-code block (6 lines) in app/src/pages/LiveFlow.jsx:670", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/pages/LiveFlow.jsx:670"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b9fdd8d73e9db01", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/LiveFlow.jsx:1020", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/LiveFlow.jsx:1020"}, "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-4e8124f2036e90ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/ThemeTrackerPage.jsx:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/ThemeTrackerPage.jsx:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a65ea7c4350ea7b", "name": "Commented-code block (5 lines) in app/src/pages/breadth/grouping/groupItems.js:11", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/breadth/grouping/groupItems.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51a320b26bff31d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/breadth/grouping/useGroupMeta.js:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/breadth/grouping/useGroupMeta.js:16"}, "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-282e529f2f160e45", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:68"}, "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-edea70a4e0ef42fc", "name": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/AddPositionModal.jsx:157", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/AddPositionModal.jsx:157"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-621572f6d810fc3e", "name": "Commented-code block (6 lines) in app/src/pages/journal-2-0/components/CompassChat.jsx:30", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/pages/journal-2-0/components/CompassChat.jsx:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfec1def170b98b6", "name": "Commented-code block (6 lines) in app/src/pages/journal-2-0/components/TraderDetail.jsx:66", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/pages/journal-2-0/components/TraderDetail.jsx:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b4257952dda4a01", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/ReportPage.jsx:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/ReportPage.jsx:20"}, "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-16ddefcc75d2ba02", "name": "Commented-code block (9 lines) in app/src/pages/journal-2-0/components/StatsGrid.test.jsx:128", "shortDescription": {"text": "Commented-code block (9 lines) in app/src/pages/journal-2-0/components/StatsGrid.test.jsx:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4a80e491b780221", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/TradeReviewCard.jsx:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/TradeReviewCard.jsx:49"}, "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-93e9a2452cbcf722", "name": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/PositionsTable.jsx:50", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/PositionsTable.jsx:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf604195e69e2392", "name": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/options/AddOptionStrategyModal.jsx:81", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/options/AddOptionStrategyModal.jsx:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1aacd485361cba55", "name": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:25", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4ec0a934ea09520", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:210", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:210"}, "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-afe0329e8ce04ed1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/accounts/GoalProgress.jsx:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/accounts/GoalProgress.jsx:20"}, "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-a83d42ef9bbcd61a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2SetupStats.js:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2SetupStats.js:11"}, "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-4b9b6496320ab5d6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useCompassOverview.js:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useCompassOverview.js:8"}, "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-dbbcb72832f4070e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2TraderProfile.js:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2TraderProfile.js:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d212a884841bb184", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Analytics.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Analytics.js:7"}, "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-6b6a2d0295e43e62", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useProfileSuggestions.js:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useProfileSuggestions.js:9"}, "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-0b9b7827a0c9f700", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2DayDetail.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2DayDetail.js:6"}, "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-31c74a3b87e4a7ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CoachReviews.js:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CoachReviews.js:10"}, "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-45f8f26658325ceb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Nudges.js:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Nudges.js:9"}, "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-a354551da5c83cf1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useInterventions.js:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useInterventions.js:12"}, "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-32f50b9397e03a97", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Settings.js:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Settings.js:17"}, "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-c8bf6712d26470d3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:75", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:75"}, "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-1891f0a9a8ac3913", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Calendar.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Calendar.js:6"}, "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-f1e389ac20ea2f2b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2EODRecaps.js:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2EODRecaps.js:10"}, "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-8482057d21f9199b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2DisciplineState.js:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2DisciplineState.js:11"}, "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-01d8b28d6b35b42b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityTraders.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityTraders.js:6"}, "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-8e9196d76c00f64e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2OptionStrategies.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2OptionStrategies.js:7"}, "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-764c6273cfed7dc4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2AccountComparison.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2AccountComparison.js:6"}, "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-410a20c4f97d74ff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Accounts.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Accounts.js:6"}, "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-dea7e0acf46c307f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2NoteFolders.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2NoteFolders.js:5"}, "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-f461767684ca1b87", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useReviewedTradeIds.js:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useReviewedTradeIds.js:12"}, "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-0f2fe4d326270bbc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityPositions.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityPositions.js:6"}, "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-357a893138a75159", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b5747beb87fd483e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:80"}, "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-60437ed73234e8d1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Trades.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Trades.js:7"}, "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-c2fd2dcbae760e45", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Notes.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Notes.js:5"}, "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-935a9b8d211ffce3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityTrades.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityTrades.js:6"}, "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-f4793d4495fdddea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Positions.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Positions.js:7"}, "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-af727dd7093919d3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CurrentRegime.js:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CurrentRegime.js:9"}, "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-47d7290c5e72432f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/admin/PatternAdmin.jsx:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/admin/PatternAdmin.jsx:6"}, "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-9b605f703af84ae6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/admin/ChartHealth.jsx:160", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/admin/ChartHealth.jsx:160"}, "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-2b0ff17899122ede", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/patterns/PatternFilter.jsx:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/patterns/PatternFilter.jsx:7"}, "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-9f8fe4e7918e9ced", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/calendar/callRecap.test.jsx:299", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/calendar/callRecap.test.jsx:299"}, "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-3d189bd1eaaefb5c", "name": "Commented-code block (6 lines) in app/src/pages/calendar/MyStocksHub.jsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/pages/calendar/MyStocksHub.jsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-453d8133b3685924", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/calendar/useCalendarData.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/calendar/useCalendarData.js:5"}, "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-54b7c2519908498c", "name": "Commented-code block (5 lines) in app/src/pages/calendar/myStocksHub.test.jsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/calendar/myStocksHub.test.jsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88ea4580d65fe21f", "name": "Commented-code block (5 lines) in app/src/pages/calendar/monthGrid.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/calendar/monthGrid.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa18c161ba1c2c32", "name": "Commented-code block (7 lines) in app/src/pages/calendar/MonthView.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/src/pages/calendar/MonthView.jsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4140272f7d519b8c", "name": "Commented-code block (5 lines) in app/src/pages/modelbook/setupCatalog.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/setupCatalog.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1010abd814998a5e", "name": "Commented-code block (5 lines) in app/src/pages/modelbook/bottomsCatalog.js:127", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/bottomsCatalog.js:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50c1f012b0367035", "name": "Commented-code block (5 lines) in app/src/pages/modelbook/SetupsView.jsx:93", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/SetupsView.jsx:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c2a244d1a2ed6d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/modelbook/SetupsView.jsx:321", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/modelbook/SetupsView.jsx:321"}, "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-d1e8e1ff22c8f6fb", "name": "Commented-code block (5 lines) in app/src/pages/modelbook/setupPlaybooks.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/setupPlaybooks.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6dc975da38b2318", "name": "Commented-code block (5 lines) in app/src/hooks/useFlagged.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/hooks/useFlagged.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-777b9bd302711f8b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerTweets.js:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerTweets.js:3"}, "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-141ba550b1822dec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useUserTickerSet.js:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useUserTickerSet.js:16"}, "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-b0c30e68ea89b134", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useBatchTweetCounts.js:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useBatchTweetCounts.js:4"}, "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-1ff67b34359a7bc7", "name": "Commented-code block (5 lines) in app/src/hooks/useWatermarkDrag.js:50", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/hooks/useWatermarkDrag.js:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4070bad05568ffca", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerTags.js:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerTags.js:4"}, "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-af8014aa2672c274", "name": "Commented-code block (7 lines) in app/src/hooks/useRealtimeSession.js:345", "shortDescription": {"text": "Commented-code block (7 lines) in app/src/hooks/useRealtimeSession.js:345"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50f56d529f2817ea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useRealtimeSession.js:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useRealtimeSession.js:46"}, "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-0061463b5f25d642", "name": "Commented-code block (9 lines) in app/src/hooks/useTickerMeta.js:7", "shortDescription": {"text": "Commented-code block (9 lines) in app/src/hooks/useTickerMeta.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21cf90c6fc48669e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerMeta.js:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerMeta.js:53"}, "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-dbb80cff293d4986", "name": "Commented-code block (5 lines) in app/src/hooks/useHandsFreeMorningWire.js:73", "shortDescription": {"text": "Commented-code block (5 lines) in app/src/hooks/useHandsFreeMorningWire.js:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3acd591f0826900c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useHandsFreeMorningWire.js:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useHandsFreeMorningWire.js:65"}, "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-b92002cbd1054e73", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/usePreferences.js:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/usePreferences.js:4"}, "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-c6503bc4945f07d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useIndicatorAlerts.js:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useIndicatorAlerts.js:8"}, "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-c526cbeeabde38a2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useWatchlistPerformance.js:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useWatchlistPerformance.js:4"}, "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-76e6a58294bd91c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTweetFeed.js:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTweetFeed.js:3"}, "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-b1af7514b2138428", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useProactiveVoice.js:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useProactiveVoice.js:62"}, "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-c1a31cc08d8b7563", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/usePatternDetections.js:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/usePatternDetections.js:11"}, "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-37010a592aa9a8a8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useCatalysts.js:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useCatalysts.js:3"}, "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-2cab6800245ce463", "name": "Commented-code block (8 lines) in app/src/hooks/useWatermarkDrag.test.jsx:24", "shortDescription": {"text": "Commented-code block (8 lines) in app/src/hooks/useWatermarkDrag.test.jsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18e5462ec716e192", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useVoiceMemory.js:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useVoiceMemory.js:37"}, "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-ba53c097076c8bc6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTapeFeed.js:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTapeFeed.js:3"}, "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-b86dbed87b53e583", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useSWRWithRetry.js:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useSWRWithRetry.js:4"}, "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-05dd809d510d6ed1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/context/AuthContext.jsx:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/context/AuthContext.jsx:40"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a7f209377c6e2cb", "name": "Commented-code block (6 lines) in app/src/context/VoiceContext.jsx:101", "shortDescription": {"text": "Commented-code block (6 lines) in app/src/context/VoiceContext.jsx:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd606c90e05a30ac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 tools/stooq_fetch.mjs:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 tools/stooq_fetch.mjs:29"}, "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-1076198111a76ca7", "name": "Network/subprocess call without timeout or try/except \u2014 tools/sweep_when_deployed.py:57", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/sweep_when_deployed.py:57"}, "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-ef6a85abc8334aad", "name": "117 env vars used in code but missing from .env.example", "shortDescription": {"text": "117 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AUDIT_DIR`, `BARS_BG_DELTA_MAX`, `BARS_DELTA_HEAL_WINDOW_SECONDS`, `BARS_PREWARM_ENABLED`, `CALENDAR_ALERTS_ENABLED`, `CALENDAR_SEEN_DB_PATH`, `CATALYST_ALERTS_ENABLED`, `CATALYST_AUDIT_MIN_DOLLAR_VOL` + 109 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-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\napi/worker_main.py:loop, api/worker_main.py:loop, api/worker_main.py:loop\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\napi/discord_watchlist.py:build_messages, api/discord_watchlist.py:send_to_discord\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\napi/services/pattern_engine/detectors/classical/triple_bottom.py:detect_triple_bottom, api/services/pattern_engine/detectors/classical/triple_top.py:detect_triple_top, api/services/pattern_engine/detectors/classical/rounded_top.py:detect_rounded_top, api/services/pattern_engine/detectors/classical/rounded_base.py:detect_rounded_base\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b881770d82aef57", "name": "Frontend route `/subscribe` has no Link/navigate to it \u2014 app/src/App.jsx", "shortDescription": {"text": "Frontend route `/subscribe` has no Link/navigate to it \u2014 app/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a69a660bf2f33e0", "name": "Frontend route `/reset-password` has no Link/navigate to it \u2014 app/src/App.jsx", "shortDescription": {"text": "Frontend route `/reset-password` has no Link/navigate to it \u2014 app/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0da447485d52c0ca", "name": "Frontend route `/verify-email` has no Link/navigate to it \u2014 app/src/App.jsx", "shortDescription": {"text": "Frontend route `/verify-email` has no Link/navigate to it \u2014 app/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da5d08ce5f127879", "name": "Frontend route `/live-flow` has no Link/navigate to it \u2014 app/src/App.jsx", "shortDescription": {"text": "Frontend route `/live-flow` has no Link/navigate to it \u2014 app/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54473b6472b98867", "name": "Frontend route `/theme-tracker` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx", "shortDescription": {"text": "Frontend route `/theme-tracker` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac4363b4faddaeee", "name": "Frontend route `/watchlists` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx", "shortDescription": {"text": "Frontend route `/watchlists` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e31f7213c5ee3be", "name": "Frontend route `/multi-chart` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx", "shortDescription": {"text": "Frontend route `/multi-chart` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-32d80007465c36c6", "name": "Frontend route `/journal-2-0/calendar/:date` has no Link/navigate to it \u2014 app/src/App.jsx", "shortDescription": {"text": "Frontend route `/journal-2-0/calendar/:date` has no Link/navigate to it \u2014 app/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de02c018ac2ed3d5", "name": "Frontend route `/journal-2-0/report` has no Link/navigate to it \u2014 app/src/App.jsx", "shortDescription": {"text": "Frontend route `/journal-2-0/report` has no Link/navigate to it \u2014 app/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e17d306ff60892c", "name": "FastAPI POST `prebuild_now` without auth dependency \u2014 api/darkpool_router.py:181", "shortDescription": {"text": "FastAPI POST `prebuild_now` without auth dependency \u2014 api/darkpool_router.py:181"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a59c88de6bce256a", "name": "FastAPI POST `upload_darkpool_csv` without auth dependency \u2014 api/darkpool_router.py:224", "shortDescription": {"text": "FastAPI POST `upload_darkpool_csv` without auth dependency \u2014 api/darkpool_router.py:224"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d29c8f0f3d93b627", "name": "FastAPI POST `upload_darkpool_text` without auth dependency \u2014 api/darkpool_router.py:253", "shortDescription": {"text": "FastAPI POST `upload_darkpool_text` without auth dependency \u2014 api/darkpool_router.py:253"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02965a671ad7cdf4", "name": "FastAPI POST `prune_data` without auth dependency \u2014 api/darkpool_router.py:283", "shortDescription": {"text": "FastAPI POST `prune_data` without auth dependency \u2014 api/darkpool_router.py:283"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-24ae2a73b92a0885", "name": "FastAPI DELETE `clear_data` without auth dependency \u2014 api/darkpool_router.py:297", "shortDescription": {"text": "FastAPI DELETE `clear_data` without auth dependency \u2014 api/darkpool_router.py:297"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41c4790d23aa7f92", "name": "FastAPI POST `trigger_backfill` without auth dependency \u2014 api/dealer_positioning_router.py:104", "shortDescription": {"text": "FastAPI POST `trigger_backfill` without auth dependency \u2014 api/dealer_positioning_router.py:104"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-662ce8ca27054944", "name": "FastAPI POST `manual_compute` without auth dependency \u2014 api/dealer_positioning_router.py:164", "shortDescription": {"text": "FastAPI POST `manual_compute` without auth dependency \u2014 api/dealer_positioning_router.py:164"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6813360e4bccf6c1", "name": "FastAPI POST `post_notable` without auth dependency \u2014 api/notable_flow_router.py:26", "shortDescription": {"text": "FastAPI POST `post_notable` without auth dependency \u2014 api/notable_flow_router.py:26"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7afab901bcdb934", "name": "FastAPI POST `post_single` without auth dependency \u2014 api/notable_flow_router.py:57", "shortDescription": {"text": "FastAPI POST `post_single` without auth dependency \u2014 api/notable_flow_router.py:57"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7261e9305d8d5575", "name": "FastAPI POST `update_settings` without auth dependency \u2014 api/notable_flow_router.py:76", "shortDescription": {"text": "FastAPI POST `update_settings` without auth dependency \u2014 api/notable_flow_router.py:76"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dbb640ed76cf639d", "name": "FastAPI DELETE `clear_dedupe` without auth dependency \u2014 api/notable_flow_router.py:93", "shortDescription": {"text": "FastAPI DELETE `clear_dedupe` without auth dependency \u2014 api/notable_flow_router.py:93"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89df9c3a342de70b", "name": "FastAPI POST `run_snapshot` without auth dependency \u2014 api/oi_snapshot_router.py:39", "shortDescription": {"text": "FastAPI POST `run_snapshot` without auth dependency \u2014 api/oi_snapshot_router.py:39"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fcd35443c5263495", "name": "FastAPI POST `cancel_run` without auth dependency \u2014 api/oi_snapshot_router.py:72", "shortDescription": {"text": "FastAPI POST `cancel_run` without auth dependency \u2014 api/oi_snapshot_router.py:72"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b48d12e7fed4570", "name": "FastAPI POST `run_snapshot_sync` without auth dependency \u2014 api/oi_snapshot_router.py:81", "shortDescription": {"text": "FastAPI POST `run_snapshot_sync` without auth dependency \u2014 api/oi_snapshot_router.py:81"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91e47a856059672f", "name": "FastAPI POST `confirm_trades` without auth dependency \u2014 api/oi_snapshot_router.py:154", "shortDescription": {"text": "FastAPI POST `confirm_trades` without auth dependency \u2014 api/oi_snapshot_router.py:154"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eef6b26e90d33040", "name": "FastAPI POST `save_watchlist` without auth dependency \u2014 api/watchlist_router.py:58", "shortDescription": {"text": "FastAPI POST `save_watchlist` without auth dependency \u2014 api/watchlist_router.py:58"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3aee7bcdc1ed06ee", "name": "FastAPI POST `schwab_refresh` without auth dependency \u2014 api/schwab_router.py:75", "shortDescription": {"text": "FastAPI POST `schwab_refresh` without auth dependency \u2014 api/schwab_router.py:75"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a77a9bcf232d3335", "name": "FastAPI POST `options_quotes_batch` without auth dependency \u2014 api/schwab_router.py:99", "shortDescription": {"text": "FastAPI POST `options_quotes_batch` without auth dependency \u2014 api/schwab_router.py:99"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d319e656102bc315", "name": "FastAPI POST `track_contracts` without auth dependency \u2014 api/schwab_router.py:205", "shortDescription": {"text": "FastAPI POST `track_contracts` without auth dependency \u2014 api/schwab_router.py:205"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3a497f0d49306ca", "name": "FastAPI POST `backfill_all_contracts` without auth dependency \u2014 api/schwab_router.py:263", "shortDescription": {"text": "FastAPI POST `backfill_all_contracts` without auth dependency \u2014 api/schwab_router.py:263"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfd2b8bc5c636e01", "name": "FastAPI POST `get_earnings_dates` without auth dependency \u2014 api/schwab_router.py:652", "shortDescription": {"text": "FastAPI POST `get_earnings_dates` without auth dependency \u2014 api/schwab_router.py:652"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6596581fb6bfcb7e", "name": "FastAPI POST `save_picks` without auth dependency \u2014 api/top_flow_router.py:32", "shortDescription": {"text": "FastAPI POST `save_picks` without auth dependency \u2014 api/top_flow_router.py:32"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f29fe01a3785853", "name": "FastAPI POST `trigger_snapshot` without auth dependency \u2014 api/top_flow_router.py:45", "shortDescription": {"text": "FastAPI POST `trigger_snapshot` without auth dependency \u2014 api/top_flow_router.py:45"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b5adc2fddceb7d0", "name": "FastAPI POST `migrate_entries` without auth dependency \u2014 api/top_flow_router.py:72", "shortDescription": {"text": "FastAPI POST `migrate_entries` without auth dependency \u2014 api/top_flow_router.py:72"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a12c79f77a6454f9", "name": "FastAPI POST `trigger_archive` without auth dependency \u2014 api/top_flow_router.py:114", "shortDescription": {"text": "FastAPI POST `trigger_archive` without auth dependency \u2014 api/top_flow_router.py:114"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af1361b8efbf7f8a", "name": "FastAPI POST `wipe_all` without auth dependency \u2014 api/top_flow_router.py:123", "shortDescription": {"text": "FastAPI POST `wipe_all` without auth dependency \u2014 api/top_flow_router.py:123"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1851d2e874640a1e", "name": "FastAPI POST `review_detection` without auth dependency \u2014 api/routers/admin_patterns.py:167", "shortDescription": {"text": "FastAPI POST `review_detection` without auth dependency \u2014 api/routers/admin_patterns.py:167"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c366bc30f5cf2f4f", "name": "FastAPI POST `warm_universe` without auth dependency \u2014 api/routers/bars.py:186", "shortDescription": {"text": "FastAPI POST `warm_universe` without auth dependency \u2014 api/routers/bars.py:186"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17004c890e0cf079", "name": "FastAPI POST `warm_universe_stop` without auth dependency \u2014 api/routers/bars.py:246", "shortDescription": {"text": "FastAPI POST `warm_universe_stop` without auth dependency \u2014 api/routers/bars.py:246"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-caaa6c6f226ad2f0", "name": "FastAPI POST `refresh_bars_all_endpoint` without auth dependency \u2014 api/routers/bars.py:322", "shortDescription": {"text": "FastAPI POST `refresh_bars_all_endpoint` without auth dependency \u2014 api/routers/bars.py:322"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7d084595e1f20a2", "name": "FastAPI POST `refresh_bars_endpoint` without auth dependency \u2014 api/routers/bars.py:454", "shortDescription": {"text": "FastAPI POST `refresh_bars_endpoint` without auth dependency \u2014 api/routers/bars.py:454"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa0e52de2480b1f7", "name": "FastAPI POST `push_breadth_snapshot` without auth dependency \u2014 api/routers/breadth_monitor.py:61", "shortDescription": {"text": "FastAPI POST `push_breadth_snapshot` without auth dependency \u2014 api/routers/breadth_monitor.py:61"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d75cce6a37409b16", "name": "FastAPI DELETE `delete_breadth_snapshot` without auth dependency \u2014 api/routers/breadth_monitor.py:101", "shortDescription": {"text": "FastAPI DELETE `delete_breadth_snapshot` without auth dependency \u2014 api/routers/breadth_monitor.py:101"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b9c93feac2237ff", "name": "FastAPI POST `breadth_industries` without auth dependency \u2014 api/routers/breadth_monitor.py:128", "shortDescription": {"text": "FastAPI POST `breadth_industries` without auth dependency \u2014 api/routers/breadth_monitor.py:128"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da7718a34ed0af33", "name": "FastAPI POST `breadth_industries_refresh` without auth dependency \u2014 api/routers/breadth_monitor.py:173", "shortDescription": {"text": "FastAPI POST `breadth_industries_refresh` without auth dependency \u2014 api/routers/breadth_monitor.py:173"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdaa8bab05246714", "name": "FastAPI PATCH `patch_breadth_field` without auth dependency \u2014 api/routers/breadth_monitor.py:185", "shortDescription": {"text": "FastAPI PATCH `patch_breadth_field` without auth dependency \u2014 api/routers/breadth_monitor.py:185"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6db43d673376b1c1", "name": "FastAPI POST `forgot_password` without auth dependency \u2014 api/routers/auth.py:312", "shortDescription": {"text": "FastAPI POST `forgot_password` without auth dependency \u2014 api/routers/auth.py:312"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a313d1ab68a53844", "name": "FastAPI POST `reset_password` without auth dependency \u2014 api/routers/auth.py:325", "shortDescription": {"text": "FastAPI POST `reset_password` without auth dependency \u2014 api/routers/auth.py:325"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f015c5e64528b6ea", "name": "FastAPI POST `verify_email` without auth dependency \u2014 api/routers/auth.py:349", "shortDescription": {"text": "FastAPI POST `verify_email` without auth dependency \u2014 api/routers/auth.py:349"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8004d888fbac4f00", "name": "FastAPI POST `refresh_theme_performance` without auth dependency \u2014 api/routers/theme_performance.py:46", "shortDescription": {"text": "FastAPI POST `refresh_theme_performance` without auth dependency \u2014 api/routers/theme_performance.py:46"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d9959730bd029b2", "name": "FastAPI POST `push_wire_data` without auth dependency \u2014 api/routers/push.py:18", "shortDescription": {"text": "FastAPI POST `push_wire_data` without auth dependency \u2014 api/routers/push.py:18"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b5c12460ef8b73c", "name": "FastAPI POST `push_intraday` without auth dependency \u2014 api/routers/push.py:75", "shortDescription": {"text": "FastAPI POST `push_intraday` without auth dependency \u2014 api/routers/push.py:75"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-05217412992c595f", "name": "FastAPI POST `stripe_webhook` without auth dependency \u2014 api/routers/webhooks.py:14", "shortDescription": {"text": "FastAPI POST `stripe_webhook` without auth dependency \u2014 api/routers/webhooks.py:14"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbe53abed7c0b37e", "name": "FastAPI POST `prewarm_logos` without auth dependency \u2014 api/routers/ticker_logos.py:35", "shortDescription": {"text": "FastAPI POST `prewarm_logos` without auth dependency \u2014 api/routers/ticker_logos.py:35"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37d89107edd7d2f9", "name": "FastAPI POST `run_backtest` without auth dependency \u2014 api/routers/backtest.py:27", "shortDescription": {"text": "FastAPI POST `run_backtest` without auth dependency \u2014 api/routers/backtest.py:27"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae97ac31b01ce51c", "name": "FastAPI POST `post_feedback` without auth dependency \u2014 api/routers/patterns.py:844", "shortDescription": {"text": "FastAPI POST `post_feedback` without auth dependency \u2014 api/routers/patterns.py:844"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba985ad5d070afe6", "name": "FastAPI POST `manual_refresh` without auth dependency \u2014 api/routers/cot.py:35", "shortDescription": {"text": "FastAPI POST `manual_refresh` without auth dependency \u2014 api/routers/cot.py:35"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cbf2b19034c6cb8", "name": "FastAPI POST `force_reseed` without auth dependency \u2014 api/routers/cot.py:42", "shortDescription": {"text": "FastAPI POST `force_reseed` without auth dependency \u2014 api/routers/cot.py:42"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea985139565c10d6", "name": "FastAPI POST `read_alert` without auth dependency \u2014 api/routers/alerts.py:14", "shortDescription": {"text": "FastAPI POST `read_alert` without auth dependency \u2014 api/routers/alerts.py:14"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9780027fa8777deb", "name": "FastAPI POST `read_all` without auth dependency \u2014 api/routers/alerts.py:21", "shortDescription": {"text": "FastAPI POST `read_all` without auth dependency \u2014 api/routers/alerts.py:21"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a2faf64d966ee9a", "name": "FastAPI POST `add_trade` without auth dependency \u2014 api/routers/trades.py:46", "shortDescription": {"text": "FastAPI POST `add_trade` without auth dependency \u2014 api/routers/trades.py:46"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7c841cb3ab170278", "name": "FastAPI POST `track_event` without auth dependency \u2014 api/routers/landing_analytics.py:69", "shortDescription": {"text": "FastAPI POST `track_event` without auth dependency \u2014 api/routers/landing_analytics.py:69"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfa367affc015ae9", "name": "Dangling fetch: POST /api/landing-analytics/event (app/src/utils/landingTrack.js:58)", "shortDescription": {"text": "Dangling fetch: POST /api/landing-analytics/event (app/src/utils/landingTrack.js:58)"}, "fullDescription": {"text": "`app/src/utils/landingTrack.js:58` calls `POST /api/landing-analytics/event` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/landing-analytics/event`\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-27b60640b0e358d6", "name": "Dangling fetch: POST /api/auth/feedback (app/src/components/FeedbackWidget.jsx:76)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/feedback (app/src/components/FeedbackWidget.jsx:76)"}, "fullDescription": {"text": "`app/src/components/FeedbackWidget.jsx:76` calls `POST /api/auth/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/feedback`\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-8da31ae5c98101cf", "name": "Dangling fetch: POST /api/auth/track (app/src/components/Layout.jsx:26)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/track (app/src/components/Layout.jsx:26)"}, "fullDescription": {"text": "`app/src/components/Layout.jsx:26` calls `POST /api/auth/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/track`\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-68ec8baba17878a4", "name": "Dangling fetch: PUT /api/modelbook/stock/${stockId}/intraday-day (app/src/components/IntradayDayPopover.jsx:87)", "shortDescription": {"text": "Dangling fetch: PUT /api/modelbook/stock/${stockId}/intraday-day (app/src/components/IntradayDayPopover.jsx:87)"}, "fullDescription": {"text": "`app/src/components/IntradayDayPopover.jsx:87` calls `PUT /api/modelbook/stock/${stockId}/intraday-day` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/stock/<p>/intraday-day`\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-3dc74ba8444e9c65", "name": "Dangling fetch: GET /api/voice/tool-call-stats (app/src/components/voice/VoiceTelemetryPanel.jsx:33)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/tool-call-stats (app/src/components/voice/VoiceTelemetryPanel.jsx:33)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceTelemetryPanel.jsx:33` calls `GET /api/voice/tool-call-stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tool-call-stats`\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-aab347b9b2c24ef7", "name": "Dangling fetch: GET /api/voice/feedback/corrections (app/src/components/voice/VoiceTelemetryPanel.jsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/feedback/corrections (app/src/components/voice/VoiceTelemetryPanel.jsx:34)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceTelemetryPanel.jsx:34` calls `GET /api/voice/feedback/corrections` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/feedback/corrections`\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-c8a05d6f939aea06", "name": "Dangling fetch: GET /api/voice/feedback (app/src/components/voice/VoiceTelemetryPanel.jsx:35)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/feedback (app/src/components/voice/VoiceTelemetryPanel.jsx:35)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceTelemetryPanel.jsx:35` calls `GET /api/voice/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/feedback`\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-2cccf7ca6f37826d", "name": "Dangling fetch: GET /api/voice/failure-patterns (app/src/components/voice/VoiceTelemetryPanel.jsx:36)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/failure-patterns (app/src/components/voice/VoiceTelemetryPanel.jsx:36)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceTelemetryPanel.jsx:36` calls `GET /api/voice/failure-patterns` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/failure-patterns`\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-75556f886c3d40f1", "name": "Dangling fetch: GET /api/voice/agents/stats?days=30 (app/src/components/voice/VoiceTelemetryPanel.jsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/agents/stats?days=30 (app/src/components/voice/VoiceTelemetryPanel.jsx:37)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceTelemetryPanel.jsx:37` calls `GET /api/voice/agents/stats?days=30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/agents/stats`\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-f71f53ee393191c2", "name": "Dangling fetch: GET /api/voice/reward/scoreboard?days=30 (app/src/components/voice/VoiceTelemetryPanel.jsx:38)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/reward/scoreboard?days=30 (app/src/components/voice/VoiceTelemetryPanel.jsx:38)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceTelemetryPanel.jsx:38` calls `GET /api/voice/reward/scoreboard?days=30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/reward/scoreboard`\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-1951ce9d36d7b9a6", "name": "Dangling fetch: GET /api/voice/cost (app/src/components/voice/VoiceTelemetryPanel.jsx:39)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/cost (app/src/components/voice/VoiceTelemetryPanel.jsx:39)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceTelemetryPanel.jsx:39` calls `GET /api/voice/cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/cost`\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-977d7353f94717a2", "name": "Dangling fetch: GET /api/voice/settings (app/src/components/voice/AudioPlayerBar.jsx:52)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/settings (app/src/components/voice/AudioPlayerBar.jsx:52)"}, "fullDescription": {"text": "`app/src/components/voice/AudioPlayerBar.jsx:52` calls `GET /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-72fd14e3050e02ab", "name": "Dangling fetch: PUT /api/voice/settings (app/src/components/voice/AudioPlayerBar.jsx:191)", "shortDescription": {"text": "Dangling fetch: PUT /api/voice/settings (app/src/components/voice/AudioPlayerBar.jsx:191)"}, "fullDescription": {"text": "`app/src/components/voice/AudioPlayerBar.jsx:191` calls `PUT /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-d13302018ab466fa", "name": "Dangling fetch: POST /api/voice/feedback (app/src/components/voice/TranscriptBubble.jsx:24)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/feedback (app/src/components/voice/TranscriptBubble.jsx:24)"}, "fullDescription": {"text": "`app/src/components/voice/TranscriptBubble.jsx:24` calls `POST /api/voice/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/feedback`\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-a23e8ba573a43128", "name": "Dangling fetch: GET /api/voice/insights (app/src/components/voice/VoiceInsightsPanel.jsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/insights (app/src/components/voice/VoiceInsightsPanel.jsx:37)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceInsightsPanel.jsx:37` calls `GET /api/voice/insights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/insights`\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-b1e7906c9405257b", "name": "Dangling fetch: POST /api/voice/insights/${id}/dismiss (app/src/components/voice/VoiceInsightsPanel.jsx:52)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/insights/${id}/dismiss (app/src/components/voice/VoiceInsightsPanel.jsx:52)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceInsightsPanel.jsx:52` calls `POST /api/voice/insights/${id}/dismiss` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/insights/<p>/dismiss`\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-2fef4cfa451cc328", "name": "Dangling fetch: POST /api/voice/insights/scan (app/src/components/voice/VoiceInsightsPanel.jsx:65)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/insights/scan (app/src/components/voice/VoiceInsightsPanel.jsx:65)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceInsightsPanel.jsx:65` calls `POST /api/voice/insights/scan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/insights/scan`\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-2f5dceb247fb65e0", "name": "Dangling fetch: POST /api/voice/vision/upload (app/src/components/voice/VisionAttachButton.jsx:46)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/vision/upload (app/src/components/voice/VisionAttachButton.jsx:46)"}, "fullDescription": {"text": "`app/src/components/voice/VisionAttachButton.jsx:46` calls `POST /api/voice/vision/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/vision/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-38d95da5d3950af7", "name": "Dangling fetch: GET /api/voice/sessions?limit=50 (app/src/components/voice/VoiceSessionsPanel.jsx:24)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/sessions?limit=50 (app/src/components/voice/VoiceSessionsPanel.jsx:24)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceSessionsPanel.jsx:24` calls `GET /api/voice/sessions?limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/sessions`\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-17ba464e5dc274c4", "name": "Dangling fetch: GET /api/voice/sessions/${sid}/trace (app/src/components/voice/VoiceSessionsPanel.jsx:40)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/sessions/${sid}/trace (app/src/components/voice/VoiceSessionsPanel.jsx:40)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceSessionsPanel.jsx:40` calls `GET /api/voice/sessions/${sid}/trace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/sessions/<p>/trace`\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-3a25a102303d8225", "name": "Dangling fetch: GET /api/voice/agents (app/src/components/voice/AgentPicker.jsx:30)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/agents (app/src/components/voice/AgentPicker.jsx:30)"}, "fullDescription": {"text": "`app/src/components/voice/AgentPicker.jsx:30` calls `GET /api/voice/agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/agents`\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-79488fa1c3472200", "name": "Dangling fetch: GET /api/voice/documents (app/src/components/voice/VoiceDocumentsPanel.jsx:26)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/documents (app/src/components/voice/VoiceDocumentsPanel.jsx:26)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceDocumentsPanel.jsx:26` calls `GET /api/voice/documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/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-1e4425b3488bafd8", "name": "Dangling fetch: POST /api/voice/documents/upload (app/src/components/voice/VoiceDocumentsPanel.jsx:49)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/documents/upload (app/src/components/voice/VoiceDocumentsPanel.jsx:49)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceDocumentsPanel.jsx:49` calls `POST /api/voice/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: `/voice/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-21797b19bcb3c3ec", "name": "Dangling fetch: POST /api/voice/documents/ingest-text (app/src/components/voice/VoiceDocumentsPanel.jsx:74)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/documents/ingest-text (app/src/components/voice/VoiceDocumentsPanel.jsx:74)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceDocumentsPanel.jsx:74` calls `POST /api/voice/documents/ingest-text` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/documents/ingest-text`\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-c7e522af1e3619d3", "name": "Dangling fetch: DELETE /api/voice/documents/${docId} (app/src/components/voice/VoiceDocumentsPanel.jsx:98)", "shortDescription": {"text": "Dangling fetch: DELETE /api/voice/documents/${docId} (app/src/components/voice/VoiceDocumentsPanel.jsx:98)"}, "fullDescription": {"text": "`app/src/components/voice/VoiceDocumentsPanel.jsx:98` calls `DELETE /api/voice/documents/${docId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/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-318b5711fe60de56", "name": "Dangling fetch: POST /api/admin/twitter-accounts (app/src/components/admin/TwitterAccountsPanel.jsx:64)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/twitter-accounts (app/src/components/admin/TwitterAccountsPanel.jsx:64)"}, "fullDescription": {"text": "`app/src/components/admin/TwitterAccountsPanel.jsx:64` calls `POST /api/admin/twitter-accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/twitter-accounts`\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-bfec592fdb5ae1ac", "name": "Dangling fetch: PATCH /api/admin/twitter-accounts/${handle} (app/src/components/admin/TwitterAccountsPanel.jsx:80)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/twitter-accounts/${handle} (app/src/components/admin/TwitterAccountsPanel.jsx:80)"}, "fullDescription": {"text": "`app/src/components/admin/TwitterAccountsPanel.jsx:80` calls `PATCH /api/admin/twitter-accounts/${handle}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/twitter-accounts/<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-d8a80076173555d5", "name": "Dangling fetch: DELETE /api/admin/twitter-accounts/${handle} (app/src/components/admin/TwitterAccountsPanel.jsx:90)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/twitter-accounts/${handle} (app/src/components/admin/TwitterAccountsPanel.jsx:90)"}, "fullDescription": {"text": "`app/src/components/admin/TwitterAccountsPanel.jsx:90` calls `DELETE /api/admin/twitter-accounts/${handle}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/twitter-accounts/<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-a2afd5908d82c48f", "name": "Dangling fetch: POST /api/admin/twitter-accounts/${handle}/force-poll (app/src/components/admin/TwitterAccountsPanel.jsx", "shortDescription": {"text": "Dangling fetch: POST /api/admin/twitter-accounts/${handle}/force-poll (app/src/components/admin/TwitterAccountsPanel.jsx:95)"}, "fullDescription": {"text": "`app/src/components/admin/TwitterAccountsPanel.jsx:95` calls `POST /api/admin/twitter-accounts/${handle}/force-poll` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/twitter-accounts/<p>/force-poll`\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-207d2d881b60e700", "name": "Dangling fetch: POST /api/patterns/${encodeURIComponent(detection.id)}/feedback (app/src/components/chart/PatternSidePan", "shortDescription": {"text": "Dangling fetch: POST /api/patterns/${encodeURIComponent(detection.id)}/feedback (app/src/components/chart/PatternSidePanel.jsx:110)"}, "fullDescription": {"text": "`app/src/components/chart/PatternSidePanel.jsx:110` calls `POST /api/patterns/${encodeURIComponent(detection.id)}/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/patterns/<p>/feedback`\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-395c318a9cab27f7", "name": "Dangling fetch: GET /api/auth/avatar/${userId} (app/src/pages/Settings.jsx:77)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/avatar/${userId} (app/src/pages/Settings.jsx:77)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:77` calls `GET /api/auth/avatar/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/avatar/<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-b9b0fd8b118b3faa", "name": "Dangling fetch: POST /api/auth/avatar (app/src/pages/Settings.jsx:93)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/avatar (app/src/pages/Settings.jsx:93)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:93` calls `POST /api/auth/avatar` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/avatar`\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-bcb060991ef21958", "name": "Dangling fetch: DELETE /api/auth/avatar (app/src/pages/Settings.jsx:103)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/avatar (app/src/pages/Settings.jsx:103)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:103` calls `DELETE /api/auth/avatar` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/avatar`\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-d3359a0451428233", "name": "Dangling fetch: POST /api/voice/tts (app/src/pages/Settings.jsx:182)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/Settings.jsx:182)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:182` calls `POST /api/voice/tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts`\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-9dbbd06b391ed9cd", "name": "Dangling fetch: GET /api/voice/settings (app/src/pages/Settings.jsx:293)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/Settings.jsx:293)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:293` calls `GET /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-9cc9557c2ea8d242", "name": "Dangling fetch: GET /api/voice/usage (app/src/pages/Settings.jsx:294)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/usage (app/src/pages/Settings.jsx:294)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:294` calls `GET /api/voice/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/usage`\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-4917e8949a63ed58", "name": "Dangling fetch: PUT /api/voice/settings (app/src/pages/Settings.jsx:309)", "shortDescription": {"text": "Dangling fetch: PUT /api/voice/settings (app/src/pages/Settings.jsx:309)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:309` calls `PUT /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-6e2e26f6d9157426", "name": "Dangling fetch: GET /api/auth/my-referral (app/src/pages/Settings.jsx:757)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/my-referral (app/src/pages/Settings.jsx:757)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:757` calls `GET /api/auth/my-referral` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/my-referral`\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-a5b0cceb5d2cd8c9", "name": "Dangling fetch: POST /api/auth/change-password (app/src/pages/Settings.jsx:847)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/change-password (app/src/pages/Settings.jsx:847)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:847` calls `POST /api/auth/change-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/change-password`\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-393a2b7a6ed51d61", "name": "Dangling fetch: POST /api/auth/update-profile (app/src/pages/Settings.jsx:869)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/update-profile (app/src/pages/Settings.jsx:869)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:869` calls `POST /api/auth/update-profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/update-profile`\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-6ee202bf42e1d3bc", "name": "Dangling fetch: GET /api/auth/export-data (app/src/pages/Settings.jsx:1303)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/export-data (app/src/pages/Settings.jsx:1303)"}, "fullDescription": {"text": "`app/src/pages/Settings.jsx:1303` calls `GET /api/auth/export-data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/export-data`\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-2bfc514cb0be1c58", "name": "Dangling fetch: GET /api/auth/tickets (app/src/pages/Support.jsx:80)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/tickets (app/src/pages/Support.jsx:80)"}, "fullDescription": {"text": "`app/src/pages/Support.jsx:80` calls `GET /api/auth/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/tickets`\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-11b0c29f6baf3e7b", "name": "Dangling fetch: GET /api/auth/tickets/${ticketId} (app/src/pages/Support.jsx:92)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/tickets/${ticketId} (app/src/pages/Support.jsx:92)"}, "fullDescription": {"text": "`app/src/pages/Support.jsx:92` calls `GET /api/auth/tickets/${ticketId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/tickets/<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-c53780a804b21e42", "name": "Dangling fetch: GET /api/auth/tickets/${activeTicketId} (app/src/pages/Support.jsx:110)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/tickets/${activeTicketId} (app/src/pages/Support.jsx:110)"}, "fullDescription": {"text": "`app/src/pages/Support.jsx:110` calls `GET /api/auth/tickets/${activeTicketId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/tickets/<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-d8f26044bfeb0a03", "name": "Dangling fetch: POST /api/auth/tickets (app/src/pages/Support.jsx:142)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/tickets (app/src/pages/Support.jsx:142)"}, "fullDescription": {"text": "`app/src/pages/Support.jsx:142` calls `POST /api/auth/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/tickets`\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-2534e32ffa0beb72", "name": "Dangling fetch: POST /api/auth/tickets/${activeTicketId}/messages (app/src/pages/Support.jsx:163)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/tickets/${activeTicketId}/messages (app/src/pages/Support.jsx:163)"}, "fullDescription": {"text": "`app/src/pages/Support.jsx:163` calls `POST /api/auth/tickets/${activeTicketId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/tickets/<p>/messages`\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-1ca93233a9bdd394", "name": "Dangling fetch: POST /api/auth/tickets/${activeTicketId}/messages (app/src/pages/Support.jsx:184)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/tickets/${activeTicketId}/messages (app/src/pages/Support.jsx:184)"}, "fullDescription": {"text": "`app/src/pages/Support.jsx:184` calls `POST /api/auth/tickets/${activeTicketId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/tickets/<p>/messages`\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-d8326a6e39671a54", "name": "Dangling fetch: GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(sym)}&days=180&limit=100 (app/src/pages/Options", "shortDescription": {"text": "Dangling fetch: GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(sym)}&days=180&limit=100 (app/src/pages/OptionsFlow.jsx:1368)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:1368` calls `GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(sym)}&days=180&limit=100` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/darkpool/ticker-detail`\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-cd0e89f59fef15d6", "name": "Dangling fetch: GET /api/flow/version (app/src/pages/OptionsFlow.jsx:1535)", "shortDescription": {"text": "Dangling fetch: GET /api/flow/version (app/src/pages/OptionsFlow.jsx:1535)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:1535` calls `GET /api/flow/version` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/flow/version`\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-b58e6eb52d8afde2", "name": "Dangling fetch: POST /api/watchlist/save (app/src/pages/OptionsFlow.jsx:2382)", "shortDescription": {"text": "Dangling fetch: POST /api/watchlist/save (app/src/pages/OptionsFlow.jsx:2382)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:2382` calls `POST /api/watchlist/save` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/watchlist/save`\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-48f491bc1f2f37ec", "name": "Dangling fetch: GET /api/watchlist/dates (app/src/pages/OptionsFlow.jsx:2385)", "shortDescription": {"text": "Dangling fetch: GET /api/watchlist/dates (app/src/pages/OptionsFlow.jsx:2385)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:2385` calls `GET /api/watchlist/dates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/watchlist/dates`\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-efe0a9876a2a9eb3", "name": "Dangling fetch: POST /api/top-flow/save (app/src/pages/OptionsFlow.jsx:2514)", "shortDescription": {"text": "Dangling fetch: POST /api/top-flow/save (app/src/pages/OptionsFlow.jsx:2514)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:2514` calls `POST /api/top-flow/save` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/save`\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-80c524054539265f", "name": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:2517)", "shortDescription": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:2517)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:2517` calls `GET /api/top-flow/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/history`\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-d038d2ef98e4e721", "name": "Dangling fetch: GET /api/watchlist/dates (app/src/pages/OptionsFlow.jsx:2535)", "shortDescription": {"text": "Dangling fetch: GET /api/watchlist/dates (app/src/pages/OptionsFlow.jsx:2535)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:2535` calls `GET /api/watchlist/dates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/watchlist/dates`\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-977353ec435a732a", "name": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:2542)", "shortDescription": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:2542)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:2542` calls `GET /api/top-flow/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/history`\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-6b2eda2f34048d17", "name": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:2659)", "shortDescription": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:2659)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:2659` calls `POST /api/schwab/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/options-quotes`\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-d2328408d0fffb48", "name": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:3053)", "shortDescription": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:3053)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3053` calls `POST /api/schwab/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/options-quotes`\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-400790b19566735b", "name": "Dangling fetch: GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${p", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${parseFloat(strike)}&exp=${encodeURIComponent(exp)} (app/src/pages/OptionsFlow.jsx:3115)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3115` calls `GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${parseFloat(strike)}&exp=${encodeURIComponent(exp)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/backfill-contract`\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-bc8b8e90796cf406", "name": "Dangling fetch: GET /api/schwab/contract-history?${params} (app/src/pages/OptionsFlow.jsx:3117)", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/contract-history?${params} (app/src/pages/OptionsFlow.jsx:3117)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3117` calls `GET /api/schwab/contract-history?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/contract-history`\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-2d854f93486cbe31", "name": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:3135)", "shortDescription": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:3135)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3135` calls `POST /api/schwab/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/options-quotes`\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-d2c705322b24f543", "name": "Dangling fetch: GET /api/gex/data?ticker=${encodeURIComponent(ticker)}&dte=${dte} (app/src/pages/OptionsFlow.jsx:3162)", "shortDescription": {"text": "Dangling fetch: GET /api/gex/data?ticker=${encodeURIComponent(ticker)}&dte=${dte} (app/src/pages/OptionsFlow.jsx:3162)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3162` calls `GET /api/gex/data?ticker=${encodeURIComponent(ticker)}&dte=${dte}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gex/data`\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-f5e99b1ea9d0dfc4", "name": "Dangling fetch: GET /api/gex/data?ticker=${encodeURIComponent(sym)}&dte=month (app/src/pages/OptionsFlow.jsx:3179)", "shortDescription": {"text": "Dangling fetch: GET /api/gex/data?ticker=${encodeURIComponent(sym)}&dte=month (app/src/pages/OptionsFlow.jsx:3179)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3179` calls `GET /api/gex/data?ticker=${encodeURIComponent(sym)}&dte=month` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gex/data`\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-0e7f7787ffba4214", "name": "Dangling fetch: GET /api/schwab/market-summary (app/src/pages/OptionsFlow.jsx:3195)", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/market-summary (app/src/pages/OptionsFlow.jsx:3195)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3195` calls `GET /api/schwab/market-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/market-summary`\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-04ae2b2071e0ce70", "name": "Dangling fetch: GET /api/schwab/market-narrative (app/src/pages/OptionsFlow.jsx:3204)", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/market-narrative (app/src/pages/OptionsFlow.jsx:3204)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:3204` calls `GET /api/schwab/market-narrative` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/market-narrative`\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-e6aa4df2c2ae5834", "name": "Dangling fetch: POST /api/top-flow/snapshot (app/src/pages/OptionsFlow.jsx:7226)", "shortDescription": {"text": "Dangling fetch: POST /api/top-flow/snapshot (app/src/pages/OptionsFlow.jsx:7226)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:7226` calls `POST /api/top-flow/snapshot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/snapshot`\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-d21688edab6b671a", "name": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:7226)", "shortDescription": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:7226)"}, "fullDescription": {"text": "`app/src/pages/OptionsFlow.jsx:7226` calls `GET /api/top-flow/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/history`\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-0fd53b1cf828456b", "name": "Dangling fetch: GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(it.t)}&days=${tf.days}&limit=${tf.limit} (app/s", "shortDescription": {"text": "Dangling fetch: GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(it.t)}&days=${tf.days}&limit=${tf.limit} (app/src/pages/DarkPool.jsx:1031)"}, "fullDescription": {"text": "`app/src/pages/DarkPool.jsx:1031` calls `GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(it.t)}&days=${tf.days}&limit=${tf.limit}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/darkpool/ticker-detail`\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-1c629ba3245e9b7c", "name": "Dangling fetch: POST /api/darkpool/prebuild (app/src/pages/DarkPool.jsx:2845)", "shortDescription": {"text": "Dangling fetch: POST /api/darkpool/prebuild (app/src/pages/DarkPool.jsx:2845)"}, "fullDescription": {"text": "`app/src/pages/DarkPool.jsx:2845` calls `POST /api/darkpool/prebuild` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/darkpool/prebuild`\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-274aa58a785d6a88", "name": "Dangling fetch: POST /api/auth/forgot-password (app/src/pages/ForgotPassword.jsx:16)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/forgot-password (app/src/pages/ForgotPassword.jsx:16)"}, "fullDescription": {"text": "`app/src/pages/ForgotPassword.jsx:16` calls `POST /api/auth/forgot-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/forgot-password`\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-e39f415b1d5ea611", "name": "Dangling fetch: POST /api/auth/verify-email (app/src/pages/VerifyEmail.jsx:25)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/verify-email (app/src/pages/VerifyEmail.jsx:25)"}, "fullDescription": {"text": "`app/src/pages/VerifyEmail.jsx:25` calls `POST /api/auth/verify-email` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/verify-email`\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-bbfbcd02fc1dfa81", "name": "Dangling fetch: POST /api/auth/reset-password (app/src/pages/ResetPassword.jsx:29)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/reset-password (app/src/pages/ResetPassword.jsx:29)"}, "fullDescription": {"text": "`app/src/pages/ResetPassword.jsx:29` calls `POST /api/auth/reset-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/reset-password`\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-7deb65e2600e6b2f", "name": "Dangling fetch: POST /api/auth/admin/send-announcement (app/src/pages/Admin.jsx:254)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/send-announcement (app/src/pages/Admin.jsx:254)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:254` calls `POST /api/auth/admin/send-announcement` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/send-announcement`\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-4fde52db3bb92f83", "name": "Dangling fetch: GET /api/auth/admin/todos (app/src/pages/Admin.jsx:334)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/todos (app/src/pages/Admin.jsx:334)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:334` calls `GET /api/auth/admin/todos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/todos`\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-422bc02bdb7f9905", "name": "Dangling fetch: POST /api/auth/admin/todos (app/src/pages/Admin.jsx:348)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/todos (app/src/pages/Admin.jsx:348)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:348` calls `POST /api/auth/admin/todos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/todos`\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-c9c91bbd8604580c", "name": "Dangling fetch: POST /api/auth/admin/todos/${todo.id}/done (app/src/pages/Admin.jsx:364)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/todos/${todo.id}/done (app/src/pages/Admin.jsx:364)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:364` calls `POST /api/auth/admin/todos/${todo.id}/done` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/todos/<p>/done`\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-76f899c63e23c121", "name": "Dangling fetch: DELETE /api/auth/admin/todos/${todo.id} (app/src/pages/Admin.jsx:377)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/admin/todos/${todo.id} (app/src/pages/Admin.jsx:377)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:377` calls `DELETE /api/auth/admin/todos/${todo.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/todos/<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-6395ce13af71c351", "name": "Dangling fetch: GET /api/auth/admin/analytics?days=7 (app/src/pages/Admin.jsx:588)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/analytics?days=7 (app/src/pages/Admin.jsx:588)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:588` calls `GET /api/auth/admin/analytics?days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/analytics`\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-3f6afb259d35fe47", "name": "Dangling fetch: POST /api/auth/admin/users/${userId}/tags (app/src/pages/Admin.jsx:655)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/tags (app/src/pages/Admin.jsx:655)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:655` calls `POST /api/auth/admin/users/${userId}/tags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/tags`\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-5975ef479e93b236", "name": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:660)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:660)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:660` calls `GET /api/auth/admin/users/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<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-cda503e6d87c2bd4", "name": "Dangling fetch: DELETE /api/auth/admin/users/${userId}/tags/${encodeURIComponent(tag)} (app/src/pages/Admin.jsx:668)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/admin/users/${userId}/tags/${encodeURIComponent(tag)} (app/src/pages/Admin.jsx:668)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:668` calls `DELETE /api/auth/admin/users/${userId}/tags/${encodeURIComponent(tag)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/tags/<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-ffbd73fd377dd25b", "name": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:669)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:669)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:669` calls `GET /api/auth/admin/users/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<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-8a2b293a5829b717", "name": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:679)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:679)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:679` calls `GET /api/auth/admin/users/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<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-f313a6360bc8e664", "name": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:702)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:702)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:702` calls `POST /api/auth/admin/comp-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/comp-access`\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-d3f2927fbc6bd179", "name": "Dangling fetch: POST /api/auth/admin/users/${userId}/verify (app/src/pages/Admin.jsx:708)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/verify (app/src/pages/Admin.jsx:708)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:708` calls `POST /api/auth/admin/users/${userId}/verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/verify`\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-d5c3c296586c0a48", "name": "Dangling fetch: POST /api/auth/admin/users/${userId}/reset-password (app/src/pages/Admin.jsx:710)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/reset-password (app/src/pages/Admin.jsx:710)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:710` calls `POST /api/auth/admin/users/${userId}/reset-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/reset-password`\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-b290c0d9e67e1b9e", "name": "Dangling fetch: DELETE /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:716)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:716)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:716` calls `DELETE /api/auth/admin/users/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<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-07c22d3e154cf774", "name": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:723)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:723)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:723` calls `GET /api/auth/admin/users/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<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-e7896a451d218356", "name": "Dangling fetch: POST /api/auth/admin/users/${userId}/notes (app/src/pages/Admin.jsx:747)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/notes (app/src/pages/Admin.jsx:747)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:747` calls `POST /api/auth/admin/users/${userId}/notes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/notes`\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-b2c8102cd213039e", "name": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:755)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:755)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:755` calls `GET /api/auth/admin/users/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<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-6c48ba4d1ba5aec9", "name": "Dangling fetch: GET /api/auth/admin/tickets/${ticketId} (app/src/pages/Admin.jsx:1089)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/tickets/${ticketId} (app/src/pages/Admin.jsx:1089)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1089` calls `GET /api/auth/admin/tickets/${ticketId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/tickets/<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-782e503172368949", "name": "Dangling fetch: GET /api/auth/admin/tickets/${ticketId} (app/src/pages/Admin.jsx:1114)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/tickets/${ticketId} (app/src/pages/Admin.jsx:1114)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1114` calls `GET /api/auth/admin/tickets/${ticketId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/tickets/<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-28dc0701f6b5a713", "name": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/reply (app/src/pages/Admin.jsx:1136)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/reply (app/src/pages/Admin.jsx:1136)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1136` calls `POST /api/auth/admin/tickets/${ticketId}/reply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/tickets/<p>/reply`\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-a858f79dcce07e3d", "name": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/status (app/src/pages/Admin.jsx:1153)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/status (app/src/pages/Admin.jsx:1153)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1153` calls `POST /api/auth/admin/tickets/${ticketId}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/tickets/<p>/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-e28991f0e9296bca", "name": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/status (app/src/pages/Admin.jsx:1165)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/status (app/src/pages/Admin.jsx:1165)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1165` calls `POST /api/auth/admin/tickets/${ticketId}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/tickets/<p>/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-4fac8e016b0b2fae", "name": "Dangling fetch: GET /api/auth/admin/stats (app/src/pages/Admin.jsx:1348)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/stats (app/src/pages/Admin.jsx:1348)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1348` calls `GET /api/auth/admin/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/stats`\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-a079ba04fc93f736", "name": "Dangling fetch: GET /api/auth/admin/mrr-history?days=90 (app/src/pages/Admin.jsx:1359)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/mrr-history?days=90 (app/src/pages/Admin.jsx:1359)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1359` calls `GET /api/auth/admin/mrr-history?days=90` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/mrr-history`\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-0a7dff041ffe66ff", "name": "Dangling fetch: GET /api/auth/admin/users?${params} (app/src/pages/Admin.jsx:1373)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/users?${params} (app/src/pages/Admin.jsx:1373)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1373` calls `GET /api/auth/admin/users?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users`\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-94755716847c22c9", "name": "Dangling fetch: GET /api/auth/admin/activity?limit=30 (app/src/pages/Admin.jsx:1389)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/activity?limit=30 (app/src/pages/Admin.jsx:1389)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1389` calls `GET /api/auth/admin/activity?limit=30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0524d5e0b1791630", "name": "Dangling fetch: GET /api/auth/admin/active-now (app/src/pages/Admin.jsx:1408)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/active-now (app/src/pages/Admin.jsx:1408)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1408` calls `GET /api/auth/admin/active-now` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/active-now`\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-e9fcba76906913b0", "name": "Dangling fetch: GET /api/auth/admin/referrals (app/src/pages/Admin.jsx:1432)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/referrals (app/src/pages/Admin.jsx:1432)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1432` calls `GET /api/auth/admin/referrals` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/referrals`\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-541d6e0c2d16cd43", "name": "Dangling fetch: POST /api/auth/admin/maintenance (app/src/pages/Admin.jsx:1450)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/maintenance (app/src/pages/Admin.jsx:1450)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1450` calls `POST /api/auth/admin/maintenance` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/maintenance`\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-d1de80e970b6e4e5", "name": "Dangling fetch: GET /api/auth/admin/feedback?limit=50 (app/src/pages/Admin.jsx:1466)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/feedback?limit=50 (app/src/pages/Admin.jsx:1466)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1466` calls `GET /api/auth/admin/feedback?limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/feedback`\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-0f9f19af169b5367", "name": "Dangling fetch: GET /api/auth/admin/tickets/stats (app/src/pages/Admin.jsx:1477)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/tickets/stats (app/src/pages/Admin.jsx:1477)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1477` calls `GET /api/auth/admin/tickets/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/tickets/stats`\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-3982903af9fcc64c", "name": "Dangling fetch: GET /api/auth/admin/tickets?${params} (app/src/pages/Admin.jsx:1487)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/admin/tickets?${params} (app/src/pages/Admin.jsx:1487)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1487` calls `GET /api/auth/admin/tickets?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/tickets`\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-7b7aa050ecb96f0f", "name": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:1519)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:1519)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1519` calls `POST /api/auth/admin/comp-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/comp-access`\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-e522f5c295d070e4", "name": "Dangling fetch: POST /api/auth/admin/users/${uid}/verify (app/src/pages/Admin.jsx:1533)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/users/${uid}/verify (app/src/pages/Admin.jsx:1533)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1533` calls `POST /api/auth/admin/users/${uid}/verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/verify`\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-c8b677f2f5fb109e", "name": "Dangling fetch: POST /api/auth/admin/users/${uid}/tags (app/src/pages/Admin.jsx:1542)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/users/${uid}/tags (app/src/pages/Admin.jsx:1542)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1542` calls `POST /api/auth/admin/users/${uid}/tags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/tags`\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-539185b01cd914db", "name": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:1558)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:1558)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1558` calls `POST /api/auth/admin/comp-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/comp-access`\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-af86ec890965b58c", "name": "Dangling fetch: POST /api/auth/admin/users/${userId}/verify (app/src/pages/Admin.jsx:1580)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/verify (app/src/pages/Admin.jsx:1580)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1580` calls `POST /api/auth/admin/users/${userId}/verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<p>/verify`\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-a6ebd602773dfee8", "name": "Dangling fetch: DELETE /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:1600)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:1600)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1600` calls `DELETE /api/auth/admin/users/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/users/<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-5b4edac16d76a126", "name": "Dangling fetch: POST /api/auth/admin/sync-subscriptions (app/src/pages/Admin.jsx:1618)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/admin/sync-subscriptions (app/src/pages/Admin.jsx:1618)"}, "fullDescription": {"text": "`app/src/pages/Admin.jsx:1618` calls `POST /api/auth/admin/sync-subscriptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/admin/sync-subscriptions`\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-e69eb30a3ca09860", "name": "Dangling fetch: GET /api/cot/${symbol}?weeks=${weeks} (app/src/pages/CotData.jsx:229)", "shortDescription": {"text": "Dangling fetch: GET /api/cot/${symbol}?weeks=${weeks} (app/src/pages/CotData.jsx:229)"}, "fullDescription": {"text": "`app/src/pages/CotData.jsx:229` calls `GET /api/cot/${symbol}?weeks=${weeks}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cot/<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-88d3c1200f875ad1", "name": "Dangling fetch: POST /api/modelbook/stocks (app/src/pages/ModelBook.jsx:351)", "shortDescription": {"text": "Dangling fetch: POST /api/modelbook/stocks (app/src/pages/ModelBook.jsx:351)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:351` calls `POST /api/modelbook/stocks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/stocks`\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-40f1d81411c668b2", "name": "Dangling fetch: DELETE /api/modelbook/catalyst/${id} (app/src/pages/ModelBook.jsx:1107)", "shortDescription": {"text": "Dangling fetch: DELETE /api/modelbook/catalyst/${id} (app/src/pages/ModelBook.jsx:1107)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1107` calls `DELETE /api/modelbook/catalyst/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/catalyst/<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-913edc739205f1ce", "name": "Dangling fetch: PUT /api/modelbook/index-drawings?symbol=%5EIXIC (app/src/pages/ModelBook.jsx:1138)", "shortDescription": {"text": "Dangling fetch: PUT /api/modelbook/index-drawings?symbol=%5EIXIC (app/src/pages/ModelBook.jsx:1138)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1138` calls `PUT /api/modelbook/index-drawings?symbol=%5EIXIC` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/index-drawings`\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-2c7aa4c67dc96483", "name": "Dangling fetch: DELETE /api/modelbook/setup/${id} (app/src/pages/ModelBook.jsx:1176)", "shortDescription": {"text": "Dangling fetch: DELETE /api/modelbook/setup/${id} (app/src/pages/ModelBook.jsx:1176)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1176` calls `DELETE /api/modelbook/setup/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/setup/<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-458d80171c47138b", "name": "Dangling fetch: PUT /api/modelbook/setup/${id} (app/src/pages/ModelBook.jsx:1190)", "shortDescription": {"text": "Dangling fetch: PUT /api/modelbook/setup/${id} (app/src/pages/ModelBook.jsx:1190)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1190` calls `PUT /api/modelbook/setup/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/setup/<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-c5eced4c32574caf", "name": "Dangling fetch: POST /api/modelbook/setup/${id}/describe (app/src/pages/ModelBook.jsx:1206)", "shortDescription": {"text": "Dangling fetch: POST /api/modelbook/setup/${id}/describe (app/src/pages/ModelBook.jsx:1206)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1206` calls `POST /api/modelbook/setup/${id}/describe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/setup/<p>/describe`\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-46e3235eb5218284", "name": "Dangling fetch: GET /api/modelbook/setup/${id}/describe-status (app/src/pages/ModelBook.jsx:1217)", "shortDescription": {"text": "Dangling fetch: GET /api/modelbook/setup/${id}/describe-status (app/src/pages/ModelBook.jsx:1217)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1217` calls `GET /api/modelbook/setup/${id}/describe-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/setup/<p>/describe-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-53c7121493d6cb56", "name": "Dangling fetch: PUT /api/modelbook/stock/${stock.id}/bars (app/src/pages/ModelBook.jsx:1248)", "shortDescription": {"text": "Dangling fetch: PUT /api/modelbook/stock/${stock.id}/bars (app/src/pages/ModelBook.jsx:1248)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1248` calls `PUT /api/modelbook/stock/${stock.id}/bars` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/stock/<p>/bars`\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-880cffa853d8a61a", "name": "Dangling fetch: DELETE /api/modelbook/stock/${stock.id}/bars (app/src/pages/ModelBook.jsx:1265)", "shortDescription": {"text": "Dangling fetch: DELETE /api/modelbook/stock/${stock.id}/bars (app/src/pages/ModelBook.jsx:1265)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1265` calls `DELETE /api/modelbook/stock/${stock.id}/bars` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/stock/<p>/bars`\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-ea75b7940e5c1876", "name": "Dangling fetch: PUT /api/modelbook/stock/${stock.id} (app/src/pages/ModelBook.jsx:1272)", "shortDescription": {"text": "Dangling fetch: PUT /api/modelbook/stock/${stock.id} (app/src/pages/ModelBook.jsx:1272)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1272` calls `PUT /api/modelbook/stock/${stock.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/stock/<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-b3d27b70a658d103", "name": "Dangling fetch: POST /api/modelbook/stock/${stock.id}/descriptions/generate (app/src/pages/ModelBook.jsx:1287)", "shortDescription": {"text": "Dangling fetch: POST /api/modelbook/stock/${stock.id}/descriptions/generate (app/src/pages/ModelBook.jsx:1287)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1287` calls `POST /api/modelbook/stock/${stock.id}/descriptions/generate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/stock/<p>/descriptions/generate`\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-07e2148660c8b0b1", "name": "Dangling fetch: GET /api/modelbook/all-stocks (app/src/pages/ModelBook.jsx:1905)", "shortDescription": {"text": "Dangling fetch: GET /api/modelbook/all-stocks (app/src/pages/ModelBook.jsx:1905)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1905` calls `GET /api/modelbook/all-stocks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/all-stocks`\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-e0b2527cdacaefd3", "name": "Dangling fetch: DELETE /api/modelbook/stock/${s.id} (app/src/pages/ModelBook.jsx:1965)", "shortDescription": {"text": "Dangling fetch: DELETE /api/modelbook/stock/${s.id} (app/src/pages/ModelBook.jsx:1965)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:1965` calls `DELETE /api/modelbook/stock/${s.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/stock/<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-c832aea6918950d3", "name": "Dangling fetch: GET /api/bars/%5EIXIC?tf=D&bars=8000 (app/src/pages/ModelBook.jsx:2013)", "shortDescription": {"text": "Dangling fetch: GET /api/bars/%5EIXIC?tf=D&bars=8000 (app/src/pages/ModelBook.jsx:2013)"}, "fullDescription": {"text": "`app/src/pages/ModelBook.jsx:2013` calls `GET /api/bars/%5EIXIC?tf=D&bars=8000` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/bars/%5eixic`\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-4d54ca2c197a7b97", "name": "Dangling fetch: POST /api/auth/resend-verification (app/src/pages/VerifyPending.jsx:17)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/resend-verification (app/src/pages/VerifyPending.jsx:17)"}, "fullDescription": {"text": "`app/src/pages/VerifyPending.jsx:17` calls `POST /api/auth/resend-verification` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/resend-verification`\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-54eb157b6979139e", "name": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:1082)", "shortDescription": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:1082)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1082` calls `GET /api/top-flow/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/history`\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-f8c7a67d3ee7d4fe", "name": "Dangling fetch: POST /api/top-flow/save (app/src/pages/LiveFlow.jsx:1113)", "shortDescription": {"text": "Dangling fetch: POST /api/top-flow/save (app/src/pages/LiveFlow.jsx:1113)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1113` calls `POST /api/top-flow/save` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/save`\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-3cf105aca843f9b0", "name": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:1116)", "shortDescription": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:1116)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1116` calls `GET /api/top-flow/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/history`\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-111fcabaacc977c5", "name": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1146)", "shortDescription": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1146)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1146` calls `POST /api/uw/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/uw/options-quotes`\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-601c12c6df6e57aa", "name": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1500)", "shortDescription": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1500)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1500` calls `POST /api/uw/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/uw/options-quotes`\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-2d582f023b50c4c2", "name": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/LiveFlow.jsx:1507)", "shortDescription": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/LiveFlow.jsx:1507)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1507` calls `POST /api/schwab/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/options-quotes`\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-7b66d0bf3f5a7a88", "name": "Dangling fetch: GET /api/uw/contract-history?${params} (app/src/pages/LiveFlow.jsx:1566)", "shortDescription": {"text": "Dangling fetch: GET /api/uw/contract-history?${params} (app/src/pages/LiveFlow.jsx:1566)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1566` calls `GET /api/uw/contract-history?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/uw/contract-history`\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-5ed395786ee13817", "name": "Dangling fetch: GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${p", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${parseFloat(strike)}&exp=${encodeURIComponent(exp)} (app/src/pages/LiveFlow.jsx:1573)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1573` calls `GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${parseFloat(strike)}&exp=${encodeURIComponent(exp)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/backfill-contract`\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-ec4dab714edf14f7", "name": "Dangling fetch: GET /api/schwab/contract-history?${params} (app/src/pages/LiveFlow.jsx:1575)", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/contract-history?${params} (app/src/pages/LiveFlow.jsx:1575)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1575` calls `GET /api/schwab/contract-history?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/contract-history`\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-9ae357f5b036c8c5", "name": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1594)", "shortDescription": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1594)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1594` calls `POST /api/uw/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/uw/options-quotes`\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-5560f64696f00878", "name": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/LiveFlow.jsx:1617)", "shortDescription": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/LiveFlow.jsx:1617)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1617` calls `POST /api/schwab/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/options-quotes`\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-9ea1de4527c8dddb", "name": "Dangling fetch: GET /api/schwab/market-summary (app/src/pages/LiveFlow.jsx:1643)", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/market-summary (app/src/pages/LiveFlow.jsx:1643)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1643` calls `GET /api/schwab/market-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/market-summary`\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-ed419edb09075b4f", "name": "Dangling fetch: GET /api/schwab/market-narrative (app/src/pages/LiveFlow.jsx:1652)", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/market-narrative (app/src/pages/LiveFlow.jsx:1652)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1652` calls `GET /api/schwab/market-narrative` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/market-narrative`\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-9e5e02557009638d", "name": "Dangling fetch: GET /api/schwab/snapshot-now (app/src/pages/LiveFlow.jsx:1841)", "shortDescription": {"text": "Dangling fetch: GET /api/schwab/snapshot-now (app/src/pages/LiveFlow.jsx:1841)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1841` calls `GET /api/schwab/snapshot-now` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/schwab/snapshot-now`\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-ffafb3d3127cd5d2", "name": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1972)", "shortDescription": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1972)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:1972` calls `POST /api/uw/options-quotes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/uw/options-quotes`\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-8c89bbbb28654a47", "name": "Dangling fetch: POST /api/top-flow/snapshot (app/src/pages/LiveFlow.jsx:2782)", "shortDescription": {"text": "Dangling fetch: POST /api/top-flow/snapshot (app/src/pages/LiveFlow.jsx:2782)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:2782` calls `POST /api/top-flow/snapshot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/snapshot`\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-9807448048b7cc7a", "name": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:2782)", "shortDescription": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:2782)"}, "fullDescription": {"text": "`app/src/pages/LiveFlow.jsx:2782` calls `GET /api/top-flow/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/top-flow/history`\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-be9bd975e0060e98", "name": "Dangling fetch: POST /api/j2/positions (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:32)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/positions (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:32)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:32` calls `POST /api/j2/positions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/positions`\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-2bf463581d3f5714", "name": "Dangling fetch: POST /api/j2/notes (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:138)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/notes (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:138)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:138` calls `POST /api/j2/notes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes`\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-acafc4f853d89f86", "name": "Dangling fetch: POST /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:157)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:157)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:157` calls `POST /api/j2/notes/${noteId}/hero` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes/<p>/hero`\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-4edd6f5f929fd643", "name": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:37)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:37` calls `GET /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-a3a48376125b4dfc", "name": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:68)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:68)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:68` calls `POST /api/voice/tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts`\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-a381753657ea20ee", "name": "Dangling fetch: POST /api/j2/trades/import/preview (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:58)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/trades/import/preview (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:58)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/ImportCsvModal.jsx:58` calls `POST /api/j2/trades/import/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/trades/import/preview`\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-20000090589744ba", "name": "Dangling fetch: POST /api/j2/trades/import/preview-mapped (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:85)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/trades/import/preview-mapped (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:85)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/ImportCsvModal.jsx:85` calls `POST /api/j2/trades/import/preview-mapped` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/trades/import/preview-mapped`\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-b82a6d64e1d87234", "name": "Dangling fetch: POST /api/j2/trades/import/confirm (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:135)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/trades/import/confirm (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:135)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/ImportCsvModal.jsx:135` calls `POST /api/j2/trades/import/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/trades/import/confirm`\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-c83e008926a2b122", "name": "Dangling fetch: POST /api/voice/transcribe (app/src/pages/journal-2-0/components/VoiceInputButton.jsx:121)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/transcribe (app/src/pages/journal-2-0/components/VoiceInputButton.jsx:121)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/VoiceInputButton.jsx:121` calls `POST /api/voice/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/transcribe`\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-2080fb91c99c6907", "name": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/components/TradeReviewCard.jsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/components/TradeReviewCard.jsx:37)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/TradeReviewCard.jsx:37` calls `GET /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-77ea6428f2edd672", "name": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/components/TradeReviewCard.jsx:49)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/components/TradeReviewCard.jsx:49)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/TradeReviewCard.jsx:49` calls `POST /api/voice/tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts`\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-d61ab9e4350ff6c5", "name": "Dangling fetch: POST /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:25)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:25)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:25` calls `POST /api/j2/notes/${noteId}/hero` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes/<p>/hero`\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-1d91c306048d726a", "name": "Dangling fetch: DELETE /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:4", "shortDescription": {"text": "Dangling fetch: DELETE /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:44)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:44` calls `DELETE /api/j2/notes/${noteId}/hero` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes/<p>/hero`\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-bafe502bd9ebfd5b", "name": "Dangling fetch: DELETE /api/j2/notes/${noteId} (app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:210)", "shortDescription": {"text": "Dangling fetch: DELETE /api/j2/notes/${noteId} (app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:210)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:210` calls `DELETE /api/j2/notes/${noteId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes/<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-4e058346b83ecf11", "name": "Dangling fetch: POST /api/j2/accounts (app/src/pages/journal-2-0/components/accounts/NewAccountModal.jsx:46)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts (app/src/pages/journal-2-0/components/accounts/NewAccountModal.jsx:46)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/accounts/NewAccountModal.jsx:46` calls `POST /api/j2/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts`\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-5f4e9cb107552ad1", "name": "Dangling fetch: PUT /api/j2/accounts/${account.id}/goals (app/src/pages/journal-2-0/components/accounts/GoalProgress.jsx", "shortDescription": {"text": "Dangling fetch: PUT /api/j2/accounts/${account.id}/goals (app/src/pages/journal-2-0/components/accounts/GoalProgress.jsx:53)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/accounts/GoalProgress.jsx:53` calls `PUT /api/j2/accounts/${account.id}/goals` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/goals`\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-a5d6c56a28c30d24", "name": "Dangling fetch: DELETE /api/j2/accounts/${acc.id} (app/src/pages/journal-2-0/components/accounts/AccountSelector.jsx:70)", "shortDescription": {"text": "Dangling fetch: DELETE /api/j2/accounts/${acc.id} (app/src/pages/journal-2-0/components/accounts/AccountSelector.jsx:70)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/accounts/AccountSelector.jsx:70` calls `DELETE /api/j2/accounts/${acc.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<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-cefa13d089424b30", "name": "Dangling fetch: POST /api/j2/accounts/${account.id}/move-all-to/${moveTo} (app/src/pages/journal-2-0/components/accounts", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts/${account.id}/move-all-to/${moveTo} (app/src/pages/journal-2-0/components/accounts/DeleteAccountModal.jsx:42)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/accounts/DeleteAccountModal.jsx:42` calls `POST /api/j2/accounts/${account.id}/move-all-to/${moveTo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/move-all-to/<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-3d4b4df36f790942", "name": "Dangling fetch: DELETE /api/j2/accounts/${account.id} (app/src/pages/journal-2-0/components/accounts/DeleteAccountModal.", "shortDescription": {"text": "Dangling fetch: DELETE /api/j2/accounts/${account.id} (app/src/pages/journal-2-0/components/accounts/DeleteAccountModal.jsx:52)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/accounts/DeleteAccountModal.jsx:52` calls `DELETE /api/j2/accounts/${account.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<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-059e7629cb1958b9", "name": "Dangling fetch: POST /api/j2/calendar/day/${date}/attachments (app/src/pages/journal-2-0/components/calendar/DayAttachme", "shortDescription": {"text": "Dangling fetch: POST /api/j2/calendar/day/${date}/attachments (app/src/pages/journal-2-0/components/calendar/DayAttachments.jsx:81)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/components/calendar/DayAttachments.jsx:81` calls `POST /api/j2/calendar/day/${date}/attachments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/calendar/day/<p>/attachments`\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-bb160291ec40d6fb", "name": "Dangling fetch: POST /api/j2/notes/${noteId}/images (app/src/pages/journal-2-0/lib/tiptap.js:37)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/notes/${noteId}/images (app/src/pages/journal-2-0/lib/tiptap.js:37)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/lib/tiptap.js:37` calls `POST /api/j2/notes/${noteId}/images` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes/<p>/images`\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-d6fd86c5078e8621", "name": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/profile-suggestions/${id}/dismiss (app/src/pages/journal-2-0/hooks/", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/profile-suggestions/${id}/dismiss (app/src/pages/journal-2-0/hooks/useProfileSuggestions.js:25)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useProfileSuggestions.js:25` calls `POST /api/j2/accounts/${scope}/coach/profile-suggestions/${id}/dismiss` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/coach/profile-suggestions/<p>/dismiss`\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-efcf6eba498c4fcc", "name": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/interventions/${id}/dismiss (app/src/pages/journal-2-0/hooks/useInt", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/interventions/${id}/dismiss (app/src/pages/journal-2-0/hooks/useInterventions.js:29)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useInterventions.js:29` calls `POST /api/j2/accounts/${scope}/coach/interventions/${id}/dismiss` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/coach/interventions/<p>/dismiss`\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-0076b413c46de0fd", "name": "Dangling fetch: PUT /api/j2/accounts/${accountId}/settings (app/src/pages/journal-2-0/hooks/useJ2Settings.js:43)", "shortDescription": {"text": "Dangling fetch: PUT /api/j2/accounts/${accountId}/settings (app/src/pages/journal-2-0/hooks/useJ2Settings.js:43)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useJ2Settings.js:43` calls `PUT /api/j2/accounts/${accountId}/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/settings`\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-cd83f83ca3e249dc", "name": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:58)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:58)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:58` calls `GET /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-2469de711e3ec7a1", "name": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:75)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:75)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:75` calls `POST /api/voice/tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts`\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-1fb69db285cdf09a", "name": "Dangling fetch: PUT /api/j2/calendar/day/${date}/notes (app/src/pages/journal-2-0/hooks/useJ2DayNotesMutation.js:30)", "shortDescription": {"text": "Dangling fetch: PUT /api/j2/calendar/day/${date}/notes (app/src/pages/journal-2-0/hooks/useJ2DayNotesMutation.js:30)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useJ2DayNotesMutation.js:30` calls `PUT /api/j2/calendar/day/${date}/notes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/calendar/day/<p>/notes`\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-f74625a1fc4395f7", "name": "Dangling fetch: POST /api/j2/accounts/${accountId}/coach/pre-trade-verdict (app/src/pages/journal-2-0/hooks/usePreTradeV", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts/${accountId}/coach/pre-trade-verdict (app/src/pages/journal-2-0/hooks/usePreTradeVerdict.js:18)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/usePreTradeVerdict.js:18` calls `POST /api/j2/accounts/${accountId}/coach/pre-trade-verdict` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/coach/pre-trade-verdict`\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-78f64c3ba5a0208a", "name": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/forget (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:128)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/forget (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:128)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:128` calls `POST /api/j2/accounts/${scope}/coach/chat/forget` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/coach/chat/forget`\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-abb74cfca0f0ff80", "name": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/forget (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:137)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/forget (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:137)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:137` calls `POST /api/j2/accounts/${scope}/coach/chat/forget` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/coach/chat/forget`\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-aeb83693afdfe962", "name": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/skip_onboarding (app/src/pages/journal-2-0/hooks/useJ2CoachCha", "shortDescription": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/skip_onboarding (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:153)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:153` calls `POST /api/j2/accounts/${scope}/coach/chat/skip_onboarding` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/coach/chat/skip_onboarding`\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-3ad372adacdaf4d5", "name": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:65)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:65)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:65` calls `GET /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-3578ce134e84a674", "name": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:80)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:80)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:80` calls `POST /api/voice/tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts`\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-7db509d9320c6f89", "name": "Dangling fetch: PUT /api/j2/notes/${noteId} (app/src/pages/journal-2-0/hooks/useJ2Notes.js:45)", "shortDescription": {"text": "Dangling fetch: PUT /api/j2/notes/${noteId} (app/src/pages/journal-2-0/hooks/useJ2Notes.js:45)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/hooks/useJ2Notes.js:45` calls `PUT /api/j2/notes/${noteId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes/<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-0fb0451675c2cf6b", "name": "Dangling fetch: DELETE /api/j2/accounts/${account.id} (app/src/pages/journal-2-0/tabs/AccountsTab.jsx:32)", "shortDescription": {"text": "Dangling fetch: DELETE /api/j2/accounts/${account.id} (app/src/pages/journal-2-0/tabs/AccountsTab.jsx:32)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/tabs/AccountsTab.jsx:32` calls `DELETE /api/j2/accounts/${account.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<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-7f27debd1c7da9a8", "name": "Dangling fetch: POST /api/j2/notes (app/src/pages/journal-2-0/tabs/NotebookTab.jsx:42)", "shortDescription": {"text": "Dangling fetch: POST /api/j2/notes (app/src/pages/journal-2-0/tabs/NotebookTab.jsx:42)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/tabs/NotebookTab.jsx:42` calls `POST /api/j2/notes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/notes`\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-df4f419ba1d0435d", "name": "Dangling fetch: GET /api/j2/accounts/${sourceAccountId}/coach/profile (app/src/pages/journal-2-0/tabs/CompassTab.jsx:122", "shortDescription": {"text": "Dangling fetch: GET /api/j2/accounts/${sourceAccountId}/coach/profile (app/src/pages/journal-2-0/tabs/CompassTab.jsx:122)"}, "fullDescription": {"text": "`app/src/pages/journal-2-0/tabs/CompassTab.jsx:122` calls `GET /api/j2/accounts/${sourceAccountId}/coach/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/j2/accounts/<p>/coach/profile`\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-86e6b0fd69f1b8ba", "name": "Dangling fetch: POST /api/admin/patterns/${detectionId}/review (app/src/pages/admin/PatternAdmin.jsx:44)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/patterns/${detectionId}/review (app/src/pages/admin/PatternAdmin.jsx:44)"}, "fullDescription": {"text": "`app/src/pages/admin/PatternAdmin.jsx:44` calls `POST /api/admin/patterns/${detectionId}/review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/patterns/<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-7d80beae5e41b826", "name": "Dangling fetch: GET /api/landing-analytics/summary?days=${days} (app/src/pages/admin/LandingAnalytics.jsx:16)", "shortDescription": {"text": "Dangling fetch: GET /api/landing-analytics/summary?days=${days} (app/src/pages/admin/LandingAnalytics.jsx:16)"}, "fullDescription": {"text": "`app/src/pages/admin/LandingAnalytics.jsx:16` calls `GET /api/landing-analytics/summary?days=${days}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/landing-analytics/summary`\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-53c21b17df3603c0", "name": "Dangling fetch: GET /api/admin/bars/audit/latest (app/src/pages/admin/ChartHealth.jsx:22)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/audit/latest (app/src/pages/admin/ChartHealth.jsx:22)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:22` calls `GET /api/admin/bars/audit/latest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/audit/latest`\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-6a25072286988c35", "name": "Dangling fetch: GET /api/admin/bars/quarantine/count (app/src/pages/admin/ChartHealth.jsx:23)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/quarantine/count (app/src/pages/admin/ChartHealth.jsx:23)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:23` calls `GET /api/admin/bars/quarantine/count` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/quarantine/count`\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-b0a29ace0dd6b783", "name": "Dangling fetch: GET /api/admin/bars/liveness (app/src/pages/admin/ChartHealth.jsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/liveness (app/src/pages/admin/ChartHealth.jsx:34)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:34` calls `GET /api/admin/bars/liveness` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/liveness`\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-a96a7f83de9091ad", "name": "Dangling fetch: GET /api/admin/bars/source-health (app/src/pages/admin/ChartHealth.jsx:44)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/source-health (app/src/pages/admin/ChartHealth.jsx:44)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:44` calls `GET /api/admin/bars/source-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/source-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-bd913b3f93441255", "name": "Dangling fetch: GET /api/admin/bars/quality (app/src/pages/admin/ChartHealth.jsx:57)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/quality (app/src/pages/admin/ChartHealth.jsx:57)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:57` calls `GET /api/admin/bars/quality` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/quality`\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-72a1dfe47d0b77c5", "name": "Dangling fetch: GET /api/admin/bars/alerts (app/src/pages/admin/ChartHealth.jsx:67)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/alerts (app/src/pages/admin/ChartHealth.jsx:67)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:67` calls `GET /api/admin/bars/alerts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/alerts`\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-8949fb629b920f1a", "name": "Dangling fetch: GET /api/admin/bars/hot-tier (app/src/pages/admin/ChartHealth.jsx:77)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/hot-tier (app/src/pages/admin/ChartHealth.jsx:77)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:77` calls `GET /api/admin/bars/hot-tier` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/hot-tier`\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-0b967e1885434f54", "name": "Dangling fetch: POST /api/admin/bars/smoke (app/src/pages/admin/ChartHealth.jsx:87)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/bars/smoke (app/src/pages/admin/ChartHealth.jsx:87)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:87` calls `POST /api/admin/bars/smoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/smoke`\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-71ffa2729402d958", "name": "Dangling fetch: GET /api/admin/bars/provenance?${params} (app/src/pages/admin/ChartHealth.jsx:111)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/bars/provenance?${params} (app/src/pages/admin/ChartHealth.jsx:111)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:111` calls `GET /api/admin/bars/provenance?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/provenance`\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-8a8f32b90ec863c5", "name": "Dangling fetch: POST /api/admin/bars/audit/run (app/src/pages/admin/ChartHealth.jsx:160)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/bars/audit/run (app/src/pages/admin/ChartHealth.jsx:160)"}, "fullDescription": {"text": "`app/src/pages/admin/ChartHealth.jsx:160` calls `POST /api/admin/bars/audit/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bars/audit/run`\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-c78fa1a2bd8f19a2", "name": "Dangling fetch: PUT /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:424)", "shortDescription": {"text": "Dangling fetch: PUT /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:424)"}, "fullDescription": {"text": "`app/src/pages/modelbook/SetupsView.jsx:424` calls `PUT /api/modelbook/setup-example/${ex.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/setup-example/<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-c3aff4e568e6425c", "name": "Dangling fetch: PUT /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:477)", "shortDescription": {"text": "Dangling fetch: PUT /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:477)"}, "fullDescription": {"text": "`app/src/pages/modelbook/SetupsView.jsx:477` calls `PUT /api/modelbook/setup-example/${ex.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/setup-example/<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-fd144b030f46b7ca", "name": "Dangling fetch: DELETE /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:486)", "shortDescription": {"text": "Dangling fetch: DELETE /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:486)"}, "fullDescription": {"text": "`app/src/pages/modelbook/SetupsView.jsx:486` calls `DELETE /api/modelbook/setup-example/${ex.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/modelbook/setup-example/<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-934fd22c0aaf9841", "name": "Dangling fetch: GET /api/journal/daily/${today} (app/src/hooks/useRealtimeSession.js:81)", "shortDescription": {"text": "Dangling fetch: GET /api/journal/daily/${today} (app/src/hooks/useRealtimeSession.js:81)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:81` calls `GET /api/journal/daily/${today}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/journal/daily/<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-c4bcb6bcf518c7cf", "name": "Dangling fetch: GET /api/journal/weekly/${weekStart} (app/src/hooks/useRealtimeSession.js:113)", "shortDescription": {"text": "Dangling fetch: GET /api/journal/weekly/${weekStart} (app/src/hooks/useRealtimeSession.js:113)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:113` calls `GET /api/journal/weekly/${weekStart}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/journal/weekly/<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-eb68ab5e7b493e34", "name": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useRealtimeSession.js:130)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useRealtimeSession.js:130)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:130` calls `POST /api/voice/oneshot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/oneshot`\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-3ac14f15ad043f9b", "name": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useRealtimeSession.js:147)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useRealtimeSession.js:147)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:147` calls `POST /api/voice/oneshot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/oneshot`\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-c41dcedaa660b603", "name": "Dangling fetch: POST /api/voice/session/end (app/src/hooks/useRealtimeSession.js:192)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/session/end (app/src/hooks/useRealtimeSession.js:192)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:192` calls `POST /api/voice/session/end` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/session/end`\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-eb4f70fe6f5ddd7c", "name": "Dangling fetch: POST /api/voice/transcript (app/src/hooks/useRealtimeSession.js:222)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/transcript (app/src/hooks/useRealtimeSession.js:222)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:222` calls `POST /api/voice/transcript` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/transcript`\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-168aa49705ff8d38", "name": "Dangling fetch: POST /api/voice/exec (app/src/hooks/useRealtimeSession.js:237)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/exec (app/src/hooks/useRealtimeSession.js:237)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:237` calls `POST /api/voice/exec` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/exec`\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-31bf557b743d0378", "name": "Dangling fetch: POST /api/voice/session_token (app/src/hooks/useRealtimeSession.js:364)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/session_token (app/src/hooks/useRealtimeSession.js:364)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:364` calls `POST /api/voice/session_token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/session_token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af80fe96c2b770a5", "name": "Dangling fetch: POST https://api.openai.com/v1/realtime/calls?model=${encodeURIComponent(tokenResp.model)} (app/src/hook", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/realtime/calls?model=${encodeURIComponent(tokenResp.model)} (app/src/hooks/useRealtimeSession.js:440)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:440` calls `POST https://api.openai.com/v1/realtime/calls?model=${encodeURIComponent(tokenResp.model)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/realtime/calls`\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-e75480c6898fb754", "name": "Dangling fetch: POST https://api.openai.com/v1/realtime?model=${encodeURIComponent(tokenResp.model)} (app/src/hooks/useR", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/realtime?model=${encodeURIComponent(tokenResp.model)} (app/src/hooks/useRealtimeSession.js:447)"}, "fullDescription": {"text": "`app/src/hooks/useRealtimeSession.js:447` calls `POST https://api.openai.com/v1/realtime?model=${encodeURIComponent(tokenResp.model)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/realtime`\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-c5b57de041cc6056", "name": "Dangling fetch: GET /api/voice/settings (app/src/hooks/useHandsFreeMorningWire.js:48)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/settings (app/src/hooks/useHandsFreeMorningWire.js:48)"}, "fullDescription": {"text": "`app/src/hooks/useHandsFreeMorningWire.js:48` calls `GET /api/voice/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/settings`\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-71adf8acfd0834d4", "name": "Dangling fetch: POST /api/voice/tts (app/src/hooks/useHandsFreeMorningWire.js:65)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts (app/src/hooks/useHandsFreeMorningWire.js:65)"}, "fullDescription": {"text": "`app/src/hooks/useHandsFreeMorningWire.js:65` calls `POST /api/voice/tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts`\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-a925345d354091fb", "name": "Dangling fetch: POST /api/auth/preferences (app/src/hooks/usePreferences.js:38)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/preferences (app/src/hooks/usePreferences.js:38)"}, "fullDescription": {"text": "`app/src/hooks/usePreferences.js:38` calls `POST /api/auth/preferences` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/preferences`\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-993bbc293d5db381", "name": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:133)", "shortDescription": {"text": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:133)"}, "fullDescription": {"text": "`app/src/hooks/useTickerMeta.test.jsx:133` calls `GET /api/ticker-meta/ENPH` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:fetcher\nNormalized path used for matching: `/ticker-meta/enph`\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-f33d852fbd1e5200", "name": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:138)", "shortDescription": {"text": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:138)"}, "fullDescription": {"text": "`app/src/hooks/useTickerMeta.test.jsx:138` calls `GET /api/ticker-meta/ENPH` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:fetcher\nNormalized path used for matching: `/ticker-meta/enph`\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-d03f073738c905ae", "name": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:146)", "shortDescription": {"text": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:146)"}, "fullDescription": {"text": "`app/src/hooks/useTickerMeta.test.jsx:146` calls `GET /api/ticker-meta/ENPH` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:fetcher\nNormalized path used for matching: `/ticker-meta/enph`\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-9da19988a95444b0", "name": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useOneShot.js:75)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useOneShot.js:75)"}, "fullDescription": {"text": "`app/src/hooks/useOneShot.js:75` calls `POST /api/voice/oneshot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/oneshot`\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-a57d84265dfdaabe", "name": "Dangling fetch: GET /api/voice/insights/unspoken (app/src/hooks/useProactiveVoice.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/insights/unspoken (app/src/hooks/useProactiveVoice.js:52)"}, "fullDescription": {"text": "`app/src/hooks/useProactiveVoice.js:52` calls `GET /api/voice/insights/unspoken` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/insights/unspoken`\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-6ceef832579b06ce", "name": "Dangling fetch: POST /api/voice/tts (app/src/hooks/useProactiveVoice.js:62)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts (app/src/hooks/useProactiveVoice.js:62)"}, "fullDescription": {"text": "`app/src/hooks/useProactiveVoice.js:62` calls `POST /api/voice/tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts`\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-07014332ca1bcd19", "name": "Dangling fetch: POST /api/voice/insights/${insight.id}/mark-spoken (app/src/hooks/useProactiveVoice.js:90)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/insights/${insight.id}/mark-spoken (app/src/hooks/useProactiveVoice.js:90)"}, "fullDescription": {"text": "`app/src/hooks/useProactiveVoice.js:90` calls `POST /api/voice/insights/${insight.id}/mark-spoken` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/insights/<p>/mark-spoken`\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-f346ee8a5e3a3d7e", "name": "Dangling fetch: GET /api/voice/memory/facts (app/src/hooks/useVoiceMemory.js:19)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/memory/facts (app/src/hooks/useVoiceMemory.js:19)"}, "fullDescription": {"text": "`app/src/hooks/useVoiceMemory.js:19` calls `GET /api/voice/memory/facts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/memory/facts`\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-217ff34a1c5e44f0", "name": "Dangling fetch: GET /api/voice/memory/summaries (app/src/hooks/useVoiceMemory.js:20)", "shortDescription": {"text": "Dangling fetch: GET /api/voice/memory/summaries (app/src/hooks/useVoiceMemory.js:20)"}, "fullDescription": {"text": "`app/src/hooks/useVoiceMemory.js:20` calls `GET /api/voice/memory/summaries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/memory/summaries`\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-29526e52da90de9a", "name": "Dangling fetch: POST /api/voice/memory/facts (app/src/hooks/useVoiceMemory.js:37)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/memory/facts (app/src/hooks/useVoiceMemory.js:37)"}, "fullDescription": {"text": "`app/src/hooks/useVoiceMemory.js:37` calls `POST /api/voice/memory/facts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/memory/facts`\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-9efa4fa8bb93945d", "name": "Dangling fetch: DELETE /api/voice/memory/facts/${factId} (app/src/hooks/useVoiceMemory.js:48)", "shortDescription": {"text": "Dangling fetch: DELETE /api/voice/memory/facts/${factId} (app/src/hooks/useVoiceMemory.js:48)"}, "fullDescription": {"text": "`app/src/hooks/useVoiceMemory.js:48` calls `DELETE /api/voice/memory/facts/${factId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/memory/facts/<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-36323601dca303d0", "name": "Dangling fetch: POST /api/voice/tts/prepare (app/src/hooks/useReadAloud.js:54)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/tts/prepare (app/src/hooks/useReadAloud.js:54)"}, "fullDescription": {"text": "`app/src/hooks/useReadAloud.js:54` calls `POST /api/voice/tts/prepare` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/tts/prepare`\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-e196bfcb36e6b2df", "name": "Dangling fetch: GET /api/auth/me (app/src/context/AuthContext.jsx:14)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/me (app/src/context/AuthContext.jsx:14)"}, "fullDescription": {"text": "`app/src/context/AuthContext.jsx:14` calls `GET /api/auth/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/me`\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-7a61823ae8667acb", "name": "Dangling fetch: POST /api/auth/login (app/src/context/AuthContext.jsx:40)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/login (app/src/context/AuthContext.jsx:40)"}, "fullDescription": {"text": "`app/src/context/AuthContext.jsx:40` calls `POST /api/auth/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/login`\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-d528097b4c7ed440", "name": "Dangling fetch: POST /api/auth/signup (app/src/context/AuthContext.jsx:58)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/signup (app/src/context/AuthContext.jsx:58)"}, "fullDescription": {"text": "`app/src/context/AuthContext.jsx:58` calls `POST /api/auth/signup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/signup`\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-f20933e03987c3b9", "name": "Dangling fetch: POST /api/auth/logout (app/src/context/AuthContext.jsx:74)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/logout (app/src/context/AuthContext.jsx:74)"}, "fullDescription": {"text": "`app/src/context/AuthContext.jsx:74` calls `POST /api/auth/logout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/logout`\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-e83e027aa8a1d38b", "name": "Dangling fetch: POST /api/auth/checkout (app/src/context/AuthContext.jsx:81)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/checkout (app/src/context/AuthContext.jsx:81)"}, "fullDescription": {"text": "`app/src/context/AuthContext.jsx:81` calls `POST /api/auth/checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/checkout`\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-43b0edcf17a5e356", "name": "Dangling fetch: POST /api/auth/portal (app/src/context/AuthContext.jsx:91)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/portal (app/src/context/AuthContext.jsx:91)"}, "fullDescription": {"text": "`app/src/context/AuthContext.jsx:91` calls `POST /api/auth/portal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/portal`\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-23e7c1fca08ca34e", "name": "Dangling fetch: POST https://stooq.com/__verify (tools/stooq_fetch.mjs:42)", "shortDescription": {"text": "Dangling fetch: POST https://stooq.com/__verify (tools/stooq_fetch.mjs:42)"}, "fullDescription": {"text": "`tools/stooq_fetch.mjs:42` calls `POST https://stooq.com/__verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/stooq.com/__verify`\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-b186e887b1e3877c", "name": "Unused endpoint: GET /data", "shortDescription": {"text": "Unused endpoint: GET /data"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `GET /data` 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-fe10dfe860193723", "name": "Unused endpoint: GET /aggregated", "shortDescription": {"text": "Unused endpoint: GET /aggregated"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `GET /aggregated` 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-a998f0c5fce5b7af", "name": "Unused endpoint: POST /prebuild", "shortDescription": {"text": "Unused endpoint: POST /prebuild"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `POST /prebuild` 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-4b6dfce241343aed", "name": "Unused endpoint: GET /dates", "shortDescription": {"text": "Unused endpoint: GET /dates"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `GET /dates` 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": "`api/darkpool_router.py` 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-c40554be04e90797", "name": "Unused endpoint: POST /upload-text", "shortDescription": {"text": "Unused endpoint: POST /upload-text"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `POST /upload-text` 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-cd8dc4599ec52a08", "name": "Unused endpoint: GET /stats", "shortDescription": {"text": "Unused endpoint: GET /stats"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `GET /stats` 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-75735d987ceb2fae", "name": "Unused endpoint: POST /prune", "shortDescription": {"text": "Unused endpoint: POST /prune"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `POST /prune` 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-02300358e6ee6fb2", "name": "Unused endpoint: DELETE /clear", "shortDescription": {"text": "Unused endpoint: DELETE /clear"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `DELETE /clear` 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-9d5c7de16854943f", "name": "Unused endpoint: GET /ticker-detail", "shortDescription": {"text": "Unused endpoint: GET /ticker-detail"}, "fullDescription": {"text": "`api/darkpool_router.py` declares `GET /ticker-detail` 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-7efc3652edab2798", "name": "Unused endpoint: GET /indexes-data", "shortDescription": {"text": "Unused endpoint: GET /indexes-data"}, "fullDescription": {"text": "`api/flow_router.py` declares `GET /indexes-data` 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-a7703e292f068ddb", "name": "Unused endpoint: POST /backfill", "shortDescription": {"text": "Unused endpoint: POST /backfill"}, "fullDescription": {"text": "`api/dealer_positioning_router.py` declares `POST /backfill` 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-aeafa64451194212", "name": "Unused endpoint: POST /compute/{snap_date}", "shortDescription": {"text": "Unused endpoint: POST /compute/{snap_date}"}, "fullDescription": {"text": "`api/dealer_positioning_router.py` declares `POST /compute/{snap_date}` 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-ba791f4582f5e42c", "name": "Unused endpoint: GET /sample", "shortDescription": {"text": "Unused endpoint: GET /sample"}, "fullDescription": {"text": "`api/dealer_positioning_router.py` declares `GET /sample` 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-92ac48d066f19939", "name": "Unused endpoint: GET /flow-sources", "shortDescription": {"text": "Unused endpoint: GET /flow-sources"}, "fullDescription": {"text": "`api/dealer_positioning_router.py` declares `GET /flow-sources` 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-66ba9dbe064ddc2b", "name": "Unused endpoint: POST /post", "shortDescription": {"text": "Unused endpoint: POST /post"}, "fullDescription": {"text": "`api/notable_flow_router.py` declares `POST /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-2730e4de978a4748", "name": "Unused endpoint: POST /post-single", "shortDescription": {"text": "Unused endpoint: POST /post-single"}, "fullDescription": {"text": "`api/notable_flow_router.py` declares `POST /post-single` 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-512ccb0fd0b230ba", "name": "Unused endpoint: GET /settings", "shortDescription": {"text": "Unused endpoint: GET /settings"}, "fullDescription": {"text": "`api/notable_flow_router.py` declares `GET /settings` 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-d9fbbfd361e91f1e", "name": "Unused endpoint: POST /settings", "shortDescription": {"text": "Unused endpoint: POST /settings"}, "fullDescription": {"text": "`api/notable_flow_router.py` declares `POST /settings` 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-82348c7033c24008", "name": "Unused endpoint: GET /dedupe", "shortDescription": {"text": "Unused endpoint: GET /dedupe"}, "fullDescription": {"text": "`api/notable_flow_router.py` declares `GET /dedupe` 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-217ea5c158a00fd5", "name": "Unused endpoint: DELETE /dedupe", "shortDescription": {"text": "Unused endpoint: DELETE /dedupe"}, "fullDescription": {"text": "`api/notable_flow_router.py` declares `DELETE /dedupe` 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-9fe9e18f727d22ba", "name": "Unused endpoint: GET /internal/health", "shortDescription": {"text": "Unused endpoint: GET /internal/health"}, "fullDescription": {"text": "`api/worker_main.py` declares `GET /internal/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-69a693dfc33637f4", "name": "Unused endpoint: POST /run", "shortDescription": {"text": "Unused endpoint: POST /run"}, "fullDescription": {"text": "`api/oi_snapshot_router.py` declares `POST /run` 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-08320f38d1ce540a", "name": "Unused endpoint: GET /run-status", "shortDescription": {"text": "Unused endpoint: GET /run-status"}, "fullDescription": {"text": "`api/oi_snapshot_router.py` declares `GET /run-status` 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-6b4d3a1c30158c0e", "name": "Unused endpoint: POST /cancel", "shortDescription": {"text": "Unused endpoint: POST /cancel"}, "fullDescription": {"text": "`api/oi_snapshot_router.py` declares `POST /cancel` 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-5f5521fb591b7e4f", "name": "Unused endpoint: POST /run-sync", "shortDescription": {"text": "Unused endpoint: POST /run-sync"}, "fullDescription": {"text": "`api/oi_snapshot_router.py` declares `POST /run-sync` 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-21e08ef21eba7560", "name": "Unused endpoint: GET /lookup", "shortDescription": {"text": "Unused endpoint: GET /lookup"}, "fullDescription": {"text": "`api/oi_snapshot_router.py` declares `GET /lookup` 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-afc064028ae39ea9", "name": "Unused endpoint: GET /history", "shortDescription": {"text": "Unused endpoint: GET /history"}, "fullDescription": {"text": "`api/oi_snapshot_router.py` declares `GET /history` 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-e26074453f93d403", "name": "Unused endpoint: POST /confirm", "shortDescription": {"text": "Unused endpoint: POST /confirm"}, "fullDescription": {"text": "`api/oi_snapshot_router.py` declares `POST /confirm` 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-bb86a49414024054", "name": "Unused endpoint: POST /save", "shortDescription": {"text": "Unused endpoint: POST /save"}, "fullDescription": {"text": "`api/watchlist_router.py` declares `POST /save` 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-b9d1b83bddf67843", "name": "Unused endpoint: GET /load/{day}", "shortDescription": {"text": "Unused endpoint: GET /load/{day}"}, "fullDescription": {"text": "`api/watchlist_router.py` declares `GET /load/{day}` 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-ada652a575e62e73", "name": "Unused endpoint: POST /earnings", "shortDescription": {"text": "Unused endpoint: POST /earnings"}, "fullDescription": {"text": "`api/earnings_router.py` declares `POST /earnings` 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-18a4887e7bea6b36", "name": "Unused endpoint: GET /compare", "shortDescription": {"text": "Unused endpoint: GET /compare"}, "fullDescription": {"text": "`api/gex_router.py` declares `GET /compare` 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-6a4dfcad3eb1618a", "name": "Unused endpoint: GET /login", "shortDescription": {"text": "Unused endpoint: GET /login"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /login` 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-cdfb578618cf2542", "name": "Unused endpoint: GET /callback", "shortDescription": {"text": "Unused endpoint: GET /callback"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /callback` 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-7ce17d6b092a81ca", "name": "Unused endpoint: POST /refresh", "shortDescription": {"text": "Unused endpoint: POST /refresh"}, "fullDescription": {"text": "`api/schwab_router.py` declares `POST /refresh` 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-904fa0fa5b97edc2", "name": "Unused endpoint: GET /options-quote", "shortDescription": {"text": "Unused endpoint: GET /options-quote"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /options-quote` 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-8234d8f5d09f4363", "name": "Unused endpoint: POST /options-quotes", "shortDescription": {"text": "Unused endpoint: POST /options-quotes"}, "fullDescription": {"text": "`api/schwab_router.py` declares `POST /options-quotes` 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-fb1450cc18cee349", "name": "Unused endpoint: GET /market-summary", "shortDescription": {"text": "Unused endpoint: GET /market-summary"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /market-summary` 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-fb127569aaaa3079", "name": "Unused endpoint: GET /market-narrative", "shortDescription": {"text": "Unused endpoint: GET /market-narrative"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /market-narrative` 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-e28ebacbfaf0aee7", "name": "Unused endpoint: POST /track-contracts", "shortDescription": {"text": "Unused endpoint: POST /track-contracts"}, "fullDescription": {"text": "`api/schwab_router.py` declares `POST /track-contracts` 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-392086cac7cb0df3", "name": "Unused endpoint: GET /snapshot-now", "shortDescription": {"text": "Unused endpoint: GET /snapshot-now"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /snapshot-now` 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-7ffd9bb6a8ca960d", "name": "Unused endpoint: GET /contract-history", "shortDescription": {"text": "Unused endpoint: GET /contract-history"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /contract-history` 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-bf3de031c8f47566", "name": "Unused endpoint: GET /backfill-contract", "shortDescription": {"text": "Unused endpoint: GET /backfill-contract"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /backfill-contract` 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-be11230b7de14a2a", "name": "Unused endpoint: POST /backfill-all", "shortDescription": {"text": "Unused endpoint: POST /backfill-all"}, "fullDescription": {"text": "`api/schwab_router.py` declares `POST /backfill-all` 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-59fb3fd42ed9ec72", "name": "Unused endpoint: GET /chart-proxy", "shortDescription": {"text": "Unused endpoint: GET /chart-proxy"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /chart-proxy` 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-9d45fa2b3cbf92ac", "name": "Unused endpoint: GET /chart-bounds", "shortDescription": {"text": "Unused endpoint: GET /chart-bounds"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /chart-bounds` 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-fa9eb22cb5c68258", "name": "Unused endpoint: GET /chart-ohlc", "shortDescription": {"text": "Unused endpoint: GET /chart-ohlc"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /chart-ohlc` 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-838c001975664f9c", "name": "Unused endpoint: GET /earnings-test", "shortDescription": {"text": "Unused endpoint: GET /earnings-test"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /earnings-test` 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-a90b3acb82fafaab", "name": "Unused endpoint: GET /ytd-performance", "shortDescription": {"text": "Unused endpoint: GET /ytd-performance"}, "fullDescription": {"text": "`api/schwab_router.py` declares `GET /ytd-performance` 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/21904"}, "properties": {"repository": "unchartedterritory5995-cyber/UCT-Dashboard", "repoUrl": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430791, "scanner": "foundry_dataset", "fingerprint": "dc8babe7287548970290ffc6b27a38e6ea2a28fcbf0aac5533c8d4f18d321504", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#9", "issue_number": "9", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2ee4a8a363afd7c9", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 9\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-f54cf67abf583394", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430790, "scanner": "foundry_dataset", "fingerprint": "d65b9ad91558c93d82ec253281fa6cadaa44bd61962fd56742aa542d776cd9a5", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#8", "issue_number": "8", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-288f96e8de44d946", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#8\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#8\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-923af709f29d7abd", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430789, "scanner": "foundry_dataset", "fingerprint": "b89073968e1568c94f9ade356ce71659aa42fe662e644c1af19171917c1ec43a", "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_or_backend": 1, "api_integration_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 18, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#79", "issue_number": "79", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-e85b80be491acb29", "graph_gold_label": "assumption_check", "changed_file_labels": {"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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 79\nGraph consistency label: assumption_check\nNodes: 13\nEdges: 18\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'api_or_backend': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-004b0e4226061ece", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430788, "scanner": "foundry_dataset", "fingerprint": "caa17b3510a47f3040c197877f84c11b97b7399be373238974bea0995088c481", "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_or_frontend": 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": 14, "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_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "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": "unchartedterritory5995-cyber/UCT-Dashboard#76", "issue_number": "76", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6f2d44668c72bd61", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#76\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#76\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#76\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 76\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, '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, '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: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'ui_or_frontend': 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-971bc5dd59ac4c8d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430787, "scanner": "foundry_dataset", "fingerprint": "0dffb03123e7c9165d466d312463f623dd903e862a0f91e9f86274238950bf0f", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#7", "issue_number": "7", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-706ca3895f035f2c", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#7\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#7\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-08cca23d0dae67cd", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430786, "scanner": "foundry_dataset", "fingerprint": "0e42e33234ef7f94ad8868e9183a50b7b500c464aa79cced31e72a4ff1ac94ce", "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_or_frontend": 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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#61", "issue_number": "61", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-065012bd50f8d498", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"ui_or_frontend": 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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#61\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#61\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#61\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 61\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-5ac5a78ba2f96d58", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430785, "scanner": "foundry_dataset", "fingerprint": "1c149f8466b464694d115d82dc1ddc81cda874551c2c6d44728bd23ec6c7c7dd", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#6", "issue_number": "6", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c2b6cbeea2a48315", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#6\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#6\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-a780dacb2b3ce481", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430784, "scanner": "foundry_dataset", "fingerprint": "601f7f58dbaf7adc6900ba50e6ade2a6988f8a686c4ee73cea7bab9a1cbaa209", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#53", "issue_number": "53", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2eb4fc648f0a9a12", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 53\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-cc9780f7544f60cc", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430783, "scanner": "foundry_dataset", "fingerprint": "b315e372a8a0d18273a3d78347afe0733ca22b569434f7a3d98e5f44ec17155a", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#51", "issue_number": "51", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-1175aef4952cdc35", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 51\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-bd7c9d9cd4fe4940", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430782, "scanner": "foundry_dataset", "fingerprint": "9eaf6077b5b170bd45ad472b1c292100a9fc731e9414b7c256f157b32e697ad0", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#5", "issue_number": "5", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-19b1799f4b46ecff", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#5\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#5\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#5\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 5\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-16394888d70c7dc0", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430781, "scanner": "foundry_dataset", "fingerprint": "be4242e51ab0393d12ee1d2e58436267ef0a45f09f47702321331a267c5423e1", "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": "unchartedterritory5995-cyber/UCT-Dashboard#49", "issue_number": "49", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-66fba3d7c82a2048", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#49\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#49\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#49\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 49\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-60c9862c620506d4", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430780, "scanner": "foundry_dataset", "fingerprint": "ea0f587dec9795ffbf201681c911c926ac54df1c88feabd70c19f06bc4cb44ed", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#48", "issue_number": "48", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-02c7acafda509baa", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#48\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#48\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 48\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-b0224f478111065f", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430779, "scanner": "foundry_dataset", "fingerprint": "696bebf07d8380c05ba7163f7be6023dee509f619a6ecfdd92ca6f4d0f592dbe", "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": "unchartedterritory5995-cyber/UCT-Dashboard#47", "issue_number": "47", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-946cdac4552681b8", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#47\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#47\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 47\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-7b2da4985c59ee65", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430778, "scanner": "foundry_dataset", "fingerprint": "fe4baa49f8e48c9bc1a1fb54cef4897b730ae47dd648d79f790ae11255d176dc", "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": "unchartedterritory5995-cyber/UCT-Dashboard#46", "issue_number": "46", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-91f78802f8773fa6", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#46\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#46\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 46\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-7395f7eeba37e846", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430777, "scanner": "foundry_dataset", "fingerprint": "6c7bb778df05e91abcd524e25de8f215b768eda0e100a7692da56e43bafc919e", "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": "unchartedterritory5995-cyber/UCT-Dashboard#45", "issue_number": "45", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-98c660cce869020b", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#45\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#45\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 45\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-71ca6e005cac312c", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430776, "scanner": "foundry_dataset", "fingerprint": "f882ee0177ba1de2aefce4c3f2f4a3094a4318b2f8fe57cba2f26f92c633686b", "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": "unchartedterritory5995-cyber/UCT-Dashboard#44", "issue_number": "44", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-8d4fdc0c44b01358", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#44\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#44\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#44\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 44\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-06e5aa3242bd011e", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430775, "scanner": "foundry_dataset", "fingerprint": "aca561ca5ec444ce4faddb30d8cfa7abc0bab5a9a0f876e3e3e7e7912e26ada9", "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": "unchartedterritory5995-cyber/UCT-Dashboard#43", "issue_number": "43", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-aac696ff35187c9d", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#43\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#43\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-713dd7201b01e9c9", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430774, "scanner": "foundry_dataset", "fingerprint": "025def34062c0aa177ec765382a5734eabfd06cf1366d85bad2c5edf52a054eb", "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": "unchartedterritory5995-cyber/UCT-Dashboard#42", "issue_number": "42", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-bcc9312cf4d3e977", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#42\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#42\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#42\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 42\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-6f0465d838bb9445", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430773, "scanner": "foundry_dataset", "fingerprint": "47021aca5fd9f71ac62ef395af8b28c1405e4c6ba285ad8ff09ae64fd3216280", "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": "unchartedterritory5995-cyber/UCT-Dashboard#41", "issue_number": "41", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-5c688a712f07f287", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#41\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#41\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-37cd55a1eeaa7f96", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430772, "scanner": "foundry_dataset", "fingerprint": "1023c6a1cce5009575487377ace468571a3153a8afd73e163990ceddfccdb7b1", "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": "unchartedterritory5995-cyber/UCT-Dashboard#40", "issue_number": "40", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ed7d8be65e73f462", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#40\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#40\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#40\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 40\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-1120e552801ed2fd", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430771, "scanner": "foundry_dataset", "fingerprint": "42c3523f8107be9b4fa1d83845d0aa2bc2423e3d0bcb14a6e14cc19ff0599a9d", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#4", "issue_number": "4", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-86bc419a5e7330bf", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-88f505e928d0fa81", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430770, "scanner": "foundry_dataset", "fingerprint": "256e4dc857aca05e90e2bdcb8c300d0c94bee0dd3bcdd37f54510bfd5683ffd7", "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": "unchartedterritory5995-cyber/UCT-Dashboard#39", "issue_number": "39", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-64cbd7d91f2455d0", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#39\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#39\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-50c780e91e8b6c1a", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430769, "scanner": "foundry_dataset", "fingerprint": "988eeea6b6b3881dc00e2153fcf5e14a842bea12163ad1221feb56bdd9ccb1f8", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#38", "issue_number": "38", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-39e490bcf47b9473", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 38\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-68636decb7a030c7", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430768, "scanner": "foundry_dataset", "fingerprint": "417932c9aa1b0f72e557d9ba2e662da28c80493e4bb8a0d42b06112d20874c1d", "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": "unchartedterritory5995-cyber/UCT-Dashboard#37", "issue_number": "37", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-9dfd41b6643d3e88", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#37\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#37\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-424d4626d13b959d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430767, "scanner": "foundry_dataset", "fingerprint": "8e8e5c9ae1273ea82605e1522d30b0d806478f6df4816404a995061b8a3ba20b", "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": "unchartedterritory5995-cyber/UCT-Dashboard#36", "issue_number": "36", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c1fa0c296088de38", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#36\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#36\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#36\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 36\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-ad8958b1c57b4d08", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430766, "scanner": "foundry_dataset", "fingerprint": "2a18d151871adecf5429b053f0f7364abfd06584bae5efc6f90bc190d1889fc7", "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": "unchartedterritory5995-cyber/UCT-Dashboard#35", "issue_number": "35", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-b2ad6932b99c23cc", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#35\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#35\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#35\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 35\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-d825f92fd517d086", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430765, "scanner": "foundry_dataset", "fingerprint": "e4bcdf5a15b2baf66383a729d335737b6a5801025c7431cedfcbc663463c68bb", "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": "unchartedterritory5995-cyber/UCT-Dashboard#34", "issue_number": "34", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-bbc044065d6df362", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#34\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#34\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#34\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 34\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-17c7e7bd75d44021", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430764, "scanner": "foundry_dataset", "fingerprint": "68d05822ab1b58ce0c0558182973ee6bdb371be11d3e5f9d92fa62782efb78f9", "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": "unchartedterritory5995-cyber/UCT-Dashboard#33", "issue_number": "33", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-25e9325b09b3d4c5", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#33\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#33\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#33\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 33\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-23ccfece9e16337a", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430763, "scanner": "foundry_dataset", "fingerprint": "4082e1cc901faf22cd223e06a6c672e9dcde25224a1bf49fb4a7cdb08ed5848c", "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": "unchartedterritory5995-cyber/UCT-Dashboard#32", "issue_number": "32", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c49426eae4921b16", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#32\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#32\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#32\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 32\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-71c4028c381fb0be", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430762, "scanner": "foundry_dataset", "fingerprint": "414b4fecba5b566a95503cbb2cac075110b58d0c5e1b04245b8ccb415b150aeb", "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": "unchartedterritory5995-cyber/UCT-Dashboard#31", "issue_number": "31", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-aed671efea20193c", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#31\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#31\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#31\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 31\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-cd195178fd895766", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430761, "scanner": "foundry_dataset", "fingerprint": "67949689df9e576ea6d236893934c82f8451ccda12fc13a316927d669a06e5ee", "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": "unchartedterritory5995-cyber/UCT-Dashboard#30", "issue_number": "30", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a70df66c2c7dd3e1", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#30\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#30\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#30\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 30\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-1508a97645024d67", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430760, "scanner": "foundry_dataset", "fingerprint": "fb47f95b93390949d9119b342ab5b2b00ed85fcdb718c5ddca5b60915adc1c91", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#3", "issue_number": "3", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-7757047fb3328cbb", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#3\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#3\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#3\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 3\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-13fcc28f75e7c516", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430759, "scanner": "foundry_dataset", "fingerprint": "ee0c83c791d3229933c9aa15372dcf949ace49df245f0cee46b4730f3836baed", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#29", "issue_number": "29", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d303e0751789abbe", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#29\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#29\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'not_resolved_or_not_observed': 3, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-b0098f2a83f9788d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430758, "scanner": "foundry_dataset", "fingerprint": "a2bfcdf78082356ea76bb32d2af0489ca6b6b96950c7bd1e30c9176d220ad3bb", "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": "unchartedterritory5995-cyber/UCT-Dashboard#28", "issue_number": "28", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-02e24bfa646caba0", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#28\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#28\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-c25b2392276a3468", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430757, "scanner": "foundry_dataset", "fingerprint": "16bd28994375a10d57ce595fdbdda43a4cf8fb17b0e2ff3e398b656ef5adda6c", "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": "unchartedterritory5995-cyber/UCT-Dashboard#27", "issue_number": "27", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-231a1796c65a9c76", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#27\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#27\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-40d527e9e9d59df2", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430756, "scanner": "foundry_dataset", "fingerprint": "997bf83a8483a7ea58c6a8682992343100d72c4e1288ca675f7affeb808c4813", "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": "unchartedterritory5995-cyber/UCT-Dashboard#26", "issue_number": "26", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-49895e381dad8559", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#26\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#26\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-0623e22644f342ee", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430755, "scanner": "foundry_dataset", "fingerprint": "dd75cae2da4cbaba225861dfce879b9e77704d812996a413a9b9cb19856b92a6", "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": "unchartedterritory5995-cyber/UCT-Dashboard#25", "issue_number": "25", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d400047dd25640f1", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#25\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#25\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-93190347d4cdbbad", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430754, "scanner": "foundry_dataset", "fingerprint": "caec6b4fad42d3751d5a8edf467ad379b602179f032c29fe3ef918e5a1fd4df3", "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": "unchartedterritory5995-cyber/UCT-Dashboard#24", "issue_number": "24", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4ed34a3a92852837", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#24\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#24\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#24\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 24\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-a28f641c7408294d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430753, "scanner": "foundry_dataset", "fingerprint": "27358666da107eb05c03ca9a846fd1a7d0a524036aef2f1fd74b6d53d039b876", "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": {"positive_human_signal": 1, "issue_or_pull_request_thread": 1, "thread_has_positive_feedback": 2, "positive_feedback_no_linked_change": 1, "human_positive_or_acceptance_signal": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"human_positive_or_acceptance_signal": 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": "unchartedterritory5995-cyber/UCT-Dashboard#23", "issue_number": "23", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-79170081d429842f", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#23\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#23\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'human_positive_or_acceptance_signal': 3, 'thread_has_positive_feedback': 2, 'issue_or_pull_request_thread': 1, 'positive_human_signal': 1, 'positive_feedback_no_linked_change': 1}\nOutcomes: {'human_positive_or_acceptance_signal': 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-fbd0620d7e077fa1", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430752, "scanner": "foundry_dataset", "fingerprint": "59ffd81ffa1dc14f4c6c3de2281f13165e497f35afbcb0067d360da38c327515", "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": "unchartedterritory5995-cyber/UCT-Dashboard#22", "issue_number": "22", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6351205a5b71dfe7", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#22\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#22\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-09a99dea346050d0", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430751, "scanner": "foundry_dataset", "fingerprint": "5b0175a471ee9f5200deb7beb0e080d82a808d076cd28fb9b28a3a5d5c73bf00", "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": "unchartedterritory5995-cyber/UCT-Dashboard#21", "issue_number": "21", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-e646639ca564fb56", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#21\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#21\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#21\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 21\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-1893d4d597386a75", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430750, "scanner": "foundry_dataset", "fingerprint": "78c491eac538716d9b39c1aca185dbcda8f7efa852779f04b137a739bb13c1d3", "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": "unchartedterritory5995-cyber/UCT-Dashboard#20", "issue_number": "20", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-533d5d69e0348b44", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#20\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#20\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-df785c2dd0f87fb8", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430749, "scanner": "foundry_dataset", "fingerprint": "a822f93ba059b3b2e871c1f6d0d2c9b5f8001439389eedf6b9445a9ca5caf445", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-01f8a6de33a3785d", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#2\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#2\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 2\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-01d8633b94c21e17", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430748, "scanner": "foundry_dataset", "fingerprint": "2d2020e66db78c096fe3ab4d9510702232fc4b832abfc35c77c0a37fd4cf95ad", "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": "unchartedterritory5995-cyber/UCT-Dashboard#19", "issue_number": "19", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a3bc7d894e67bcc8", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#19\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#19\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#19\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 19\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-fbffcd97d6f6341f", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430747, "scanner": "foundry_dataset", "fingerprint": "93b48fbe7258986c24f310d47f2ea780592173ac6171e999510e9631e05721dd", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#18", "issue_number": "18", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-77354147a9407df7", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#18\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#18\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#18\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 18\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-a2b0a9c0f86dbf05", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430746, "scanner": "foundry_dataset", "fingerprint": "67231b816bf3c894bf70f12ed342596c1a4084197d41d5d25fa6400290e80520", "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": "unchartedterritory5995-cyber/UCT-Dashboard#17", "issue_number": "17", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-baa4f687cf00efd4", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#17\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#17\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#17\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 17\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-96ffc760e67deea5", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430745, "scanner": "foundry_dataset", "fingerprint": "50f9a559bec0e91e01b86401d55401f5e1334010a69577676adba075f0010ea5", "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": "unchartedterritory5995-cyber/UCT-Dashboard#16", "issue_number": "16", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4d6102c6032b096f", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#16\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#16\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-30a4795855c71c17", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430744, "scanner": "foundry_dataset", "fingerprint": "23b7599415e8a2cb7b0bb6995af76dc6dddfb3b3bed11531997e1ca56b89d7d8", "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": "unchartedterritory5995-cyber/UCT-Dashboard#15", "issue_number": "15", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-43a76a9cf04960b5", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#15\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#15\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-73cb60153ab54472", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430743, "scanner": "foundry_dataset", "fingerprint": "69845f25be79c675281d1fd72b903e964706ca644ef9a76cbf232f0058b08266", "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": "unchartedterritory5995-cyber/UCT-Dashboard#14", "issue_number": "14", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ed68471b0174d151", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#14\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#14\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-f8ee111ded681b92", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430742, "scanner": "foundry_dataset", "fingerprint": "13772d20f3906a372a3d34ccd772145745dad7f448d08952da5639f10bf2ebdd", "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": "unchartedterritory5995-cyber/UCT-Dashboard#13", "issue_number": "13", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-7b216d6593e551cd", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#13\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#13\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#13\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 13\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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-22e5a45b07b473a9", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430741, "scanner": "foundry_dataset", "fingerprint": "4b8a3ba91dd30253881243897d1fee1a04e07f1eb47dee5446b46af4898fee0c", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#12", "issue_number": "12", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-86ded4ef78ca96ed", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#12\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#12\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-be5b3f132dba3c00", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430740, "scanner": "foundry_dataset", "fingerprint": "65678321f761df9f8fd3977b4b67c0b3162ef09161b704aa26550d974325c0d3", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#11", "issue_number": "11", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a99a67c033deb06c", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#11\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#11\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#11\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 11\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-efdce91176d1efb3", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 430739, "scanner": "foundry_dataset", "fingerprint": "3d9face66afbdac6e23e1d5193c9140fe52625c0a2ac6528f8961756547701ae", "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": {"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": 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": "unchartedterritory5995-cyber/UCT-Dashboard#10", "issue_number": "10", "quality_tiers": {"unresolved": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-363b54541bc8b65f", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#10\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#10\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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, '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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-e6ec7534cdce7c06", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404844, "scanner": "foundry_dataset", "fingerprint": "7f9f4b158763d3ce883a95f06ee6a86bd766375263b87b08895901c7538ca994", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"api_or_backend": 1, "api_integration_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 18, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#79", "issue_number": "79", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ef9ff8f455e76cd9", "graph_gold_label": "assumption_check", "changed_file_labels": {"api_or_backend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 79\nGraph consistency label: assumption_check\nNodes: 13\nEdges: 18\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'api_or_backend': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-766251ba58e583d4", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404843, "scanner": "foundry_dataset", "fingerprint": "c583fe5491146e56b15addca9e3b0528eef3984f4bab6af8e0456cc58d22c03f", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#78", "issue_number": "78", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-9defe3b983a8c549", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 78\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-bb4d227b3760f17e", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404842, "scanner": "foundry_dataset", "fingerprint": "7d07b0c822b334aec79f5c8006535be9523df395b3714ccf21bd600ea6580f10", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_ci_gap": 1, "ui_or_frontend": 2, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#77", "issue_number": "77", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c162d5feb9a09403", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 77\nGraph consistency label: weak_supervision_needs_review\nNodes: 18\nEdges: 25\nNode types: {'commit': 4, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 4, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-40ff670f71b7ca58", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404841, "scanner": "foundry_dataset", "fingerprint": "f473e6dd654882df0a2ed5a6bfecaae45b2acbc295409f50b5e8f55fdb312c03", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "ui_or_frontend": 2, "ui_workflow_gap": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#75", "issue_number": "75", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-7c5e35c2a58585b9", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#75\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#75\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#75\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 75\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-aed3a1dbe41fc914", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404840, "scanner": "foundry_dataset", "fingerprint": "b958c8e67245dfa4e3610d716273c6bd1cf32f10f68265843d45c3bb4b0c7890", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_ci_gap": 1, "ui_or_frontend": 3, "dependency_or_build": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 29, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#74", "issue_number": "74", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-67bf0f5481b901e3", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 12}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#74\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#74\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#74\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 74\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 29\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'thread_touches_file': 3, 'comment_chain_touches_file': 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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'ui_or_frontend': 3, '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, 'dependency_or_build': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-f9664717ced76fd7", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404839, "scanner": "foundry_dataset", "fingerprint": "6544ab32415053e5bd2cdb89eeb8ab39d447c392a00dd9a74fc2aafaaed18484", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "test_ci_gap": 1, "ui_or_frontend": 2, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#72", "issue_number": "72", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-710af258bc08bca2", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#72\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#72\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#72\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 72\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-b281d12433a2e4c6", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404838, "scanner": "foundry_dataset", "fingerprint": "dc7d44c82e96121cc78733630260cf1d61f15b19eeb0244c3048b18b4119c4a3", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_ci_gap": 1, "ui_or_frontend": 4, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 4, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#71", "issue_number": "71", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-b24552f73ac9623e", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 16}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#71\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#71\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#71\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 71\nGraph consistency label: weak_supervision_needs_review\nNodes: 21\nEdges: 32\nNode types: {'commit': 5, 'pr_file': 4, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'issue_chain_touches_file': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ui_or_frontend': 4, '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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-0b3d9a8662474276", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404837, "scanner": "foundry_dataset", "fingerprint": "7a2313365e2c0f44392f19198bccba34e5828965543189c2ef7e7c32dc0f637e", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 5, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#70", "issue_number": "70", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-92d1ae4697ac6b12", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 20}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#70\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#70\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#70\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 70\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 35\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ui_or_frontend': 5, 'verification_or_tests': 4, '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, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-2f211d93da3b0908", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404836, "scanner": "foundry_dataset", "fingerprint": "100a3eed6e3ad476fcf69b02c33290a1768dc47deba481b133e8fc6f84c3153a", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_or_ci": 1, "test_ci_gap": 1, "api_or_backend": 2, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#69", "issue_number": "69", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-83e5a7296246ec8f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#69\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#69\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#69\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 69\nGraph consistency label: weak_supervision_needs_review\nNodes: 16\nEdges: 25\nNode types: {'link_quality': 4, 'pr_file': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-4633744ff129cb76", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404835, "scanner": "foundry_dataset", "fingerprint": "75bbc27a1fd8972844eb0aeef7e06f2cfa026d2ad1fa86e96286dbb074e2bc50", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 2, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#68", "issue_number": "68", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-786a935a7692e7c9", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#68\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#68\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#68\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 68\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-2862736ddfedea1f", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404834, "scanner": "foundry_dataset", "fingerprint": "bd766e92b023395267fc8c1d93a23300c0dd224595253b5745e0e47397032db2", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#65", "issue_number": "65", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-a94c727262027c8a", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#65\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#65\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#65\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 65\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-35e08b73d65fb499", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404833, "scanner": "foundry_dataset", "fingerprint": "bfa97ced08677db63751c106e2c27d0a5db0a4d95fec38269d46bcf811b97d46", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 2, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#64", "issue_number": "64", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-65258ece9a28736b", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#64\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#64\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#64\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 64\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-a72a91368786fca4", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404832, "scanner": "foundry_dataset", "fingerprint": "2ff10c3376bf61545e903024d2788a4a18d440ff4006915269d9f63066a7eca2", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_or_ci": 1, "test_ci_gap": 1, "api_or_backend": 2, "ui_or_frontend": 3, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#63", "issue_number": "63", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ee6b7250edac25eb", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 8, "ui_or_frontend": 12}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#63\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#63\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#63\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 63\nGraph consistency label: weak_supervision_needs_review\nNodes: 23\nEdges: 38\nNode types: {'pr_file': 6, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ui_or_frontend': 3, 'ambiguous_needs_more_evidence': 3, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-ca3aa860497ffab5", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404831, "scanner": "foundry_dataset", "fingerprint": "f6e5737512761a9fe521cee47e8ac82cb16a45d0bd19fe01c22db051d7978acc", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "ui_or_frontend": 1, "ui_workflow_gap": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#62", "issue_number": "62", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c312ddabc6326791", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#62\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#62\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#62\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 62\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-b1c2dea676503d95", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404830, "scanner": "foundry_dataset", "fingerprint": "196193b176d2fdc5a4ee140802eeb4c088f8b8522a7c9d6ad224234d13dad3b1", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"api_integration_gap": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#58", "issue_number": "58", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-bde0388ab94cfd95", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#58\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#58\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#58\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 58\nGraph consistency label: weak_supervision_needs_review\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-19d5a8c0576bb6dc", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404829, "scanner": "foundry_dataset", "fingerprint": "0f09086881c4db240e47f3416bb10d3d2123633ea9317379f2146854e978df91", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"ui_workflow_gap": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#56", "issue_number": "56", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-152fc5ed22095158", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#56\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#56\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#56\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 56\nGraph consistency label: weak_supervision_needs_review\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-6e9efdc874bd6116", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404828, "scanner": "foundry_dataset", "fingerprint": "886a1bba1d56d89426d31f873adc3f529337386192b33362ffca86ad5fa9a614", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"api_integration_gap": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 18, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#55", "issue_number": "55", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-bcb4428e98c6da27", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#55\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#55\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#55\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 55\nGraph consistency label: weak_supervision_needs_review\nNodes: 15\nEdges: 18\nNode types: {'link_quality': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'comment_chain_links_commit': 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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-9b6b00cf44d64614", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404827, "scanner": "foundry_dataset", "fingerprint": "dfe2004f9cd7d1a2462f8e73ef937281bfdd25ebb4cd34d61bfa542508217d6f", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"api_integration_gap": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 18, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#54", "issue_number": "54", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-f5cea77cb7598236", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#54\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#54\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#54\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 54\nGraph consistency label: weak_supervision_needs_review\nNodes: 15\nEdges: 18\nNode types: {'link_quality': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'comment_chain_links_commit': 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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-8270d86f171d848f", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404826, "scanner": "foundry_dataset", "fingerprint": "e0a1584065b7ced8e2ece631a5823fe6378150d314ef819a1aababb0cb42c54b", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#53", "issue_number": "53", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-5f3f39687f57782f", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 53\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-009eb0d29a5a1c89", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404825, "scanner": "foundry_dataset", "fingerprint": "09a8c72e7a55342f5954f09a99f1a08e763db81f2c5661dbfa0b2c500ac23c73", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"api_integration_gap": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#52", "issue_number": "52", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-a50aebf650c70acb", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#52\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#52\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#52\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 52\nGraph consistency label: weak_supervision_needs_review\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-42bb820bb5abeaeb", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404824, "scanner": "foundry_dataset", "fingerprint": "4f2fbf71f4da194a89d1526c0e7cf99de3c127582c1f0add44a044e53263769b", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#51", "issue_number": "51", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-09289dd2f8f3e682", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 51\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-dce625ba37c6165d", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404823, "scanner": "foundry_dataset", "fingerprint": "9861e294ec2f44fd15a8e7cd24120ab198d03d9fd18c6e8e8106cd216eec9cfc", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "api_integration_gap": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#50", "issue_number": "50", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-5ee828baa1d2d442", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#50\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#50\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#50\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 50\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-ea46f5fb6a4beea7", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404822, "scanner": "foundry_dataset", "fingerprint": "cc5da269f271ce9e6f3facb5324b6f5ff2a465607fbc4858b19d5824f1bba603", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"api_integration_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#5", "issue_number": "5", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-5f1d3fed5443620e", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#5\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#5\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#5\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 5\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-0400f0ac0be44edb", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404821, "scanner": "foundry_dataset", "fingerprint": "a2a652bd9a205752389a613d4f19a6ad5c039c43d8d30539883a91b43452c7e0", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_ci_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#4", "issue_number": "4", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-46717f572ae954c7", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-1c8b97b9aeafad60", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404820, "scanner": "foundry_dataset", "fingerprint": "16a851cc9a82eb5cf7cc53e6aa8e485df07850fd7d46fd0a9248af4d743c769e", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#38", "issue_number": "38", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-e52c86618e486a44", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 38\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-584cf3e04ba90039", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404819, "scanner": "foundry_dataset", "fingerprint": "31d2843dcc44ea831263ac8d1286a586d1e43633c31721784ae918af29854f25", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"api_integration_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#18", "issue_number": "18", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-3f06c0ac079290ec", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#18\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#18\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#18\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 18\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-1014fbedc3c46fe1", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 404818, "scanner": "foundry_dataset", "fingerprint": "814471d43d0a941ecbe8ba9365da83d8108db79d4f2bfd48e8b3af56baa8035d", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#1", "issue_number": "1", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-181b10c7b302b807", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#1\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, '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, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-f8af007e4467a788", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383448, "scanner": "foundry_dataset", "fingerprint": "917c608e0bf1929a69b936b8a6f52e963ba9d6096bf5b093b76791d363aae2e7", "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": "unchartedterritory5995-cyber/UCT-Dashboard#77", "human_labels": ["test_ci_gap", "ui_or_frontend"], "issue_number": "77", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-6b6c540326bb60b8", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 4, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\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: unchartedterritory5995-cyber/UCT-Dashboard#77\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5ed5424a5db45b3a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/77\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/77\\nTitle: Model Book: exit setup focus on manual zoom/pan (annotations lingering)\\nBody:\\nAnnotations (and the gold candle + \\\"Annotate\\\" button) were staying on the chart when zoomed out. Root cause: they track the **focus state**, not the live view \u2014 so manually wheel-zooming or drag-panning the chart away while a setup was focused left `focusDate` set, so everything lingered on the zoomed-out chart.\\n\\nFix \u2014 `onFocusEscape`: StockChart watches the chart container for a manual **wheel-zoom** (escapes immediately) or a **drag-pan** (escapes once the pointer moves past a 4px threshold \u2014 a plain click is ignored, and drawing in annotate mode is excluded) while a focus is active. On escape it releases focus ownership, unfreezes the price scale (re-enables default autoScale), and calls `onFocusEscape`; ModelBook clears `focusDate`. \u2192 annotations hide, gold candle clears, Annotate button drops.\\n\\nVerified: ModelBook eslint clean; StockChart lint unchanged (75); Mod\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-c7808772af0a9bd5\",\n    \"filename\": \"app/src/components/StockChart.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 40,\n    \"deletions\": 0,\n    \"changes\": 40,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/e030419e98475db619f2c6b30ef79fc82b8a83a2/app%2Fsrc%2Fcomponents%2FStockChart.jsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-ea0b42825abc03da\",\n    \"filename\": \"app/src/pages/ModelBook.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-8ca22910284200b0", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383447, "scanner": "foundry_dataset", "fingerprint": "38ff267ffdeeeb894ed6f3cc90ea96b7067301023693ca0ff6bb22dfecca2d00", "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": "unchartedterritory5995-cyber/UCT-Dashboard#73", "human_labels": ["agent_instruction_gap", "ui_or_frontend"], "issue_number": "73", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-4a00c371953b1496", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#73\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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#73\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: 1\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-40f9af1cc98dd5ad\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/73\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/73\\nTitle: Model Book: eliminate the final end-of-zoom annotation skip\\nBody:\\nThe zoom ended by nulling the interpolated price range **and** calling `applyOptions({autoScale: true})` to re-fit. That recompute lands a hair off the final interpolated frame and **snaps** the scale \u2014 and since it's a *price-scale* change (not a logical-range change), the annotation overlay (which redraws on range-change) doesn't follow it, so the drawing skips at the very end.\\n\\nFix: **don't re-fit.** The final animation frame already set the scale to the target (candles + overlays). Just stop driving the scale (clear the ref) and leave it exactly there. The next data-driven autoScale uses the chart's default fit since the ref is cleared.\\n\\nVerified: StockChart lint unchanged (75); `npm run build` passes.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-e52784c42e71453b\",\n    \"filename\": \"app/src/components/StockChart.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 6,\n    \"deletions\": 2,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/1092dacfaef400590d7b070e2838c05999d5d137/app%2Fsrc%2Fcomponents%2FStockChart.jsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3ae2f09dec5b1997\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-084fe29fde99dcc8", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383446, "scanner": "foundry_dataset", "fingerprint": "dd068da4ec01f14f92b320190bac13bda145db508c6cf5b0fb379e74a890081c", "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": "unchartedterritory5995-cyber/UCT-Dashboard#71", "human_labels": ["test_ci_gap", "ui_or_frontend"], "issue_number": "71", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.625, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ff4bf6f104e24fe0", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 4}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#71\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: unchartedterritory5995-cyber/UCT-Dashboard#71\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 4\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8a3f43494eeff520\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/71\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/71\\nTitle: Model Book: gold setup candle + smooth annotations + findable dashed control\\nBody:\\nThree polish fixes to the setup-zoom / annotation experience:\\n\\n### 1. Gold setup-day candle\\nWhen zoomed in on a setup, that day's candle paints **gold**. Implemented as a candle-only `setData` of a gold-tinted copy (`goldOhlc`), applied *after* `updateChart` and **scoped** (no-op unless a highlight is or was set) \u2014 so the range is preserved (just a recolor, no flash) and no other chart is touched. Cleared when you zoom back out.\\n\\n### 2. Smooth annotations during zoom\\nThe overlay tracked chart movement via a 60ms (~16fps) `setInterval`, so drawings **skipped behind** the 60fps zoom. Now it subscribes to the time scale's range-change event (fires synchronously per frame from `setVisibleLogicalRange`) and redraws in lockstep; a slow 200ms poll remains as a fallback.\\n\\n### 3. Findable dashed control\\nThe annotate toolbar was rendering at 30% opacity (the unobtrusive de\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-16cbb1c2ebaabe52\",\n    \"filename\": \"app/src/components/StockChart.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 40,\n    \"deletions\": 7,\n    \"changes\": 47,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/1a4da4b22dbb770b3642ed10c3ce028516344c32/app%2Fsrc%2Fcomponents%2FStockChart.jsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-2f9936907861de6b\",\n    \"filename\": \"app/src/components/chart/ChartDrawingOverlay.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modi\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-d54e08e3cee63e29", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383445, "scanner": "foundry_dataset", "fingerprint": "a6f6cbfd389e82a0125c1746f6f437058520241eb3f2801f7c7c398eaa4bf970", "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": "unchartedterritory5995-cyber/UCT-Dashboard#69", "human_labels": ["api_or_backend", "test_ci_gap", "test_or_ci"], "issue_number": "69", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-6c1985a0fd4bddbd", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#69\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: unchartedterritory5995-cyber/UCT-Dashboard#69\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: 3\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 2, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-015e940ded1d2f87\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/69\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/69\\nTitle: Model Book: backend for per-setup chart annotations\\nBody:\\nPhase 1 of the per-setup chart drawings feature (additive, no UI yet).\\n\\nAdds a nullable `modelbook_setups.drawings_json` TEXT column (a JSON array of chart annotations shown when a setup is focused): schema + guarded `ALTER TABLE ADD COLUMN` migration (heals the existing DB on boot), `_SETUP_FIELDS`, the explicit INSERT, and `SetupIn`/`SetupPatch`.\\n\\nAnnotate-save (a later phase) PUTs only `drawings_json`; `exclude_unset` means editing a setup's other fields never wipes its drawings \u2014 covered by the new round-trip test.\\n\\n**Note:** no Python locally, so the test runs on CI/Railway; hand-audited the SQL (column/param counts match) and it mirrors the proven `frame_start_date` migration.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-8741d2e335d1e16c\",\n    \"filename\": \"api/routers/modelbook.py\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 2,\n    \"deletions\": 0,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/2e0d629d8efe1be1b8172e6018cc8343b4dda04f/api%2Frouters%2Fmodelbook.py\"\n  },\n  {\n    \"id\": \"github-pr-file-file-a5b2b7d8e967f558\",\n    \"filename\": \"api/services/modelbook_service.py\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 6,\n    \"deletions\": 3,\n    \"changes\": 9,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/2e0d629d8efe1be1b\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-120f42b0ff4101d2", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383444, "scanner": "foundry_dataset", "fingerprint": "1d3234781d760777b8af624e5ec70c4d2cc17933de8a4643445d7d7c97fa8065", "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": "unchartedterritory5995-cyber/UCT-Dashboard#67", "human_labels": ["agent_instruction_gap", "ui_or_frontend"], "issue_number": "67", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-d796875f5f6313b8", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 3, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#67\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#67\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0666a20b3b8b0cb8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/67\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/67\\nTitle: Model Book: fix first-load locking onto stale partial-data range\\nBody:\\nFollow-up to #66. The first-load view jumped to 2022\u20132023 instead of locking to 2025.\\n\\n**Cause:** the timed re-asserts captured the visible-range indices in a closure. On a cold load, bars arrive in stages \u2014 the **first** pin run computed indices against a *partial* dataset (no 2025 bars yet \u2192 `from:0, to:<end of partial>`) and scheduled the re-asserts with those stale `0\u2026N` indices. When the full data loaded, the pin re-applied the correct 2025 range synchronously, but the pending re-asserts then fired with the **old indices**, snapping the view to the earliest bars (2022\u20132023).\\n\\n**Fix:** store the latest computed range in `yearRangeRef` on every pin run; `applyYear` (the synchronous call and all scheduled re-asserts) reads that ref. So as staged data loads update the target, every re-assert applies the *current* correct year range instead of stale captured indice\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-88c2bf4e0665a712\",\n    \"filename\": \"app/src/components/StockChart.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 8,\n    \"deletions\": 1,\n    \"changes\": 9,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/3419d04a8cfa943c387ed05c384b699da90e51d9/app%2Fsrc%2Fcomponents%2FStockChart.jsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5ca6f6bf22a02b3c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: so\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-65130311e8e7b4f8", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383443, "scanner": "foundry_dataset", "fingerprint": "10729062adb217bb75a2c4fe394340112aa787d9e114c2e8a44eff6e0eb234c7", "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": "unchartedterritory5995-cyber/UCT-Dashboard#66", "human_labels": ["agent_instruction_gap", "ui_or_frontend"], "issue_number": "66", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-0e6e99a6ee1ad5b7", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 4, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#66\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#66\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5a22b9424bd83ebf\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/66\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/66\\nTitle: Model Book: robustly lock first-load view to the framed year\\nBody:\\nThe first-load view still showed 2026 data instead of locking to the 2025 calendar year. My earlier single-rAF re-assert (PR #62) fired too early: the `autoSize` chart keeps re-laying-out for several frames after first paint (container 0\u2192real size, ResizeObserver, font load), and a later layout pass overrode the visible range back to the default latest view. It only \\\"fixed itself\\\" when you clicked another chart because by then the chart was fully laid out.\\n\\nNow the year frame is re-asserted across the whole initial settle window \u2014 `rAF`, double-`rAF`, and `setTimeout` at 120/320/650ms \u2014 each guarded by (same sym+tf, no active focus zoom), so switching stocks or clicking a setup cancels the pending re-asserts and a focus zoom is never disturbed. The user can't have manually zoomed this early after load.\\n\\nVerified: StockChart lint unchanged (75 pre-existing, +0), `npm ru\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-31a9877c266ea3ab\",\n    \"filename\": \"app/src/components/StockChart.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 14,\n    \"deletions\": 6,\n    \"changes\": 20,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/ab092fcb5aae041c7a9de011eca70eeabda3ff5d/app%2Fsrc%2Fcomponents%2FStockChart.jsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-f7dc0db46e84e0fa\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-afc7c3f343b9da0d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383442, "scanner": "foundry_dataset", "fingerprint": "0ba8c1e67ec0474fadf584a71eeeeb8ac551372184a573377eae47613471a300", "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": "unchartedterritory5995-cyber/UCT-Dashboard#63", "human_labels": ["api_or_backend", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "63", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-4a534d4bad1a3a21", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 2, "ui_or_frontend": 3}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#63\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: unchartedterritory5995-cyber/UCT-Dashboard#63\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 2, 'ui_or_frontend': 3, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a021feec9e5c8877\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/63\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/63\\nTitle: Model Book: per-setup zoom start date\\nBody:\\nAdds the ability to choose the **start date** of the focus-zoom frame when labeling a setup. The zoom then frames `[start date \u2192 setup day]` instead of the fixed 80-bar lead-up. Unset \u2192 falls back to the bars-back default (so existing setups are unaffected).\\n\\n### Backend\\n- New nullable column `modelbook_setups.frame_start_date` \u2014 schema + `ALTER TABLE ADD COLUMN` migration (heals existing `/data/modelbook.db` on boot), added to `_SETUP_FIELDS`, the explicit INSERT, and `SetupIn`/`SetupPatch` with ISO-date validation.\\n\\n### Frontend\\n- `AddSetupForm`: the date inputs are now a labeled pair \u2014 **Setup day (last candle)** + **Zoom start (optional)** (constrained to \u2264 the setup day).\\n- `StockChart`: new `focusStartDate` prop \u2014 the first bar on/after it becomes the frame's left edge. Guarded: if it isn't actually left of the setup bar, falls back to `focusBarsBack`.\\n\\n### Tests / verification\\n- Added a round-t\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-f0fff1f30c38c9da\",\n    \"filename\": \"api/routers/modelbook.py\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 4,\n    \"deletions\": 0,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/c4ed07f49d5042b26fd7ddb5531a6226be763e24/api%2Frouters%2Fmodelbook.py\"\n  },\n  {\n    \"id\": \"github-pr-file-file-23643d2bcc0fbd71\",\n    \"filename\": \"api/services/modelbook_service.py\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"mo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-946fc23143b76335", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383441, "scanner": "foundry_dataset", "fingerprint": "0292d01d4adfd480a04c2f16dc044ee70745302894dc3c655e3f9143a8683e06", "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": "unchartedterritory5995-cyber/UCT-Dashboard#60", "human_labels": ["agent_instruction_gap", "ui_or_frontend"], "issue_number": "60", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-0dc32632b9e994f1", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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_weak_supervision\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#60\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: 1\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dc60de52751e63ca\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/60\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/60\\nTitle: Model Book: setup bar is the true last candle, wider final frame\\nBody:\\n- **No more sliver of the next candle.** Right edge is now an integer index (`to = idx`) so the labeled setup bar is the last fully-shown candle with nothing after it \u2014 same behavior as the year-frame pin. The previous `+0.5` margin let the edge of the next bar peek in.\\n- **Less zoomed in.** Lead-up window 65 \u2192 80 bars.\\n\\nVerified: `npm run build` succeeds.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-a75bab359949feea\",\n    \"filename\": \"app/src/components/StockChart.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 2,\n    \"deletions\": 2,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/3676ccbe6287dd7526520f320009bf93a064c661/app%2Fsrc%2Fcomponents%2FStockChart.jsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-833b622083bd851a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_pro\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-42de6180243c9ab1", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383440, "scanner": "foundry_dataset", "fingerprint": "6a753350b29971c90237c9ab0e4e2a9f2fba5fdef45bd4866a380d9a684ac0d3", "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": "unchartedterritory5995-cyber/UCT-Dashboard#59", "human_labels": ["agent_instruction_gap"], "issue_number": "59", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-349707dc83988c46", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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_weak_supervision\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#59\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-527075dee2ec9e95\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/59\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/59\\nTitle: Model Book: focus zoom ends on the setup bar, slightly wider\\nBody:\\nTwo tweaks to the setup focus zoom:\\n\\n- **Last candle = the labeled day.** Was `to = idx + 1`, which pulled in the next trading day (e.g. AXTI Aug 22 Fri \u2192 showed Aug 25 Mon). Now `to = idx + 0.5` so the setup's bar sits at the right edge with a half-bar margin and the next candle stays off-screen.\\n- **A little more zoomed out.** Lead-up window 50 \u2192 65 bars so the full base is visible.\\n\\nVerified: `npm run build` succeeds.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d181ba8c95ac4214\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-83d05c3bfba4393a", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383439, "scanner": "foundry_dataset", "fingerprint": "b61bd67dce14ff8b5128826a77b4da018147c8e5cfc1e25ca6e6f7a5da556701", "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": "unchartedterritory5995-cyber/UCT-Dashboard#58", "human_labels": ["api_integration_gap"], "issue_number": "58", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-902e1b4518e9d4e0", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#58\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: unchartedterritory5995-cyber/UCT-Dashboard#58\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\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-9ece4459058e2601\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/58\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/58\\nTitle: Model Book: click a setup to smoothly zoom the chart to it\\nBody:\\nClicking a setup in the right-panel list now **smoothly zooms the chart** so that setup's day is the last candle on screen, with ~50 bars of lead-up to its left \u2014 framing exactly the base + breakout as it triggered. Click the same setup again to zoom back out to the full year.\\n\\n### How\\n`StockChart` gains two additive, default-off props:\\n- `focusDate` \u2014 ISO date that should become the rightmost candle (null = zoom back to the framed `[entryDate, exitDate]` year)\\n- `focusNonce` \u2014 bump to (re)trigger the zoom even when `focusDate` is unchanged\\n\\nOn a nonce bump it eases the visible logical range from its current position to the target over 900ms (easeInOutCubic), with the right price scale on `autoScale` so candles grow vertically as the window narrows. A focus zoom owns the view (the existing year-range pin yields) until the user toggles it off or switches stock/timeframe, th\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5015821cf0ddf91d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_ar\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-1cb27c68e47ad354", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383438, "scanner": "foundry_dataset", "fingerprint": "ad8ccfacb26d350b30268f3b168e974f1d7133db9b2d1cb73024bbad2b5a1e50", "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": "unchartedterritory5995-cyber/UCT-Dashboard#56", "human_labels": ["ui_workflow_gap"], "issue_number": "56", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-a1d49a22f755096b", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#56\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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#56\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\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-ca869e250641ca04\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/56\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/56\\nTitle: Model Book: no chart marker when adding a setup\\nBody:\\nAdding a setup no longer drops an arrow + label marker on the chart. The right-panel setups list is the index of buy spots; clicking a row still surfaces that setup's entry/stop/target price lines.\\n\\n- Removed the `markers` prop/useMemo and the unused `gradeColor` helper.\\n- Stripped the dead marker side/shape selectors from the admin add form (backend defaults fill the omitted fields).\\n\\nVerified: eslint clean, ModelBook tests 5/5, `npm run build` succeeds.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-98fcfcaed37ffa9c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-bdb9a9a3416700f2", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383437, "scanner": "foundry_dataset", "fingerprint": "2c04d0b49ec22b86612dc8df97928abf00088524b54a85e3eadd8d3c3a82d164", "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": "unchartedterritory5995-cyber/UCT-Dashboard#55", "human_labels": ["api_integration_gap"], "issue_number": "55", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b70c10d7b36e8588", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 3, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#55\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: unchartedterritory5995-cyber/UCT-Dashboard#55\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 3\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-76c1f32b2340f1fb\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/55\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/55\\nTitle: Model Book: setups in right panel as compact buy-spot list\\nBody:\\nMoves the per-stock setups from the below-chart section into the bottom half of the right info panel, under a divider.\\n\\n- Compact rows: setup name + month (e.g. **Flat Base Breakout \u00b7 Aug**), sorted chronologically so they read as a time-ordered guide to the best buy spots.\\n- Clicking a row still surfaces its entry/stop/target lines + marker on the chart (existing behavior).\\n- Admin add/delete preserved; delete is a hover `\u00d7` on each row.\\n- No data-model / API change \u2014 same `modelbook_setups` rows, just relocated + restyled.\\n- Removed now-dead code (GradePill, riskReward, orphaned CSS). Grade still drives marker color.\\n\\nVerified: `ModelBook.test.jsx` 5/5 pass, eslint clean, `npm run build` succeeds.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-fc869bcd81f245c6\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"te\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-d9a23e3849d743a8", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383436, "scanner": "foundry_dataset", "fingerprint": "3f0af4554108a63fa746d12d9ed79c38271bd8f9037dc4302a78fccb4901e6d6", "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": "unchartedterritory5995-cyber/UCT-Dashboard#54", "human_labels": ["api_integration_gap"], "issue_number": "54", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.625, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-a5dedeaf69c48a60", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 3, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#54\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 3\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-f0b01ba4bc975de5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/54\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/54\\nTitle: Model Book: thinner price MA overlays\\nBody:\\nTries a thinner price-pane moving-average line in Model Book \u2014 drops the overlay `lineWidth` from `1` to `0.5` in the `boldCandles` path.\\n\\nOn retina/high-DPI displays (`lineWidth \u00d7 devicePixelRatio` floors) this renders a true 1px hairline (half the prior thickness); non-retina stays ~1px. Only Model Book is affected \u2014 every other chart keeps `lineWidth: 1`.\\n\\nExperiment per request (\\\"want to see how it looks\\\") \u2014 trivial to bump to 0.75 or back to 1.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-89cb2a39f2161c7e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-de158f2781192784", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383435, "scanner": "foundry_dataset", "fingerprint": "33eeb456fd046536ab2f5a2b40972a87cbd5466703970c2b2a2d66207082f2f7", "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": "unchartedterritory5995-cyber/UCT-Dashboard#52", "human_labels": ["api_integration_gap"], "issue_number": "52", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-eb677732891b39b9", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#52\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: unchartedterritory5995-cyber/UCT-Dashboard#52\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\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-0bc21fecba0229d4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/52\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/52\\nTitle: Model Book: draw setups directly on charts\\nBody:\\n## On-chart setup annotations\\n\\nThe way setups get labeled in Model Book is now **drawing directly on the chart**, not a form.\\n\\n### For admins\\nA **\u270e Edit** toggle in the stock-detail header turns on `StockChart`'s full drawing toolbar (trendlines, rays, rectangles, channels, arrows, fib, text) **plus a new \\\"Mark Setup Candle\\\" tool** \u2014 click a candle, it highlights, pick a setup from the taxonomy (+ optional note). Everything **saves automatically to the server**, scoped per model-book stock.\\n\\n### For everyone\\nAll viewers see the annotations **read-only** \u2014 drawings render, no toolbar, and the chart stays fully pan/zoom interactive (the overlay's 60ms range-poll keeps marks aligned as you scroll).\\n\\n### Why it's low-risk to `StockChart` (used app-wide)\\nAll new props are additive and default-off, so every other chart surface is byte-for-byte unchanged:\\n- `drawingsAdapter` \u2014 external store ove\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9e00d6e4544c9c48\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_so\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-69c65c5491db6517", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383434, "scanner": "foundry_dataset", "fingerprint": "4988241c313cfb786a4b315ce5f02d1b260142a59886ab6f57a500c926be22dd", "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": "unchartedterritory5995-cyber/UCT-Dashboard#49", "human_labels": ["human_feedback_general"], "issue_number": "49", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-69bc55925a7ff9b5", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#49\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: unchartedterritory5995-cyber/UCT-Dashboard#49\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-6c44bacb50b446d4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/49\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/49\\nTitle: Model Book: thinner MA lines\\nBody:\\nMA overlay width -> 1. Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e492de46050ce0b3\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-83b06bd288392259", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383433, "scanner": "foundry_dataset", "fingerprint": "8bc0a1be7dd47c9ef6adffa1b6c2be5a1137e240f50ff51713438cd8de1d8b74", "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": "unchartedterritory5995-cyber/UCT-Dashboard#47", "human_labels": ["human_feedback_general"], "issue_number": "47", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-6e225b58125a6860", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#47\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: unchartedterritory5995-cyber/UCT-Dashboard#47\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-5acbf5ee65735b43\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/47\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/47\\nTitle: Model Book: D/W toggle, thinner MAs, scale toggle move\\nBody:\\nDaily/Weekly toggle (year-locked), MA width 1.5, scale toggle to volume-pane bottom-right. Build/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e68dc591a7f0570e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-27f036129eecde20", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383432, "scanner": "foundry_dataset", "fingerprint": "e5e1f9b0e2672c6b8b867aa441145a75986f4f3f0698d9bf91f4fdf1136ae68e", "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": "unchartedterritory5995-cyber/UCT-Dashboard#46", "human_labels": ["human_feedback_general"], "issue_number": "46", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-e0dfa6610de76bc8", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#46\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: unchartedterritory5995-cyber/UCT-Dashboard#46\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-eecccb6f77040a93\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/46\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/46\\nTitle: Model Book: vol 50-MA, HVE-only gold, smoother MAs\\nBody:\\nHVE-only gold (no labels), volume 50-MA line, thicker curved price MAs. Build/lint pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-49a57dd2355e52e4\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-a04863d36a261f7c", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383431, "scanner": "foundry_dataset", "fingerprint": "dbfd6840286ab38a91f7d7efc1cc225ec2c013b7ff77e27e24a98ae659183a27", "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": "unchartedterritory5995-cyber/UCT-Dashboard#45", "human_labels": ["human_feedback_general"], "issue_number": "45", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-25e0329e3124c62e", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#45\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-097b77822196849d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/45\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/45\\nTitle: Model Book: HVE/HV1 volume highlights\\nBody:\\nGold + labelled highest-volume bars (ever / in-year), smaller volume pane. Build/lint pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-477dfd5d3bb96924\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-3cef7ca972480f36", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383430, "scanner": "foundry_dataset", "fingerprint": "d059954f9203117c649c73d76036d5b23bd952856c3425f4b4d9d2321d7003cb", "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": "unchartedterritory5995-cyber/UCT-Dashboard#44", "human_labels": ["human_feedback_general"], "issue_number": "44", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-2fa0bedd66581754", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#44\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: unchartedterritory5995-cyber/UCT-Dashboard#44\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-efe0f6ef82398f92\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/44\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/44\\nTitle: Model Book: price/volume gap + divider visibility\\nBody:\\nBottom margin above volume pane + more visible divider. Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8970d4d25428f312\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-c668ead6e4f2c7da", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383429, "scanner": "foundry_dataset", "fingerprint": "dfa0576e99b56fd0830016782cf100857eb7bc4793575863b7a69a954d31ba9c", "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": "unchartedterritory5995-cyber/UCT-Dashboard#43", "human_labels": ["human_feedback_general"], "issue_number": "43", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-85c3a4c999bad3ab", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#43\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: unchartedterritory5995-cyber/UCT-Dashboard#43\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-aba4edb41cb3f244\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/43\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/43\\nTitle: Model Book: volume/divider polish\\nBody:\\nSubtle divider, close price/volume gap, denser volume. Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e14bf356d7ec6f65\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-3df07d3b9a2e0dc5", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383428, "scanner": "foundry_dataset", "fingerprint": "557f2cfebebd6c7a83ed71306b457b8d15260f6774a8e813fbb5261b697182f0", "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": "unchartedterritory5995-cyber/UCT-Dashboard#42", "human_labels": ["human_feedback_general"], "issue_number": "42", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-536f41dbc87fb358", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#42\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: unchartedterritory5995-cyber/UCT-Dashboard#42\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-4bce34ec4ceafd56\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/42\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/42\\nTitle: Model Book: smooth curved MA lines\\nBody:\\nLineType.Curved on MA overlays for Model Book only. Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-778b5a839ac31f59\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-4427cedd4c45ef42", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383427, "scanner": "foundry_dataset", "fingerprint": "207ebba4d073bc51c910704292c7ed6ba6cf0039417ac4622b1543897859278f", "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": "unchartedterritory5995-cyber/UCT-Dashboard#41", "human_labels": ["human_feedback_general"], "issue_number": "41", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-ad561d66957599a9", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#41\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: unchartedterritory5995-cyber/UCT-Dashboard#41\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-181fa53dec489d3a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/41\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/41\\nTitle: Model Book: separate volume pane + matched dimmer colors\\nBody:\\nSeparate draggable volume pane; dim volume to match candle weight; remove dashed volume price line. Build/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-97deb3458fa78c69\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-bf3d91e70f592b14", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383426, "scanner": "foundry_dataset", "fingerprint": "81c0f8cc75acbc621c1397c4c280b483d22d7deb1799e6799b2e3ca8747d864d", "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": "unchartedterritory5995-cyber/UCT-Dashboard#40", "human_labels": ["human_feedback_general"], "issue_number": "40", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-3933bd0850bd9ec4", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#40\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: unchartedterritory5995-cyber/UCT-Dashboard#40\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-1f0717dce2b1f1fc\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/40\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/40\\nTitle: Model Book: bolder candles + volume pane\\nBody:\\nBorderless brighter candles + matching green/red volume pane (Model Book only). Build/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8204c48e5357d0c9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-f1d97f847a814313", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383425, "scanner": "foundry_dataset", "fingerprint": "9e91a5bd890b5f6ea38344453839697ad1b320e9586a98ffcf7ffb1039b8359b", "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": "unchartedterritory5995-cyber/UCT-Dashboard#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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-17149076a77e2551", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#39\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-9bf6fc13f1b5a8a0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/39\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/39\\nTitle: Model Book: bold candles + no last-price tag\\nBody:\\nboldCandles + hideLastValue props (Model Book only). Build passes; ModelBook lint clean.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1be6d267ad19de51\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-860b489e5733d861", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383424, "scanner": "foundry_dataset", "fingerprint": "208457a25c551de4e6e51e7daf412ed3c2a249eb805de721c253d452598850d1", "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": "unchartedterritory5995-cyber/UCT-Dashboard#37", "human_labels": ["human_feedback_general"], "issue_number": "37", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-af63e11033fb0792", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#37\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: unchartedterritory5995-cyber/UCT-Dashboard#37\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-4bdbaad0ea608858\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/37\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/37\\nTitle: Model Book: quarterly earnings table\\nBody:\\nQ1-Q4 EPS actual/estimate/surprise per year (Finnhub), persisted + warmed, shown in the right info panel. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b693714ca5c5646d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-2b8e21badcc95935", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383423, "scanner": "foundry_dataset", "fingerprint": "5c58a45eacd081d9b38df0a60da119cc252074ede59d7ac43c541cebf6761176", "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": "unchartedterritory5995-cyber/UCT-Dashboard#36", "human_labels": ["human_feedback_general"], "issue_number": "36", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-5440636ca50d8b49", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#36\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: unchartedterritory5995-cyber/UCT-Dashboard#36\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-c364ebe5a5ac21d3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/36\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/36\\nTitle: Model Book: fix AI-description retry loop\\nBody:\\nStamp desc_at on every attempt; cap regeneration to once/day; stop frontend poll once attempted; muted '\u2014' stats. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3ed084457fb15ca4\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-2c1807bf100e4dc9", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383422, "scanner": "foundry_dataset", "fingerprint": "b3346c734f4d25cebc304fa6a9f72a9a83dff58d159557d46bc5d06fe80b35ed", "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": "unchartedterritory5995-cyber/UCT-Dashboard#35", "human_labels": ["human_feedback_general"], "issue_number": "35", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-8477f0dee87264b4", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#35\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: unchartedterritory5995-cyber/UCT-Dashboard#35\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-0a70779a2db854f2\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/35\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/35\\nTitle: Model Book: top divider on info panel\\nBody:\\nAdd border-top to the right info panel. CSS-only.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-875af230b8e7bcb6\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-36680451ea4affc9", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383421, "scanner": "foundry_dataset", "fingerprint": "7705654c3cb03d4a7a5635bd420053d94571659e0d69f34b2bb1241dd877f42c", "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": "unchartedterritory5995-cyber/UCT-Dashboard#34", "human_labels": ["human_feedback_general"], "issue_number": "34", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-26a40388b2473c57", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#34\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: unchartedterritory5995-cyber/UCT-Dashboard#34\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-cf6f4e84940ce0bf\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/34\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/34\\nTitle: Model Book: narrower list (no company names)\\nBody:\\nRemove company names from list rows; reset default panel width to 200px. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5312a756d3d8c3d9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-8fa93bd5c2026d6e", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383420, "scanner": "foundry_dataset", "fingerprint": "082f2c3775e6c756270c5325ad3132abd42ede2da78ebe31a4742d4586b64d9d", "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": "unchartedterritory5995-cyber/UCT-Dashboard#33", "human_labels": ["human_feedback_general"], "issue_number": "33", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f10f42141dc10e01", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#33\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: unchartedterritory5995-cyber/UCT-Dashboard#33\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-2d337ed3983d73bd\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/33\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/33\\nTitle: Model Book: remove card edit/delete buttons\\nBody:\\nDeclutter gallery cards by removing the per-card admin buttons. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ab22893d48885786\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-7b2cfcd9a1d27368", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383419, "scanner": "foundry_dataset", "fingerprint": "b31055e629b166e9ad757ef20faad671699cdf33dbba6caf06b8ed3f51166d91", "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": "unchartedterritory5995-cyber/UCT-Dashboard#32", "human_labels": ["human_feedback_general"], "issue_number": "32", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-69cc273012c72932", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#32\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: unchartedterritory5995-cyber/UCT-Dashboard#32\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-67851399ad7e952d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/32\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/32\\nTitle: Model Book: info panel to right-side vertical column\\nBody:\\nChart left (full height) + vertical info panel right. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-cc183cc59d161c06\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-c83b36ef9639adc3", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383418, "scanner": "foundry_dataset", "fingerprint": "1574e0c1e7903834494a14074347a52cc3b27728afdbe1db353ad44e5964b404", "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": "unchartedterritory5995-cyber/UCT-Dashboard#31", "human_labels": ["human_feedback_general"], "issue_number": "31", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-13c9ff711b7f9f4e", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#31\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: unchartedterritory5995-cyber/UCT-Dashboard#31\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-4de21c12af8354b1\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/31\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/31\\nTitle: Model Book: info panel default-open + bigger arrow\\nBody:\\nDefault the info panel open; enlarge the toggle chevron. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-6daf87d8d5d4f053\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-bb7af79c77d6e982", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383417, "scanner": "foundry_dataset", "fingerprint": "92876457854f171e634bc0f5c917aee7d105fdf685d23417b688f18f6010f283", "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": "unchartedterritory5995-cyber/UCT-Dashboard#30", "human_labels": ["human_feedback_general"], "issue_number": "30", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f393427eca2f2e2f", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#30\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: unchartedterritory5995-cyber/UCT-Dashboard#30\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-270e506aecba3d59\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/30\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/30\\nTitle: Model Book: fit info panel + full chart on one screen\\nBody:\\nYear tabs merged into the title row; chart flexes to fill remaining space so info + full chart stay visible without scrolling. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-643c52a50fe1e5cd\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-3fa80c4f48cd89af", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383416, "scanner": "foundry_dataset", "fingerprint": "702bfaebfe628a335464097401e3bd6a284a285e4fa60739e3fbaad4ae1f1ee6", "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": "unchartedterritory5995-cyber/UCT-Dashboard#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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-82f17aec2937b5db", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#28\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-b3e86473dd2c3609\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/28\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/28\\nTitle: Model Book: backfill avg daily volume\\nBody:\\nRecompute/warm when avg_vol missing (not just oc_pct); poll detail until it lands. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4a41f83822b227a7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-73febb3dda5c528b", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383415, "scanner": "foundry_dataset", "fingerprint": "cee05a8a2af7d7fff44fbff437281af974a472979c2b3ff346299bfbef1b26c3", "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": "unchartedterritory5995-cyber/UCT-Dashboard#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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-02e6567e10522395", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#27\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-2ae198ed356067e7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/27\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/27\\nTitle: Model Book: expandable stock info panel\\nBody:\\nChevron next to company name opens a panel with year gain / range / avg daily volume + an admin-editable narrative. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-0affa8ed1945254c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-b53e66fb1abfedcc", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383414, "scanner": "foundry_dataset", "fingerprint": "0ab6f2733205a46dec9dabb6427af920223eb2abe782f47773af34b5f7f9ad1d", "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": "unchartedterritory5995-cyber/UCT-Dashboard#26", "human_labels": ["human_feedback_general"], "issue_number": "26", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-76969a9fd174cfcb", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#26\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: unchartedterritory5995-cyber/UCT-Dashboard#26\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-8d44ff2cd99cbc84\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/26\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/26\\nTitle: Model Book: arrow keys switch years (\u2190/\u2192)\\nBody:\\n\u2190/\u2192 switch year tabs; \u2191/\u2193 still navigate stocks. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8563637d70ff5f18\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-a1197f1dd93e152b", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383413, "scanner": "foundry_dataset", "fingerprint": "a8ed2d4d5979200877f30038b325b9099a147ef290c75c0334ef91da9e675452", "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": "unchartedterritory5995-cyber/UCT-Dashboard#25", "human_labels": ["human_feedback_general"], "issue_number": "25", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-fd50070d1f007d7c", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#25\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: unchartedterritory5995-cyber/UCT-Dashboard#25\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-8ca1a392af789af7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/25\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/25\\nTitle: Model Book: round gain % (no decimals)\\nBody:\\nDisplay whole-number gain percentages. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-460277aa20c29073\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-05dad847eb3b857a", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383412, "scanner": "foundry_dataset", "fingerprint": "afa7d96a57800f3b0c3413270c21cc4d111f9dca5733d49c17665e6fc1fd32f7", "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": "unchartedterritory5995-cyber/UCT-Dashboard#24", "human_labels": ["human_feedback_general"], "issue_number": "24", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-49ab5a48e1d510c7", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#24\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: unchartedterritory5995-cyber/UCT-Dashboard#24\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-f5ed7228db08fee1\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/24\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/24\\nTitle: Model Book: admin edit/delete on stock cards\\nBody:\\nAdmin-only edit-company + delete buttons on each card. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-44d8ebf2db4c06f1\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-99e857f367ea7bc8", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383411, "scanner": "foundry_dataset", "fingerprint": "c768f5bdadbd48180c016d0f68abf4680dcd356b0f50eb041b19a7d39e10edfa", "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": "unchartedterritory5995-cyber/UCT-Dashboard#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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-69ce5bc7f4ceb9ea", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#22\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-9faccc0faccfd976\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/22\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/22\\nTitle: Model Book: default to log price scale\\nBody:\\nforceLogScale prop on StockChart; Model Book defaults to logarithmic. Lint/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ea0c6983e43d081d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-4b926653f8af054f", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383410, "scanner": "foundry_dataset", "fingerprint": "019b1e7bddb01ce14f09a53f038cb3be2f418bce89dfd5cb4a53e92f653fd838", "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": "unchartedterritory5995-cyber/UCT-Dashboard#21", "human_labels": ["human_feedback_general"], "issue_number": "21", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-2d55dfe9b407e6da", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#21\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: unchartedterritory5995-cyber/UCT-Dashboard#21\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-b98f2f4d7b574b83\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/21\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/21\\nTitle: Model Book: rank badge follows sort order\\nBody:\\n#N reflects the displayed sorted position (top gainer = #1). Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-2f2c9549eb14adf1\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-3c80f2dca8622d76", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383409, "scanner": "foundry_dataset", "fingerprint": "8413ebc2fdd19cc795a07c32ab0e2b3dd22485f0404554b2ef5a07bfb9fff603", "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": "unchartedterritory5995-cyber/UCT-Dashboard#20", "human_labels": ["human_feedback_general"], "issue_number": "20", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-ec9099a55d32c321", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#20\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: unchartedterritory5995-cyber/UCT-Dashboard#20\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-5d71f89a32a41340\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/20\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/20\\nTitle: Model Book: header company size + remove year label\\nBody:\\nCompany name matches ticker font size; remove year subline. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-060c89be5aa8716d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-34c156fe8728dad6", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383408, "scanner": "foundry_dataset", "fingerprint": "46be284ef66ef46e0a421e4324d6f528c04e345ea3a84e6d6e33dff787b495ae", "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": "unchartedterritory5995-cyber/UCT-Dashboard#19", "human_labels": ["human_feedback_general"], "issue_number": "19", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-825e4841ded96662", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#19\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: unchartedterritory5995-cyber/UCT-Dashboard#19\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-173be8e981a01245\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/19\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/19\\nTitle: Model Book: company name in chart header\\nBody:\\nHeader shows TICKER (Company), year on subline. Lint/tests pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-816b2b956631e4ad\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-5554e65b5df3e52d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383407, "scanner": "foundry_dataset", "fingerprint": "84eafebbaf73fa380ba70bbcd9708cb20258debd16c0635fe23acc4d8ea327af", "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": "unchartedterritory5995-cyber/UCT-Dashboard#17", "human_labels": ["human_feedback_general"], "issue_number": "17", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-ae5e936780a56585", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#17\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: unchartedterritory5995-cyber/UCT-Dashboard#17\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-3b411292ee7fde35\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/17\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/17\\nTitle: Model Book: fast year-gain stats (persist + parallel + prewarm)\\nBody:\\nPersist closed-year stats on the stock row, compute missing ones in parallel, and pre-warm at startup. Eliminates the ~30s cold load.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3cc54eb8c0bd2c0e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-968bd4cff69d9ce5", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383406, "scanner": "foundry_dataset", "fingerprint": "88529a977e9408ee1a0a40820f319b0695f638aba882d62c743052df322b0b36", "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": "unchartedterritory5995-cyber/UCT-Dashboard#16", "human_labels": ["human_feedback_general"], "issue_number": "16", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-8486c40257a9652e", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#16\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: unchartedterritory5995-cyber/UCT-Dashboard#16\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-12e4632c2de68f87\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/16\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/16\\nTitle: Model Book: auto-select first stock on year change\\nBody:\\nDerive activeId (falls back to sorted list's first stock) so switching years / initial load shows a chart immediately. Lint clean; tests 5/5.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b9d27c2eec0194a6\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-8304b1bf87dc7f9c", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383405, "scanner": "foundry_dataset", "fingerprint": "1c72c02ab79a9f36b868611995957d7e92166532add64ac03e602c88949676dd", "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": "unchartedterritory5995-cyber/UCT-Dashboard#15", "human_labels": ["human_feedback_general"], "issue_number": "15", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-bf3b6826797529ca", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#15\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: unchartedterritory5995-cyber/UCT-Dashboard#15\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-cfe634b89b7cd4c5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/15\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/15\\nTitle: Model Book: hide current-price line on year charts\\nBody:\\npriceLineVisible: false for exactDateRange charts (current price is irrelevant for a past year). Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-96d5986d00191eb3\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-b6efdc5fde82ba35", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383404, "scanner": "foundry_dataset", "fingerprint": "ffe1b947385f416f72dbb3b315d422edd7751334d7bd8c6dc34bbe882c19032b", "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": "unchartedterritory5995-cyber/UCT-Dashboard#14", "human_labels": ["human_feedback_general"], "issue_number": "14", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c058fab5e8388aab", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#14\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: unchartedterritory5995-cyber/UCT-Dashboard#14\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-3da28354f7fff348\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/14\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/14\\nTitle: Fix Model Book chart snapping back to current date (effect order)\\nBody:\\nMove the exact-range re-pin to run AFTER updateChart()/setData so logical indices match the series. Fixes the 'shows year for 1s then snaps to now' bug. Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-99e6b6201e3c6e0f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-b8fde3b84f17d22a", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 383403, "scanner": "foundry_dataset", "fingerprint": "dab4fc73633ade5696009f0ad624f3c60d7b34d834efb354ad2e8037225b179b", "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": "unchartedterritory5995-cyber/UCT-Dashboard#13", "human_labels": ["human_feedback_general"], "issue_number": "13", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-a429bf65ac867037", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#13\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: unchartedterritory5995-cyber/UCT-Dashboard#13\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-25d24589b2179c13\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/13\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/13\\nTitle: Fix Model Book charts snapping to current date (rightBarStaysOnScroll)\\nBody:\\nDisable rightBarStaysOnScroll + rightOffset for exactDateRange charts so the year window holds instead of re-pinning the latest bar. Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d570c1b62bb9c0be\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-assumption_checks-2b2c977fc5f61258", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420553, "scanner": "foundry_dataset", "fingerprint": "76e0f2ff10ca2caeee326ff827e8798ff3186e45e84614d0ad37205d6221aedf", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#78", "issue_number": "78", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d50f91b6f2c12961", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#78\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 78\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-3aafd97e67cfdfdb", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420552, "scanner": "foundry_dataset", "fingerprint": "f20c9eee1ee84d6c94d3ca614f899b63f964490b6cc09356505a50e77617fb8d", "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, "ui_or_frontend": 2, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "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": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#77", "issue_number": "77", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-17ce01de098655bb", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 8}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#77\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 77\nGraph consistency label: weak_supervision_needs_review\nNodes: 18\nEdges: 25\nNode types: {'commit': 4, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 4, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-af6b6fd922665058", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420551, "scanner": "foundry_dataset", "fingerprint": "48dd5b572fcee247b4ba0a2d928519a26072431e9ed52a342068deeffb7e6ba5", "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, "ui_or_frontend": 3, "dependency_or_build": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 29, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#74", "issue_number": "74", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-fd61b7b693c06d57", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 12}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#74\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#74\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#74\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 74\nGraph consistency label: supported_by_verification_signal\nNodes: 20\nEdges: 29\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'thread_touches_file': 3, 'comment_chain_touches_file': 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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'ui_or_frontend': 3, '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, 'dependency_or_build': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-d805493b01591831", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420550, "scanner": "foundry_dataset", "fingerprint": "07ffd93c46b5cc12132ffefda71e8c4657ce35609b1c158f5a70a62d67beab36", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 2, "test_ci_gap": 1, "ui_or_frontend": 2, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#72", "issue_number": "72", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-010c4ccb2c98630c", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#72\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#72\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#72\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 72\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-2e928df61ffb59fe", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420549, "scanner": "foundry_dataset", "fingerprint": "4654c281ba032bb6f5bf5f53d9285ca6500d4ab4bc56cf7189ab6e8286682969", "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, "ui_or_frontend": 4, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "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": 32, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 21, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 4, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#71", "issue_number": "71", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-c45f7378f680dc84", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 16}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#71\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#71\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#71\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 71\nGraph consistency label: weak_supervision_needs_review\nNodes: 21\nEdges: 32\nNode types: {'commit': 5, 'pr_file': 4, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'issue_chain_touches_file': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ui_or_frontend': 4, '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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-dfc1c030f51f6129", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420548, "scanner": "foundry_dataset", "fingerprint": "fbac7c757b1264527fcf9c91bb760cddde4aec8693217ac9609f7b7fae3198b5", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 5, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#70", "issue_number": "70", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-4594f64bf3ebc5f4", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 20}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#70\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#70\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#70\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 70\nGraph consistency label: supported_by_verification_signal\nNodes: 22\nEdges: 35\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'issue_chain_touches_file': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ui_or_frontend': 5, 'verification_or_tests': 4, '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, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-f4c5c7a81ce9171e", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420547, "scanner": "foundry_dataset", "fingerprint": "0762bc4da7f57ba718d5c99ae3c2d0daea40ea96e2e439166d838d24b9e9307f", "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, "api_or_backend": 2, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "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": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#69", "issue_number": "69", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e1207f4a9fad869a", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 8}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#69\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#69\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#69\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 69\nGraph consistency label: weak_supervision_needs_review\nNodes: 16\nEdges: 25\nNode types: {'link_quality': 4, 'pr_file': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-f7abf968c49183b1", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420546, "scanner": "foundry_dataset", "fingerprint": "40c596bc82fc490d21a051779b4f101a51ae28591eaa3132557893e62b6a1802", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 2, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#68", "issue_number": "68", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-9cebeba44e9e4025", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#68\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#68\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#68\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 68\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-a949606cda91d2b6", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420545, "scanner": "foundry_dataset", "fingerprint": "e562f0cff2ab594fb5032b64b197647335eb7b8b3c887ad635d534d913b38975", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#65", "issue_number": "65", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-8a918101c32b42fa", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#65\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#65\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#65\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 65\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-e9289c29e5377aaf", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420544, "scanner": "foundry_dataset", "fingerprint": "87ddaa3b468de13f6be05c52fd82aee36b9258b380de5da5e1a663d508d4b515", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "ui_or_frontend": 2, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#64", "issue_number": "64", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-6ecdbf15e51106e7", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#64\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#64\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 64\nGraph consistency label: supported_by_verification_signal\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, '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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-e1d6827dafb5d7e9", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420543, "scanner": "foundry_dataset", "fingerprint": "af62f49f370bbedd60d2943013cced83b59a878cc44fe0fc6ad43099af404835", "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, "api_or_backend": 2, "ui_or_frontend": 3, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "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": 38, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#63", "issue_number": "63", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-8153e9cff1a9c7fa", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 8, "ui_or_frontend": 12}}, "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#63\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#63\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#63\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 63\nGraph consistency label: weak_supervision_needs_review\nNodes: 23\nEdges: 38\nNode types: {'pr_file': 6, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 5, 'ui_or_frontend': 3, 'ambiguous_needs_more_evidence': 3, 'api_or_backend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-7db59ba2cf5df502", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420542, "scanner": "foundry_dataset", "fingerprint": "f07a3b280168bb5b24d947c8e498c5d137ffb6ab1d6431fdffb4a48628fd5a06", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#4", "issue_number": "4", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-a09f0f14a3d09e13", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-fcfd7cc31043da19", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 420541, "scanner": "foundry_dataset", "fingerprint": "1aed5644fa6e815d5c7d796b941c344a5d50c1572a3a618df5567f09b6342b9b", "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": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#1", "issue_number": "1", "quality_tiers": {"high_confidence": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-dd723ab76017b37f", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#1\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#1\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 4, '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, 'bug_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-2b8198c5ac9fada4", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 411368, "scanner": "foundry_dataset", "fingerprint": "d8be4c5c161291c850b5743526b4e27505adceda9f971a0605519632442732f8", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#53", "issue_number": "53", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-5882958600e298b1", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#53\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 53\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-16d7c446993c4e61", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 411367, "scanner": "foundry_dataset", "fingerprint": "054592a810054be18b90eaf508f1234baa7f08f0d980118cb179cf2fc1ef30ce", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#51", "issue_number": "51", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-19d1997d9212aeb8", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#51\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 51\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-af0a6f0b07bd0e5b", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "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: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 411366, "scanner": "foundry_dataset", "fingerprint": "dac0082f7bb7a47f1c54f7ce5373734cf655ccb0c9947e57120484641f16c359", "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, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "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": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "unchartedterritory5995-cyber/UCT-Dashboard#38", "issue_number": "38", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-7cf5452f227d59f8", "graph_gold_label": "assumption_check", "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: assumption_check\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 38\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'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, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-b04c1befec1e17bc", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391856, "scanner": "foundry_dataset", "fingerprint": "47f8be538945edbd728f3d053be312b06bcfb4a86f037a3a210554c62eedec78", "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": "unchartedterritory5995-cyber/UCT-Dashboard#9", "human_labels": ["agent_instruction_gap"], "issue_number": "9", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f95f733522818ca1", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#9\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: unchartedterritory5995-cyber/UCT-Dashboard#9\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9f64b98a52b6f90b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/9\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/9\\nTitle: Model Book: fit chart within viewport\\nBody:\\nTrim chart height (calc(100vh - 290px), min 520px) so the date axis + scale toggle aren't cut off at the bottom. CSS-only.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4a65410ea4f082a0\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-fac23b535f24260d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391855, "scanner": "foundry_dataset", "fingerprint": "c12fdc9b5f001698a6b792a285030c9f359c1377963ce91a4be57f9ebc68bdcb", "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": "unchartedterritory5995-cyber/UCT-Dashboard#8", "human_labels": ["agent_instruction_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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c7b7ec57808dc3e7", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#8\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c1bcc980e223a01f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/8\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/8\\nTitle: Model Book: taller detail chart\\nBody:\\nChart height scales with viewport (min 700px) instead of fixed 460px. CSS-only.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3db669e1e18cfbd4\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-8e3423b19e12155c", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391854, "scanner": "foundry_dataset", "fingerprint": "9f3081ca31ea6af627eba3e78d4c99ab57c80baa2615eca0c5f2abe170251057", "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": "unchartedterritory5995-cyber/UCT-Dashboard#79", "human_labels": ["api_integration_gap", "api_or_backend"], "issue_number": "79", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c2aecc6a66a110db", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#79\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: unchartedterritory5995-cyber/UCT-Dashboard#79\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: 1\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-01d5b36839c2794e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/79\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/79\\nTitle: observability: expose thread_count + rss_mb on /api/health\\nBody:\\nDiagnoses the 2026-06-09 web-pod 'can't start new thread' outage that silently broke catalyst refresh (the refresh endpoint spawns a thread; on a thread-exhausted pod .start() throws and the refresh never runs).\\r\\n\\r\\nClimbing thread_count => thread leak; flat threads + climbing rss_mb => memory pressure (stack alloc failing). Backend-only, additive, no new deps (reads /proc/self/status), guarded for non-Linux.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-e4ae71262d905790\",\n    \"filename\": \"api/main.py\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 20,\n    \"deletions\": 0,\n    \"changes\": 20,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/b981284937d5107911c4b0663c5e6183af5daa50/api%2Fmain.py\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-74b30126f8f60688\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-ed6f81de090463f2", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391853, "scanner": "foundry_dataset", "fingerprint": "2396623c6171cc18a19c344bc3a169e80342fb38759b278bb5258c68babfa446", "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": "unchartedterritory5995-cyber/UCT-Dashboard#76", "human_labels": ["agent_instruction_gap", "ui_or_frontend"], "issue_number": "76", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-612e1e37a80b8ff1", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#76\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: unchartedterritory5995-cyber/UCT-Dashboard#76\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: 1\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-73da6998822bed0e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/76\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/76\\nTitle: Model Book: horizontal ray price label above the anchor\\nBody:\\nMove the horizontal-ray price label to just **above the start** of the ray (over the candle it marks) instead of to its left.\\n\\nVerified: Overlay lint unchanged (10); `npm run build` passes.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-e059e3635fd86b7f\",\n    \"filename\": \"app/src/components/chart/ChartDrawingOverlay.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 4,\n    \"deletions\": 4,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/78e7870c67794b8323ce7eaf0038c6bec6a5d442/app%2Fsrc%2Fcomponents%2Fchart%2FChartDrawingOverlay.jsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-f5f7a4803741466f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurre\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-3b21729c54eb668a", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391852, "scanner": "foundry_dataset", "fingerprint": "15206689c8727e0a79b1fd94dcfaa4fe66b819625db1db874ebcc647fac8f114", "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": "unchartedterritory5995-cyber/UCT-Dashboard#7", "human_labels": ["agent_instruction_gap"], "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-397c08b53bd3d61e", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#7\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-054a4d656c0c0f03\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/7\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/7\\nTitle: Model Book: sortable gallery (Stock / Year Gain)\\nBody:\\nSticky clickable column headers to sort the gallery by curated rank or yearly gain (asc/desc, top-gainers-first). Lint clean; tests 5/5.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-f44c1729d4178b17\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-dd1dac69a1d5258b", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391851, "scanner": "foundry_dataset", "fingerprint": "dbf625425c8295e7559ba9bcde0cac7cf3c11dfeccb5da062375fb7e9e9bba5a", "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": "unchartedterritory5995-cyber/UCT-Dashboard#61", "human_labels": ["agent_instruction_gap", "ui_or_frontend"], "issue_number": "61", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b292aeb421412a5e", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#61\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: unchartedterritory5995-cyber/UCT-Dashboard#61\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ae0544d378c04d4b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/61\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/61\\nTitle: Model Book: more top headroom + ultra-smooth focus zoom\\nBody:\\n- **Candle tops lower.** Price-scale top margin `0.06` \u2192 `0.14` so the highest candles sit ~one grid box lower instead of crammed against the top.\\n- **Ultra-smooth zoom.** The focus animation now interpolates the window *width* geometrically (constant magnification ratio per frame) rather than linearly, uses easeInOutSine, and runs 900 \u2192 1150ms. Linear width interpolation was the source of the lurch (fast at the start, crawling at the end); geometric glides.\\n\\nVerified: ModelBook eslint clean, `npm run build` succeeds.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-f0c26716eb62a919\",\n    \"filename\": \"app/src/components/StockChart.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 15,\n    \"deletions\": 4,\n    \"changes\": 19,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/a4cee9994aa4bf79b0c28928c55f81d6ac3fb887/app%2Fsrc%2Fcomponents%2FStockChart.jsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-d30814fae3653210\",\n    \"filename\": \"app/src/pages/ModelBook.jsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/blob/a4cee9994aa4bf79b0c28928c55f81d6ac3fb887/app%2Fsrc%2Fpages%2FModelBook.jsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7c3359b064a233c3\"]\nSource graph evidence:\nSource evidence r\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-9b00e855d06644ab", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391850, "scanner": "foundry_dataset", "fingerprint": "162be993ee42c2bc06e14939f1faa02a0804debc239182c081649c8079e0dc9a", "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": "unchartedterritory5995-cyber/UCT-Dashboard#6", "human_labels": ["agent_instruction_gap"], "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-e7cbff57bfeb8b05", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#6\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-865ec911e5af99c5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/6\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/6\\nTitle: Model Book: single yearly gain + resizable gallery\\nBody:\\nDrops the L->H column (keeps the green yearly open->close gain) and makes the gallery sidebar drag-resizable (persisted) so company names aren't cut off. Lint clean; tests 5/5.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-262829958140ac56\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-487bfcf076afba07", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391849, "scanner": "foundry_dataset", "fingerprint": "cfa21e52d51fd5353c861cea9c38ad82ef8db8b0e36bf553a0d53e50d8bd99f2", "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": "unchartedterritory5995-cyber/UCT-Dashboard#57", "human_labels": ["agent_instruction_gap"], "issue_number": "57", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "self_attested_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-32524b9729bfbe9f", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#57\nOutcome: self_attested_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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#57\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread label: thread_has_human_issue_and_fix_context\nOutcome: self_attested_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-51758fd518d3df37\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/57\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/57\\nTitle: Model Book: full date on setup rows (August 22nd)\\nBody:\\nSetup rows in the right panel now show the full date \u2014 month name + ordinal day (e.g. **August 22nd**) \u2014 instead of just the month abbreviation.\\n\\nVerified: eslint clean, ModelBook tests 5/5, `npm run build` succeeds.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5b8f74a0847fe9ee\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-bf92134a09a09dbf", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391848, "scanner": "foundry_dataset", "fingerprint": "ef808b5dfea95e583ea8fc3a15d8b826ca9ffc0f99480a1368064ef5d962330b", "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": "unchartedterritory5995-cyber/UCT-Dashboard#53", "human_labels": ["data_schema_persistence"], "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-00889cec93de301f", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#53\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-116d386ea8eea68c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/53\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/53\\nTitle: Revert Model Book on-chart annotations\\nBody:\\nReverts #52 (draw setups on charts). Per request \u2014 shelving the chart-editing/drawing feature for now.\\n\\nCleanly reverts all 9 files: restores the form-based \\\"Labeled Setups\\\" section + setup markers/priceLines, and removes the StockChart drawing props (`drawingsAdapter`/`drawingsReadOnly`/`markOptions`), the `candleMark` overlay tool, and the `PUT /stock/{id}/drawings` endpoint.\\n\\nNote: the `drawings_json` column already added to the live `modelbook.db` via the ALTER loop is left in place (harmless \u2014 unused; SQLite column drops aren't worth the risk).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7e71562c70c42070\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-8db55070e8417926", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391847, "scanner": "foundry_dataset", "fingerprint": "cfa9d1bd2674fb95837fdcb6382b9b707d6b897b542dbf966fbf91881db724fa", "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": "unchartedterritory5995-cyber/UCT-Dashboard#51", "human_labels": ["data_schema_persistence"], "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-7da588147d46556d", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#51\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-439a16a97d6db787\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/51\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/51\\nTitle: Revert Model Book Catalyst Mode\\nBody:\\nReverts #50 (Catalyst Mode). Per request \u2014 shelving the feature for now to focus on other fixes; may revisit a leader-line version in the future.\\n\\nCleanly reverts all 4 files (router, store, ModelBook.jsx, ModelBook.module.css). No Catalyst Mode code remains.\\n\\nNote: the `catalysts_json` / `catalysts_at` columns already added to the live `modelbook.db` via the ALTER forward-compat loop are left in place (harmless \u2014 `SELECT *` returns them, reverted code ignores them; SQLite column drops aren't worth the risk).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5f7b0d8463d08e50\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-1b85f1c70a72c78f", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391846, "scanner": "foundry_dataset", "fingerprint": "15f96046db7b6c83c65600b9d3a801e3baee31b7eb0a241aaa5925c6eaea4d91", "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": "unchartedterritory5995-cyber/UCT-Dashboard#5", "human_labels": ["api_integration_gap"], "issue_number": "5", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-57163affcc71df4e", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#5\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: unchartedterritory5995-cyber/UCT-Dashboard#5\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-a28969b29224be99\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/5\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/5\\nTitle: Model Book: year stats columns (open->close %, low->high %)\\nBody:\\nDrops the setups badge; adds two computed columns per stock (year open->close % and low->high %) via a new cached /api/modelbook/year-stats endpoint. Lint clean; tests 5/5.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3faab46b4099d81c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-ac2b27c40a35e4c9", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391845, "scanner": "foundry_dataset", "fingerprint": "41d659c05b11845628b650e7d7a5c1ab2913a97bf1a743891a47b4df5a376f96", "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": "unchartedterritory5995-cyber/UCT-Dashboard#48", "human_labels": ["agent_instruction_gap"], "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-04b36b5b65969f89", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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: unchartedterritory5995-cyber/UCT-Dashboard#48\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f449f5a92e87ba3b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/48\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/48\\nTitle: Model Book: less repetitive narratives + scale toggle move\\nBody:\\nReworked narrative prompt (no repetitive openers/buzzwords) + regen; scale toggle to bottom axis. Build passes.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-2128e3f27358e9ac\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-14e630cc7ea86653", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391844, "scanner": "foundry_dataset", "fingerprint": "67b782dafa452182f73b371d6076e2cc972cb315c104697f53619a6f54f00bd3", "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": "unchartedterritory5995-cyber/UCT-Dashboard#4", "human_labels": ["test_ci_gap"], "issue_number": "4", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-67001da6c09d8c0d", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#4\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: unchartedterritory5995-cyber/UCT-Dashboard#4\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-8e7f00f3f4038708\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/4\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/4\\nTitle: Model Book: seed 2024/2025 stock lists at startup\\nBody:\\nSeeds the initial 2024 + 2025 curated lists in code at startup (flag-gated, runs once ever, deletions persist). Unblocks the empty library without requiring admin rights. Adds a pytest for seed + flag-gating.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b45b13644976eea2\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-221e2efba664f053", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391843, "scanner": "foundry_dataset", "fingerprint": "6fbf2e9f0ec1af07f85ea22f75acfb0f9ce6663dcfa296fd027ff35aac2c74ae", "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": "unchartedterritory5995-cyber/UCT-Dashboard#38", "human_labels": ["data_schema_persistence"], "issue_number": "38", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-623ec9cca78b7167", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#38\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: unchartedterritory5995-cyber/UCT-Dashboard#38\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-417596af2d37fcab\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/38\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/38\\nTitle: Model Book: revert earnings + avg DOLLAR volume\\nBody:\\nReverts the quarterly-earnings feature (PR #37) and changes Avg Daily Vol to average daily DOLLAR volume (shares x close), with a one-time migration to recompute existing values. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-615d9e332ef14dec\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-eb666468d138f0af", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391842, "scanner": "foundry_dataset", "fingerprint": "17e184b3453697b3f1e21974acc0f03807901d8f91e7e34581b04d1b75b9a456", "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": "unchartedterritory5995-cyber/UCT-Dashboard#3", "human_labels": ["agent_instruction_gap"], "issue_number": "3", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-8feb34d4985ae0ab", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#3\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: unchartedterritory5995-cyber/UCT-Dashboard#3\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6976d800064e22ed\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/3\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/3\\nTitle: Model Book: \\\"TICKER (Company)\\\" card format\\nBody:\\nRenders gallery cards as `TICKER (Company)` inline. Frontend-only; lint clean; tests 5/5.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-6530e96c928b1a35\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-917578c3f6017b54", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391841, "scanner": "foundry_dataset", "fingerprint": "790f564137292a90839ed6eb0c3b0370b687fdedfc93b875bbe62237813b211a", "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": "unchartedterritory5995-cyber/UCT-Dashboard#29", "human_labels": ["agent_instruction_gap"], "issue_number": "29", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-25aa6d5502f0f56d", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#29\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: unchartedterritory5995-cyber/UCT-Dashboard#29\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-697d93b499fddcec\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/29\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/29\\nTitle: Model Book: AI company/run descriptions + green stats\\nBody:\\nAuto-generate a one-sentence company description + a 'why it ran that year' narrative via Claude (persisted, admin-editable); render gain/range stats in green. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-eb9bae61ff46ef61\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-2c4fc84aa7b010da", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391840, "scanner": "foundry_dataset", "fingerprint": "4ddb9651edde0ab56f4de4cd32671d66e20f8dda3c6af646e0243c74cfbf8087", "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": "unchartedterritory5995-cyber/UCT-Dashboard#2", "human_labels": ["agent_instruction_gap"], "issue_number": "2", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-96d9393987089102", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#2\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#2\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4e87f91e1640d52f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/2\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/2\\nTitle: Model Book: always show year tabs 2020-2025\\nBody:\\nRenders a fixed baseline of year tabs (2020-2025) unioned with any data-driven years so the years section is browsable before stocks are curated. Frontend-only; lint clean; ModelBook.test.jsx 5/5 passing.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5cd5f08f9ea35322\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-0c88436e71396453", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391839, "scanner": "foundry_dataset", "fingerprint": "d8876417ea2b2e7837c2d52cffa058b90ab8c21768c81d340b383aea24e9f2e8", "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": "unchartedterritory5995-cyber/UCT-Dashboard#18", "human_labels": ["api_integration_gap"], "issue_number": "18", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-410f0c8ecd5182f4", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#18\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: unchartedterritory5995-cyber/UCT-Dashboard#18\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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-6dae50d86052773c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/18\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/18\\nTitle: Model Book: non-blocking year-stats (instant endpoint + background warm)\\nBody:\\nEndpoint returns persisted stats instantly; missing ones warm in the background (deduped, low concurrency) while the frontend polls. Eliminates the 30s blocking compute. Lint/tests/build pass.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-69db9f714d1e5d08\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-199025c37d8a7263", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391838, "scanner": "foundry_dataset", "fingerprint": "11bb109ef28c3feefa1032c8e3c719c142041909b795349a640a3de79fbeaba0", "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": "unchartedterritory5995-cyber/UCT-Dashboard#12", "human_labels": ["agent_instruction_gap"], "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-472b1a48e0c32fc9", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#12\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-89d9d8dee5e23e3c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/12\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/12\\nTitle: Fix Model Book charts not honoring the year window (cold-cache race)\\nBody:\\nRe-pin the exact-year view whenever the current ticker's bars update (the old zoom only ran on sym change, before async cold-cache bars arrived). Epoch-based comparison is robust to string/number bar timestamps. Build passes.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a515db80bb21063d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-ce2b4af06375c0dd", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391837, "scanner": "foundry_dataset", "fingerprint": "48d888628b6a8ad86a9598879f1d83359e0056dbf15f86e9e9225977dbdd66a9", "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": "unchartedterritory5995-cyber/UCT-Dashboard#11", "human_labels": ["agent_instruction_gap"], "issue_number": "11", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-16424afd4bd389b1", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#11\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: unchartedterritory5995-cyber/UCT-Dashboard#11\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-230c8193e3c34b99\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/11\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/11\\nTitle: Model Book: arrow-key nav + per-year chart window\\nBody:\\nAdds keyboard up/down navigation through the stock list, and an exactDateRange prop so each stock's chart shows only its labeled calendar year (no padding). Build + tests pass; ModelBook lint clean.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e1212c65b40d6b57\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-3d004045565baf4d", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 391836, "scanner": "foundry_dataset", "fingerprint": "420d7e41ee766664e70647203f47a77b04707adc045c8f544372a763dec9db4c", "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": "unchartedterritory5995-cyber/UCT-Dashboard#10", "human_labels": ["agent_instruction_gap"], "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": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-d6684eee5478fb0b", "helicopter_views": {"graphs": 2}, "artifact_families": {"tests": 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": 2, "source_artifact_count": 1, "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": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#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\nChain evidence:\nIssue/PR evidence chain: unchartedterritory5995-cyber/UCT-Dashboard#10\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\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: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-207c38a6a720d522\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/10\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\\nAuthor: unchartedterritory5995-cyber (User)\\nURL: https://github.com/unchartedterritory5995-cyber/UCT-Dashboard/pull/10\\nTitle: Model Book: tighten chart price-scale top margin\\nBody:\\nAdds an optional priceScaleTopMargin prop to StockChart (overrides the default 0.30 top headroom for one instance); Model Book passes 0.06 so charts use the full canvas. Other surfaces unchanged. Build + tests pass.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4a55336d03c61036\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nGraph label: source_backed_multi_signal_graph\nNodes: 7\nEdges: 8\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 1, \"source_bundle\": 1}\nEdge types: {\"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_source_artifact\": 1, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"tests\": 1}\nHelicopter views: {\"graphs\": 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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "comment-chain-pattern-bad_chains-8ac40cfeed46677f", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: unchartedterritory5995-cyber/UCT-Dashboard"}, "properties": {"repobilityId": 408329, "scanner": "foundry_dataset", "fingerprint": "aa8b81016fcf797ac52a4545815419ecd51c72ac50af3256ce39c33b597fadce", "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": {"generated_provenance": 1, "agent_instruction_gap": 1, "self_attested_unverified": 3, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"self_attested_unverified": 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": "unchartedterritory5995-cyber/UCT-Dashboard#57", "issue_number": "57", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "unchartedterritory5995-cyber/UCT-Dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-db3f5630e9480dba", "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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#57\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: unchartedterritory5995-cyber/UCT-Dashboard\nThread: unchartedterritory5995-cyber/UCT-Dashboard#57\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: unchartedterritory5995-cyber/UCT-Dashboard#57\nRepo: unchartedterritory5995-cyber/UCT-Dashboard\nIssue/PR number: 57\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: {'self_attested_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'self_attested_or_generated_fix_unverified': 1, 'generated_provenance': 1}\nOutcomes: {'self_attested_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/unchartedterritory5995-cyber/UCT-Dashboard", "source_id": "graph-query-motif_query-52392fb56216e437", "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": "unchartedterritory5995-cyber/UCT-Dashboard", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-fcd9783882f45b57", "level": "note", "message": {"text": "Possibly dead Python function: start_auto_refresh"}, "properties": {"repobilityId": "d4c3b05c678b0ff1", "scanner": "scanner-primary", "fingerprint": "fcd9783882f45b57", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/schwab_service.py:531"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f5fd882b54ee6758", "level": "note", "message": {"text": "Possibly dead Python function: stop_auto_refresh"}, "properties": {"repobilityId": "4f0131d085c93a60", "scanner": "scanner-primary", "fingerprint": "f5fd882b54ee6758", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/schwab_service.py:539"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a57870bff4b7233", "level": "note", "message": {"text": "Possibly dead Python function: save_picks"}, "properties": {"repobilityId": "56b054368b968712", "scanner": "scanner-primary", "fingerprint": "0a57870bff4b7233", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/top_flow_tracker.py:78"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4e29b228d2968e4a", "level": "note", "message": {"text": "Possibly dead Python function: migrate_entries"}, "properties": {"repobilityId": "c032cacea6bd3cc7", "scanner": "scanner-primary", "fingerprint": "4e29b228d2968e4a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/top_flow_tracker.py:403"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b5391ad9a30e9f21", "level": "note", "message": {"text": "Possibly dead Python function: fetch_live_flow_csv_text"}, "properties": {"repobilityId": "140987cbedb306b5", "scanner": "scanner-primary", "fingerprint": "b5391ad9a30e9f21", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/uw_live_flow.py:245"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b71f2be0a4abdf48", "level": "note", "message": {"text": "Possibly dead Python function: save_watchlist"}, "properties": {"repobilityId": "3e2ab4516e909786", "scanner": "scanner-primary", "fingerprint": "b71f2be0a4abdf48", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/watchlist_tracker.py:66"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-484fd678a2663f6e", "level": "note", "message": {"text": "Possibly dead Python function: prebuild_all_windows"}, "properties": {"repobilityId": "c4fcbd5b4fed56f3", "scanner": "scanner-primary", "fingerprint": "484fd678a2663f6e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/darkpool_aggregator.py:729"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9604043dfb8c68d3", "level": "note", "message": {"text": "Possibly dead Python function: query_csv"}, "properties": {"repobilityId": "7ee9e66ec8bfcabb", "scanner": "scanner-primary", "fingerprint": "9604043dfb8c68d3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/flow_db.py:275"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-777d8521b8e7c1e2", "level": "note", "message": {"text": "Possibly dead Python function: query_all_csv"}, "properties": {"repobilityId": "a029ed505913ffb4", "scanner": "scanner-primary", "fingerprint": "777d8521b8e7c1e2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/flow_db.py:282"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ac7c14874f06b30", "level": "note", "message": {"text": "Possibly dead Python function: parse_key"}, "properties": {"repobilityId": "122711d1774cc5f5", "scanner": "scanner-primary", "fingerprint": "0ac7c14874f06b30", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/oi_snapshots.py:235"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9ed8036e41ad2497", "level": "note", "message": {"text": "Possibly dead Python function: require_plan"}, "properties": {"repobilityId": "db8dc226fc01c9d5", "scanner": "scanner-primary", "fingerprint": "9ed8036e41ad2497", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/middleware/auth_middleware.py:35"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0858772809b16904", "level": "note", "message": {"text": "Possibly dead Python function: checker"}, "properties": {"repobilityId": "867db4ed14366803", "scanner": "scanner-primary", "fingerprint": "0858772809b16904", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/middleware/auth_middleware.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-13424aaf3a9e0078", "level": "note", "message": {"text": "Possibly dead Python function: require_admin"}, "properties": {"repobilityId": "3c06db2e25566bf7", "scanner": "scanner-primary", "fingerprint": "13424aaf3a9e0078", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/middleware/auth_middleware.py:44"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c9e6de2e73083a5a", "level": "note", "message": {"text": "Possibly dead Python function: is_paid_user"}, "properties": {"repobilityId": "ee14e0a5bca5af58", "scanner": "scanner-primary", "fingerprint": "c9e6de2e73083a5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/middleware/auth_middleware.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-826dd37cd7d55944", "level": "note", "message": {"text": "Possibly dead Python function: requires_voice_access"}, "properties": {"repobilityId": "8a52c0cbb3a8688f", "scanner": "scanner-primary", "fingerprint": "826dd37cd7d55944", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/middleware/auth_middleware.py:66"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5dfeb211297a5bf7", "level": "note", "message": {"text": "Possibly dead Python function: set_default"}, "properties": {"repobilityId": "733f60a0d4dea68e", "scanner": "scanner-primary", "fingerprint": "5dfeb211297a5bf7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/services/trading_accounts.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6e8ee097fc8586d2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/src/App.test.jsx:1"}, "properties": {"repobilityId": "ea48e300fa3458e2", "scanner": "scanner-primary", "fingerprint": "6e8ee097fc8586d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4be4aa1eef49e741", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/src/components/tiles/NHNLModal.jsx:31"}, "properties": {"repobilityId": "2c2328a9c4fbf1d2", "scanner": "scanner-primary", "fingerprint": "4be4aa1eef49e741", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-517ddbcc47af77bd", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/src/pages/OptionsFlow.jsx:2760"}, "properties": {"repobilityId": "58efe3ab805e38bd", "scanner": "scanner-primary", "fingerprint": "517ddbcc47af77bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c0eab5a6e2003f3e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/src/pages/OptionsFlow.jsx:1648"}, "properties": {"repobilityId": "e98b3e6ea7ba7d8d", "scanner": "scanner-primary", "fingerprint": "c0eab5a6e2003f3e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-26495404ec9f0d74", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/src/pages/DarkPool.jsx:2832"}, "properties": {"repobilityId": "4f4f86cb1652b0a5", "scanner": "scanner-primary", "fingerprint": "26495404ec9f0d74", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8f119ff89c433cc", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/src/pages/MorningWire.jsx:170"}, "properties": {"repobilityId": "e52c2a0dd0680bbe", "scanner": "scanner-primary", "fingerprint": "f8f119ff89c433cc", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-15bc3d83507a940c", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/src/pages/LiveFlow.jsx:1250"}, "properties": {"repobilityId": "5caa29d00313339c", "scanner": "scanner-primary", "fingerprint": "15bc3d83507a940c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1f161fe8c26d4dca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/src/pages/LiveFlow.jsx:1022"}, "properties": {"repobilityId": "1d9c6ff981de5b9f", "scanner": "scanner-primary", "fingerprint": "1f161fe8c26d4dca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-224dc309118c6beb", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/src/pages/calendar/DayDetailDrawer.jsx:19"}, "properties": {"repobilityId": "64fd05635fa8ed1f", "scanner": "scanner-primary", "fingerprint": "224dc309118c6beb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-fba7ff3174f4f913", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/src/hooks/useRealtimeSession.js:213"}, "properties": {"repobilityId": "9ca442e0e11c4bc4", "scanner": "scanner-primary", "fingerprint": "fba7ff3174f4f913", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-097c703207fe5d82", "level": "error", "message": {"text": "Possible secret in CLAUDE.md"}, "properties": {"repobilityId": "3445f221ec2d2474", "scanner": "scanner-primary", "fingerprint": "097c703207fe5d82", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-05811b2b11693037", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in CLAUDE.md:1366"}, "properties": {"repobilityId": "09374f0f880fc291", "scanner": "scanner-primary", "fingerprint": "05811b2b11693037", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1366}}}]}, {"ruleId": "scanner-fa7f399f84cffd91", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/main.py:1968"}, "properties": {"repobilityId": "b2da669f81af0a1e", "scanner": "scanner-primary", "fingerprint": "fa7f399f84cffd91", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/main.py"}, "region": {"startLine": 1968}}}]}, {"ruleId": "scanner-e61e3633a2ce3bf8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/src/utils/htmlToSpeech.js:46"}, "properties": {"repobilityId": "0367588cceeab645", "scanner": "scanner-primary", "fingerprint": "e61e3633a2ce3bf8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/src/utils/htmlToSpeech.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-f1f779afb7801e95", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/src/pages/MorningWire.jsx:170"}, "properties": {"repobilityId": "52d373f489968ee2", "scanner": "scanner-primary", "fingerprint": "f1f779afb7801e95", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/src/pages/MorningWire.jsx"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-f1ec628504f9c392", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/src/hooks/useRealtimeSession.js:31"}, "properties": {"repobilityId": "40c8c93a3997613b", "scanner": "scanner-primary", "fingerprint": "f1ec628504f9c392", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/src/hooks/useRealtimeSession.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-b7a78275de51179f", "level": "error", "message": {"text": "Possible secret in tools/ui_sweep.mjs"}, "properties": {"repobilityId": "0459abafac536b98", "scanner": "scanner-primary", "fingerprint": "b7a78275de51179f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/ui_sweep.mjs"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-bd5560cd3b6c9492", "level": "error", "message": {"text": "Possible secret in tools/seed_sweep_admin.py"}, "properties": {"repobilityId": "e1bbe8ffc6397d11", "scanner": "scanner-primary", "fingerprint": "bd5560cd3b6c9492", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/seed_sweep_admin.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-4694a4da42ab5986", "level": "note", "message": {"text": "Very large file: api/main.py (2178 lines)"}, "properties": {"repobilityId": "6250d566277af3b1", "scanner": "scanner-primary", "fingerprint": "4694a4da42ab5986", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bc3db53919f2c2a0", "level": "note", "message": {"text": "Very large file: api/services/bars_fetch.py (2072 lines)"}, "properties": {"repobilityId": "687c438088e41967", "scanner": "scanner-primary", "fingerprint": "bc3db53919f2c2a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d98746d8489789b4", "level": "note", "message": {"text": "Very large file: api/services/engine.py (2124 lines)"}, "properties": {"repobilityId": "d018d34fbe0b2bdd", "scanner": "scanner-primary", "fingerprint": "d98746d8489789b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6578d5fcaae77a9b", "level": "note", "message": {"text": "Very large file: api/services/voice_tool_impls.py (3953 lines)"}, "properties": {"repobilityId": "bc3ef3144d43f569", "scanner": "scanner-primary", "fingerprint": "6578d5fcaae77a9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-66788042b6d60ebd", "level": "note", "message": {"text": "Very large file: api/services/pattern_engine/detectors/structure/stage_analysis.py (1142 lines)"}, "properties": {"repobilityId": "35cbbeab1f3b8679", "scanner": "scanner-primary", "fingerprint": "66788042b6d60ebd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4529a9e8b7cc782a", "level": "note", "message": {"text": "Very large file: api/services/journal_two/coach_chat_tools.py (1620 lines)"}, "properties": {"repobilityId": "584a18478d1e8674", "scanner": "scanner-primary", "fingerprint": "4529a9e8b7cc782a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-de4a8e4948b7aab6", "level": "note", "message": {"text": "Very large file: api/routers/calendar.py (1402 lines)"}, "properties": {"repobilityId": "e1c12302dffa5e6f", "scanner": "scanner-primary", "fingerprint": "de4a8e4948b7aab6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2120e4b4f11a829d", "level": "note", "message": {"text": "Very large file: api/routers/journal_two.py (1655 lines)"}, "properties": {"repobilityId": "afd01a96dde90ae1", "scanner": "scanner-primary", "fingerprint": "2120e4b4f11a829d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6b56e871621d539e", "level": "note", "message": {"text": "Very large file: api/routers/voice.py (1604 lines)"}, "properties": {"repobilityId": "034f9d73b4435206", "scanner": "scanner-primary", "fingerprint": "6b56e871621d539e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3e67f86a1b60e91d", "level": "note", "message": {"text": "Very large file: api/routers/modelbook.py (1963 lines)"}, "properties": {"repobilityId": "294ac93dc65ae42a", "scanner": "scanner-primary", "fingerprint": "3e67f86a1b60e91d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-821a4060f8fd59e8", "level": "note", "message": {"text": "Very large file: app/src/components/StockChart.jsx (5726 lines)"}, "properties": {"repobilityId": "4694dbcb7fc834bd", "scanner": "scanner-primary", "fingerprint": "821a4060f8fd59e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-50b84354475229ae", "level": "note", "message": {"text": "Very large file: app/src/components/chart/ChartToolbar.jsx (1206 lines)"}, "properties": {"repobilityId": "8181590b3437d1b8", "scanner": "scanner-primary", "fingerprint": "50b84354475229ae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ecacc058da1f8310", "level": "note", "message": {"text": "Very large file: app/src/components/chart/ChartDrawingOverlay.jsx (1634 lines)"}, "properties": {"repobilityId": "80f9aa96d90fab70", "scanner": "scanner-primary", "fingerprint": "ecacc058da1f8310", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-33ac374d344efaa7", "level": "note", "message": {"text": "Very large file: app/src/pages/Settings.jsx (1407 lines)"}, "properties": {"repobilityId": "67d8fcc48befca86", "scanner": "scanner-primary", "fingerprint": "33ac374d344efaa7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a96cddd4961318c2", "level": "note", "message": {"text": "Very large file: app/src/pages/Breadth.jsx (1514 lines)"}, "properties": {"repobilityId": "2296eb37951da046", "scanner": "scanner-primary", "fingerprint": "a96cddd4961318c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a9ce995c56f18846", "level": "note", "message": {"text": "Very large file: app/src/pages/OptionsFlow.jsx (7851 lines)"}, "properties": {"repobilityId": "c1b834e92e1ad2c5", "scanner": "scanner-primary", "fingerprint": "a9ce995c56f18846", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f411107deba4f958", "level": "note", "message": {"text": "Very large file: app/src/pages/DarkPool.jsx (3317 lines)"}, "properties": {"repobilityId": "9cf3a85c5aebf7e9", "scanner": "scanner-primary", "fingerprint": "f411107deba4f958", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8302f2b54adf41c4", "level": "note", "message": {"text": "Very large file: app/src/pages/Admin.jsx (2226 lines)"}, "properties": {"repobilityId": "f63bb4b4aad596f4", "scanner": "scanner-primary", "fingerprint": "8302f2b54adf41c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2005a347cfe01024", "level": "note", "message": {"text": "Very large file: app/src/pages/Watchlists.jsx (1099 lines)"}, "properties": {"repobilityId": "ad2e6ef42799a47c", "scanner": "scanner-primary", "fingerprint": "2005a347cfe01024", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-32f31f2bdc008e49", "level": "note", "message": {"text": "Very large file: app/src/pages/ModelBook.jsx (2282 lines)"}, "properties": {"repobilityId": "a8e9077aa184d198", "scanner": "scanner-primary", "fingerprint": "32f31f2bdc008e49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-63ebce8bdffab547", "level": "note", "message": {"text": "Very large file: app/src/pages/LiveFlow.jsx (2880 lines)"}, "properties": {"repobilityId": "aa025901b5c3bd52", "scanner": "scanner-primary", "fingerprint": "63ebce8bdffab547", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "15d3180f35b35ecf", "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": "b4d98ea8b96744c0", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "89ce835fe507c20b", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "96e310cfda5fd1ef", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "c0d3d9352f0f1e39", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "817516f40c3b2961", "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": "f1a470b5d2419122", "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": "56b3579df8da0080", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-992b0a76a5156f9f", "level": "note", "message": {"text": "Legacy-named symbol `sess_legacy` in tests/test_voice_openai.py:261"}, "properties": {"repobilityId": "d00f77e1e9c5a374", "scanner": "scanner-primary", "fingerprint": "992b0a76a5156f9f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-12a2e838c2cea2bf", "level": "note", "message": {"text": "Legacy-named symbol `scout_v1` in tests/test_voice_prompt_registry.py:54"}, "properties": {"repobilityId": "0b6c47c4adf2e7d8", "scanner": "scanner-primary", "fingerprint": "12a2e838c2cea2bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-713514bd2522e3ee", "level": "note", "message": {"text": "Legacy-named symbol `analyst_v1` in tests/test_voice_explainability.py:32"}, "properties": {"repobilityId": "7e148b5f269d2954", "scanner": "scanner-primary", "fingerprint": "713514bd2522e3ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-93b8407522e009bf", "level": "note", "message": {"text": "Legacy-named symbol `test_data_freshness_old` in tests/test_voice_temporal_awareness.py:105"}, "properties": {"repobilityId": "d05a9ab65a354a2a", "scanner": "scanner-primary", "fingerprint": "93b8407522e009bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-765aecc065bfbafd", "level": "note", "message": {"text": "Legacy-named symbol `analyst_v1` in tests/test_voice_trace_service.py:42"}, "properties": {"repobilityId": "2d66dde3cdc2a8b1", "scanner": "scanner-primary", "fingerprint": "765aecc065bfbafd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fc82b577f8848db1", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in tests/api/test_delta_snapshot.py:49"}, "properties": {"repobilityId": "25a6e932bdd34f17", "scanner": "scanner-primary", "fingerprint": "fc82b577f8848db1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e280f13aed59644", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/rising_wedge/_generate.py:57"}, "properties": {"repobilityId": "d4274c4ff8743b4f", "scanner": "scanner-primary", "fingerprint": "6e280f13aed59644", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-178d378042e841db", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/evening_star/_generate.py:234"}, "properties": {"repobilityId": "8c65915a3c298aad", "scanner": "scanner-primary", "fingerprint": "178d378042e841db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8755ec090e269b8d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/double_top/_generate.py:142"}, "properties": {"repobilityId": "dbb45f27aa9a1c73", "scanner": "scanner-primary", "fingerprint": "8755ec090e269b8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82f58b75a74bc7f1", "level": "none", "message": {"text": "Commented-code block (12 lines) in tests/fixtures/three_black_crows/_generate.py:262"}, "properties": {"repobilityId": "503888a8c2859ce9", "scanner": "scanner-primary", "fingerprint": "82f58b75a74bc7f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bb6e227de5a3194", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/fixtures/bullish_harami/_generate.py:201"}, "properties": {"repobilityId": "2cec30c8447dfd7d", "scanner": "scanner-primary", "fingerprint": "5bb6e227de5a3194", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b758733fc6008383", "level": "note", "message": {"text": "Legacy-named symbol `dc_cross_too_old` in tests/fixtures/death_cross/_generate.py:453"}, "properties": {"repobilityId": "c62b0fe28eca89d3", "scanner": "scanner-primary", "fingerprint": "b758733fc6008383", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ee9dfb5d3aa1d6cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/double_bottom/_generate.py:142"}, "properties": {"repobilityId": "0ff95baf7af8ca7b", "scanner": "scanner-primary", "fingerprint": "ee9dfb5d3aa1d6cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6685eabeb01af9be", "level": "note", "message": {"text": "Legacy-named symbol `stale_cross_10_bars_old` in tests/fixtures/macd_bullish_cross/_generate.py:183"}, "properties": {"repobilityId": "d9f3f2275bebcdfd", "scanner": "scanner-primary", "fingerprint": "6685eabeb01af9be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c348fdc0cd2d2104", "level": "note", "message": {"text": "Legacy-named symbol `gap_too_old` in tests/fixtures/power_earnings_gap/_generate.py:58"}, "properties": {"repobilityId": "e7eb2746592ef6eb", "scanner": "scanner-primary", "fingerprint": "c348fdc0cd2d2104", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e2e9c2f6f3c1b7a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/inverse_head_shoulders/_generate.py:332"}, "properties": {"repobilityId": "7c4dabdda4bbedb7", "scanner": "scanner-primary", "fingerprint": "6e2e9c2f6f3c1b7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad19a2417252fa18", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/volume_profile_nodes/_generate.py:438"}, "properties": {"repobilityId": "690b878bc58c6427", "scanner": "scanner-primary", "fingerprint": "ad19a2417252fa18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d4b45e2b015b151", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/falling_wedge/_generate.py:57"}, "properties": {"repobilityId": "10312cf281d65669", "scanner": "scanner-primary", "fingerprint": "5d4b45e2b015b151", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20db135ee3e5a811", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/fixtures/vcp/_generate.py:111"}, "properties": {"repobilityId": "20b25aaf51bd9ced", "scanner": "scanner-primary", "fingerprint": "20db135ee3e5a811", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c254c4e545f3d828", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/marubozu/_generate.py:485"}, "properties": {"repobilityId": "98d208451c869140", "scanner": "scanner-primary", "fingerprint": "c254c4e545f3d828", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0e8aa20831185b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/fixtures/bearish_engulfing/_generate.py:193"}, "properties": {"repobilityId": "17a4ecb353d90df6", "scanner": "scanner-primary", "fingerprint": "e0e8aa20831185b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed81f93098c4a0a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/fixtures/remount/_generate.py:161"}, "properties": {"repobilityId": "771d8e98f43d321d", "scanner": "scanner-primary", "fingerprint": "ed81f93098c4a0a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f048b57609c324b", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/fixtures/three_white_soldiers/_generate.py:295"}, "properties": {"repobilityId": "c8bc3884ccac8145", "scanner": "scanner-primary", "fingerprint": "6f048b57609c324b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7b4b75c02f7b6d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/fixtures/range_detection/_generate.py:237"}, "properties": {"repobilityId": "b72fbbc4e28018dd", "scanner": "scanner-primary", "fingerprint": "f7b4b75c02f7b6d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eab4fa7fbfb35128", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fixtures/pennant/_generate.py:70"}, "properties": {"repobilityId": "1e6b80e2b5547c9d", "scanner": "scanner-primary", "fingerprint": "eab4fa7fbfb35128", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9fad1fbb4f285f0", "level": "note", "message": {"text": "Legacy-named symbol `stale_cross_8_bars_old` in tests/fixtures/macd_bearish_cross/_generate.py:170"}, "properties": {"repobilityId": "4bdfdc0918222d08", "scanner": "scanner-primary", "fingerprint": "d9fad1fbb4f285f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-77a14ce04a32bd91", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_bearish_engulfing.py:29"}, "properties": {"repobilityId": "28de93b5f45aacc6", "scanner": "scanner-primary", "fingerprint": "77a14ce04a32bd91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1a64441c233be6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_golden_cross.py:153"}, "properties": {"repobilityId": "0a6bce2ced4a3b94", "scanner": "scanner-primary", "fingerprint": "f1a64441c233be6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-859fe44df1f778d8", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/pattern_engine/detectors/test_three_black_crows.py:156"}, "properties": {"repobilityId": "a8b0f445df0f9ec8", "scanner": "scanner-primary", "fingerprint": "859fe44df1f778d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5db00e07cc5e020e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_death_cross.py:157"}, "properties": {"repobilityId": "596fec5b19e7c6a6", "scanner": "scanner-primary", "fingerprint": "5db00e07cc5e020e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da9ffc0b6f998ec3", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_bearish_harami.py:29"}, "properties": {"repobilityId": "0615db73985d49f5", "scanner": "scanner-primary", "fingerprint": "da9ffc0b6f998ec3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1454ef81383cb532", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/pattern_engine/detectors/test_evening_star.py:32"}, "properties": {"repobilityId": "415d692146c0d16a", "scanner": "scanner-primary", "fingerprint": "1454ef81383cb532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f693c918d1825748", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/schwab_service.py:637"}, "properties": {"repobilityId": "3c7362f649ea1e38", "scanner": "scanner-primary", "fingerprint": "f693c918d1825748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-987df63a154be9bd", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/dealer_positioning.py:115"}, "properties": {"repobilityId": "579f4e61644a96d3", "scanner": "scanner-primary", "fingerprint": "987df63a154be9bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94353ff19da33695", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/darkpool_router.py:56"}, "properties": {"repobilityId": "54b3f5a1591c89bb", "scanner": "scanner-primary", "fingerprint": "94353ff19da33695", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-474f3cff10815969", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/flow_router.py:57"}, "properties": {"repobilityId": "f8157f8fe385e9a9", "scanner": "scanner-primary", "fingerprint": "474f3cff10815969", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdebc19ebfeb7928", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/top_flow_tracker.py:285"}, "properties": {"repobilityId": "79d7d532d2e0ceb0", "scanner": "scanner-primary", "fingerprint": "bdebc19ebfeb7928", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a9bca0e151446ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/worker_main.py:33"}, "properties": {"repobilityId": "420acab82072c7fb", "scanner": "scanner-primary", "fingerprint": "1a9bca0e151446ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8d1d5d8793b3409", "level": "none", "message": {"text": "Commented-code block (7 lines) in api/gex_service.py:326"}, "properties": {"repobilityId": "7c9569febd654ef6", "scanner": "scanner-primary", "fingerprint": "f8d1d5d8793b3409", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e242edb65e1bf4f", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/darkpool_aggregator.py:38"}, "properties": {"repobilityId": "39f0d64197e9c905", "scanner": "scanner-primary", "fingerprint": "1e242edb65e1bf4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e0c2f377c4f1f8c", "level": "note", "message": {"text": "Legacy-named symbol `bullish_v1` in api/main.py:666"}, "properties": {"repobilityId": "0bced40f3d50bb17", "scanner": "scanner-primary", "fingerprint": "4e0c2f377c4f1f8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1295035a1d38f33f", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/main.py:10"}, "properties": {"repobilityId": "3dd2b84014257cb2", "scanner": "scanner-primary", "fingerprint": "1295035a1d38f33f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aebc686c5826cbe", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/oi_snapshots.py:675"}, "properties": {"repobilityId": "c32bc997e9c8a9d2", "scanner": "scanner-primary", "fingerprint": "5aebc686c5826cbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49c660c98546b015", "level": "note", "message": {"text": "Stub function `commit` (body is just `pass`/`return`) \u2014 api/services/bars_sqlite_test.py:199"}, "properties": {"repobilityId": "961cba4be633ea62", "scanner": "scanner-primary", "fingerprint": "49c660c98546b015", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-3cca6e067d9b328c", "level": "note", "message": {"text": "Legacy-named symbol `prev_copy` in api/services/bar_rollup_test.py:121"}, "properties": {"repobilityId": "943b71c3a7a54bf1", "scanner": "scanner-primary", "fingerprint": "3cca6e067d9b328c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-33918b1209478859", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/bar_rollup_test.py:101"}, "properties": {"repobilityId": "e99565de591cc9ba", "scanner": "scanner-primary", "fingerprint": "33918b1209478859", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06d350f5ca386d94", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/yfinance_pool.py:38"}, "properties": {"repobilityId": "e01df8d7e509afbf", "scanner": "scanner-primary", "fingerprint": "06d350f5ca386d94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db641b1ef0fe1f87", "level": "note", "message": {"text": "Legacy-named symbol `hours_old` in api/services/voice_temporal_awareness.py:138"}, "properties": {"repobilityId": "39391a8f749d4b0b", "scanner": "scanner-primary", "fingerprint": "db641b1ef0fe1f87", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d65a46c8d932074a", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/voice_agents.py:329"}, "properties": {"repobilityId": "9a053ab98e58e90d", "scanner": "scanner-primary", "fingerprint": "d65a46c8d932074a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2c0eb0a2c900d6b", "level": "note", "message": {"text": "Legacy-named symbol `modelbook_dollarvol_v1` in api/services/modelbook_service.py:256"}, "properties": {"repobilityId": "4a86fffbf120923f", "scanner": "scanner-primary", "fingerprint": "a2c0eb0a2c900d6b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ca9f6b1b9769dbde", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/modelbook_service.py:765"}, "properties": {"repobilityId": "bfba57f8bf3a90e2", "scanner": "scanner-primary", "fingerprint": "ca9f6b1b9769dbde", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90060076436d608e", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/massive.py:34"}, "properties": {"repobilityId": "831cc094a7345579", "scanner": "scanner-primary", "fingerprint": "90060076436d608e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67bd102d46208a02", "level": "none", "message": {"text": "Commented-code block (8 lines) in api/services/bars_fetch.py:42"}, "properties": {"repobilityId": "975fd75c3fc41e25", "scanner": "scanner-primary", "fingerprint": "67bd102d46208a02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-690a8888229dba2e", "level": "note", "message": {"text": "Legacy-named symbol `minute_aggs_v1` in api/services/build_intraday_cache.py:151"}, "properties": {"repobilityId": "c633c9067acbff6a", "scanner": "scanner-primary", "fingerprint": "690a8888229dba2e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4b47aea72262d891", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/services/earnings_audio.py:31"}, "properties": {"repobilityId": "c59a2edc64ede6c1", "scanner": "scanner-primary", "fingerprint": "4b47aea72262d891", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-382351f2aca531a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in api/services/bars_continuous_audit.py:46"}, "properties": {"repobilityId": "4f865410dc956840", "scanner": "scanner-primary", "fingerprint": "382351f2aca531a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0b6d7462df6502c", "level": "note", "message": {"text": "Legacy-named symbol `analyst_v1` in api/services/voice_prompt_registry.py:73"}, "properties": {"repobilityId": "bf9e194708acf672", "scanner": "scanner-primary", "fingerprint": "e0b6d7462df6502c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9db219988291a93e", "level": "none", "message": {"text": "Commented-code block (15 lines) in api/services/bars_reconciliation.py:48"}, "properties": {"repobilityId": "952855c037fa5956", "scanner": "scanner-primary", "fingerprint": "9db219988291a93e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-039bb602bbb2dc74", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/voice_tool_impls.py:1934"}, "properties": {"repobilityId": "ffbf9f3d84429e1d", "scanner": "scanner-primary", "fingerprint": "039bb602bbb2dc74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7181133c716ccea2", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in api/services/cot_service.py:457"}, "properties": {"repobilityId": "e62b0d45d4016750", "scanner": "scanner-primary", "fingerprint": "7181133c716ccea2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-798ce62c31eaa31a", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/cot_service.py:488"}, "properties": {"repobilityId": "b3b51aadcbfd21f1", "scanner": "scanner-primary", "fingerprint": "798ce62c31eaa31a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7aca9372e9f711aa", "level": "none", "message": {"text": "Commented-code block (8 lines) in api/services/bar_audit_bootstrap.py:18"}, "properties": {"repobilityId": "9573e79c4015b324", "scanner": "scanner-primary", "fingerprint": "7aca9372e9f711aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e47f26324756d35", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/scheduler_lock.py:34"}, "properties": {"repobilityId": "5e53cfc6238e880b", "scanner": "scanner-primary", "fingerprint": "9e47f26324756d35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95ec20dc0070a09f", "level": "note", "message": {"text": "Legacy-named symbol `_migrate_journal_v2` in api/services/auth_db.py:530"}, "properties": {"repobilityId": "390f8356245be6eb", "scanner": "scanner-primary", "fingerprint": "95ec20dc0070a09f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6b7d6ddb70c34913", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/services/bars_fetch_test.py:317"}, "properties": {"repobilityId": "a04e1165c04f2a42", "scanner": "scanner-primary", "fingerprint": "6b7d6ddb70c34913", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9c877c85bdfef9b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 api/services/bars_fetch_test.py:459"}, "properties": {"repobilityId": "75f0db95315d6dc5", "scanner": "scanner-primary", "fingerprint": "d9c877c85bdfef9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e201d7f6091e36de", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/bars_sqlite.py:21"}, "properties": {"repobilityId": "8b111d07f7e0e280", "scanner": "scanner-primary", "fingerprint": "e201d7f6091e36de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3771d26afef173d", "level": "note", "message": {"text": "Legacy-named symbol `test_returns_independent_copy` in api/services/bars_reconciliation_test.py:101"}, "properties": {"repobilityId": "9a638980f633284f", "scanner": "scanner-primary", "fingerprint": "d3771d26afef173d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f941f6f6d444cb3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/realtime_stream.py:95"}, "properties": {"repobilityId": "dfc7467c7971854b", "scanner": "scanner-primary", "fingerprint": "f941f6f6d444cb3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9dc6a92d10be6c1d", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in api/services/data_sync.py:325"}, "properties": {"repobilityId": "7cbfd84d06ed5d66", "scanner": "scanner-primary", "fingerprint": "9dc6a92d10be6c1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-daf6c129af446882", "level": "none", "message": {"text": "Commented-code block (9 lines) in api/services/data_sync.py:58"}, "properties": {"repobilityId": "f20db6f860cb4d03", "scanner": "scanner-primary", "fingerprint": "daf6c129af446882", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9f95999ae4bff0b", "level": "none", "message": {"text": "Commented-code block (9 lines) in api/services/audit.py:338"}, "properties": {"repobilityId": "14e86ae0dbd897f6", "scanner": "scanner-primary", "fingerprint": "f9f95999ae4bff0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a4b918eabc3b400", "level": "note", "message": {"text": "Legacy-named symbol `cache_nuked_v2` in api/services/bars_prewarm.py:30"}, "properties": {"repobilityId": "834df21e44a1529f", "scanner": "scanner-primary", "fingerprint": "0a4b918eabc3b400", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-edf0fcf834c580fd", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/services/bars_prewarm.py:80"}, "properties": {"repobilityId": "54505b9cb50bf82f", "scanner": "scanner-primary", "fingerprint": "edf0fcf834c580fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d43c22d06b9b65f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/services/catalyst/tagging.py:23"}, "properties": {"repobilityId": "e7485011ca27eee9", "scanner": "scanner-primary", "fingerprint": "d43c22d06b9b65f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3003e4840df607d8", "level": "none", "message": {"text": "Commented-code block (9 lines) in api/services/catalyst/synthesize.py:16"}, "properties": {"repobilityId": "0a386025b472adc8", "scanner": "scanner-primary", "fingerprint": "3003e4840df607d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2839a9c4850e6e6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/catalyst/engine.py:620"}, "properties": {"repobilityId": "1485d2f6cbd8fd54", "scanner": "scanner-primary", "fingerprint": "2839a9c4850e6e6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-766833ae4740eff1", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/catalyst/sources.py:150"}, "properties": {"repobilityId": "fc7f7b82ee76db5e", "scanner": "scanner-primary", "fingerprint": "766833ae4740eff1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a0bfd3bf6d363f3", "level": "none", "message": {"text": "Commented-code block (9 lines) in api/services/pattern_engine/detectors/uct/lance_opening_drive.py:107"}, "properties": {"repobilityId": "809e415d2990ecda", "scanner": "scanner-primary", "fingerprint": "4a0bfd3bf6d363f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-435ddea1fb038e0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/uct/remount.py:189"}, "properties": {"repobilityId": "e883a2ad2e1c6f15", "scanner": "scanner-primary", "fingerprint": "435ddea1fb038e0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7bbf8cb686e6396", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/uct/vcp.py:186"}, "properties": {"repobilityId": "2522c60dad928794", "scanner": "scanner-primary", "fingerprint": "d7bbf8cb686e6396", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a98457e3d633e828", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bullish_engulfing.py:79"}, "properties": {"repobilityId": "fbab8eca75f5b8a3", "scanner": "scanner-primary", "fingerprint": "a98457e3d633e828", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a32a97372cbb98a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/tweezer_bottom.py:123"}, "properties": {"repobilityId": "b73106676c151c24", "scanner": "scanner-primary", "fingerprint": "a32a97372cbb98a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1afaa01eac3fc5ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/piercing.py:77"}, "properties": {"repobilityId": "6384cdbbad3a5b45", "scanner": "scanner-primary", "fingerprint": "1afaa01eac3fc5ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0793edef4ae05f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bearish_engulfing.py:80"}, "properties": {"repobilityId": "73729034faaa0ddd", "scanner": "scanner-primary", "fingerprint": "a0793edef4ae05f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77b0c94a0ef5506d", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bearish_harami.py:87"}, "properties": {"repobilityId": "73b1576c16327511", "scanner": "scanner-primary", "fingerprint": "77b0c94a0ef5506d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a9e23a86abf99a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/dark_cloud_cover.py:76"}, "properties": {"repobilityId": "e4639df2428188c5", "scanner": "scanner-primary", "fingerprint": "9a9e23a86abf99a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f1b9e09d1567a11", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/hammer.py:75"}, "properties": {"repobilityId": "4889dcc06a29ed72", "scanner": "scanner-primary", "fingerprint": "9f1b9e09d1567a11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9f6f48e78f7b024", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/evening_star.py:80"}, "properties": {"repobilityId": "fdb6f464275649b4", "scanner": "scanner-primary", "fingerprint": "d9f6f48e78f7b024", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d3912981498f906", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/morning_star.py:83"}, "properties": {"repobilityId": "f289e441f6f06f46", "scanner": "scanner-primary", "fingerprint": "0d3912981498f906", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7219bed084aa8ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/bullish_harami.py:82"}, "properties": {"repobilityId": "87f962cb544f69cb", "scanner": "scanner-primary", "fingerprint": "d7219bed084aa8ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb754530e1e465a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/candlestick/tweezer_top.py:128"}, "properties": {"repobilityId": "11e256748d760f0c", "scanner": "scanner-primary", "fingerprint": "eb754530e1e465a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5af454ec13267dd4", "level": "note", "message": {"text": "Legacy-named symbol `ma50_old` in api/services/pattern_engine/detectors/classical/death_cross.py:133"}, "properties": {"repobilityId": "c45560322217eaaf", "scanner": "scanner-primary", "fingerprint": "5af454ec13267dd4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-29053f4a89e3c0f7", "level": "none", "message": {"text": "Commented-code block (12 lines) in api/services/pattern_engine/detectors/classical/death_cross.py:58"}, "properties": {"repobilityId": "a4ac415732ab3f3f", "scanner": "scanner-primary", "fingerprint": "29053f4a89e3c0f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ea3982a84268cfe", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/classical/rectangle.py:182"}, "properties": {"repobilityId": "0b1b71523817f5ea", "scanner": "scanner-primary", "fingerprint": "4ea3982a84268cfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef2be316883cba2e", "level": "note", "message": {"text": "Legacy-named symbol `ma50_old` in api/services/pattern_engine/detectors/classical/golden_cross.py:125"}, "properties": {"repobilityId": "9fb7c13eb6d5e2c5", "scanner": "scanner-primary", "fingerprint": "ef2be316883cba2e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a4f202f444184c4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/pattern_engine/detectors/classical/golden_cross.py:54"}, "properties": {"repobilityId": "49e0185acedefdf8", "scanner": "scanner-primary", "fingerprint": "a4f202f444184c4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a02300f34d465a71", "level": "note", "message": {"text": "Legacy-named symbol `notebook_migration_v1` in api/services/journal_two/db.py:357"}, "properties": {"repobilityId": "3b8406bd22db2e95", "scanner": "scanner-primary", "fingerprint": "a02300f34d465a71", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-35623169dd4b5436", "level": "none", "message": {"text": "Commented-code block (7 lines) in api/services/journal_two/db.py:550"}, "properties": {"repobilityId": "a480abe136ffe76d", "scanner": "scanner-primary", "fingerprint": "35623169dd4b5436", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b60038504f36c39", "level": "none", "message": {"text": "Commented-code block (8 lines) in api/services/journal_two/analytics.py:730"}, "properties": {"repobilityId": "41f3d7846e51f855", "scanner": "scanner-primary", "fingerprint": "3b60038504f36c39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c2472f88d535363", "level": "none", "message": {"text": "Commented-code block (7 lines) in api/services/journal_two/test_csv_import.py:268"}, "properties": {"repobilityId": "d588e85192bb836d", "scanner": "scanner-primary", "fingerprint": "9c2472f88d535363", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5468afaa6023c338", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/services/journal_two/accounts.py:299"}, "properties": {"repobilityId": "3896784056b8b9de", "scanner": "scanner-primary", "fingerprint": "5468afaa6023c338", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b366ade89b10be8", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/services/journal_two/coach_chat_tools.py:773"}, "properties": {"repobilityId": "c2a422124cb87060", "scanner": "scanner-primary", "fingerprint": "4b366ade89b10be8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94a9a05fb8fcb908", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/routers/admin_patterns.py:34"}, "properties": {"repobilityId": "a579aeffde5d2e79", "scanner": "scanner-primary", "fingerprint": "94a9a05fb8fcb908", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4e182da28316b90", "level": "note", "message": {"text": "Legacy-named symbol `eps_est_backup` in api/routers/calendar.py:103"}, "properties": {"repobilityId": "1ba7262405348cb4", "scanner": "scanner-primary", "fingerprint": "d4e182da28316b90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1a98c68b59145274", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/routers/calendar.py:1176"}, "properties": {"repobilityId": "c27060d41d709756", "scanner": "scanner-primary", "fingerprint": "1a98c68b59145274", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-746d29dcf20174ce", "level": "none", "message": {"text": "Commented-code block (8 lines) in api/routers/bars.py:145"}, "properties": {"repobilityId": "073cea1d11e0562c", "scanner": "scanner-primary", "fingerprint": "746d29dcf20174ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94ae50d59097c9fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/routers/voice.py:179"}, "properties": {"repobilityId": "7bb7f3a45824a262", "scanner": "scanner-primary", "fingerprint": "94ae50d59097c9fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b413012858b83ca3", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/routers/modelbook.py:328"}, "properties": {"repobilityId": "278f7ad7c68d52f8", "scanner": "scanner-primary", "fingerprint": "b413012858b83ca3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4059fbecc4ae89b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/routers/catalysts.py:28"}, "properties": {"repobilityId": "9ec4c1e98d5964cf", "scanner": "scanner-primary", "fingerprint": "4059fbecc4ae89b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f3400fe099c204e", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/vite.config.js:11"}, "properties": {"repobilityId": "1c34c623177e3c14", "scanner": "scanner-primary", "fingerprint": "3f3400fe099c204e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-397b35784712cb2f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/LiveFlow_integration_guide.jsx:138"}, "properties": {"repobilityId": "f1832c9ad2251560", "scanner": "scanner-primary", "fingerprint": "397b35784712cb2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-143b100f5ce27278", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/utils/landingTrack.js:3"}, "properties": {"repobilityId": "da5f96ede1dbd3f3", "scanner": "scanner-primary", "fingerprint": "143b100f5ce27278", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57515d4f0aa30722", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/src/utils/chartViewAnchor.js:4"}, "properties": {"repobilityId": "1360d0d21e954d87", "scanner": "scanner-primary", "fingerprint": "57515d4f0aa30722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df1de9ae2d338afc", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/utils/barsMemCache.js:1"}, "properties": {"repobilityId": "3733496e22653066", "scanner": "scanner-primary", "fingerprint": "df1de9ae2d338afc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8da7363b62dcc7d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/utils/barsBackfill.js:16"}, "properties": {"repobilityId": "f25c6ef0ef08dec7", "scanner": "scanner-primary", "fingerprint": "e8da7363b62dcc7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dddeee616f3fd843", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/src/utils/prefetchBars.js:4"}, "properties": {"repobilityId": "04ca9526bbdac271", "scanner": "scanner-primary", "fingerprint": "dddeee616f3fd843", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe88b01ab834e249", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/utils/prefetchBars.js:18"}, "properties": {"repobilityId": "62d911127fb26083", "scanner": "scanner-primary", "fingerprint": "fe88b01ab834e249", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e3c9bc863eda75cc", "level": "note", "message": {"text": "Legacy-named symbol `uct_bars_v1` in app/src/utils/barsIDB.js:12"}, "properties": {"repobilityId": "f4f2f4037358c8af", "scanner": "scanner-primary", "fingerprint": "e3c9bc863eda75cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f6345ed464e962aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/utils/barsIDB.js:20"}, "properties": {"repobilityId": "b001b8c4306910b3", "scanner": "scanner-primary", "fingerprint": "f6345ed464e962aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea7fc9446729ec94", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/AlertBell.jsx:9"}, "properties": {"repobilityId": "06f81955e5a47c24", "scanner": "scanner-primary", "fingerprint": "ea7fc9446729ec94", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9ce1c6ae00745e5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/RouteErrorBoundary.jsx:5"}, "properties": {"repobilityId": "c1a6d6ae9e1a56e8", "scanner": "scanner-primary", "fingerprint": "9ce1c6ae00745e5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79f18c906ad23e5b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/NavBar.jsx:9"}, "properties": {"repobilityId": "4c400f88aa4c7235", "scanner": "scanner-primary", "fingerprint": "79f18c906ad23e5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3b8d328c54557534", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/MobileNav.jsx:13"}, "properties": {"repobilityId": "70a2bc4c42566842", "scanner": "scanner-primary", "fingerprint": "3b8d328c54557534", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-81e7dbb6c36865d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/components/StockChart.jsx:48"}, "properties": {"repobilityId": "4c4e62bc0557dcf5", "scanner": "scanner-primary", "fingerprint": "81e7dbb6c36865d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-498ca00d49791e1b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/StockChart.jsx:560"}, "properties": {"repobilityId": "b3018ca1c2459938", "scanner": "scanner-primary", "fingerprint": "498ca00d49791e1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1733ff7678c09236", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/TickerActions.jsx:86"}, "properties": {"repobilityId": "ae5e76089fe1b912", "scanner": "scanner-primary", "fingerprint": "1733ff7678c09236", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4792518bb242490a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/CompanyLogo.jsx:30"}, "properties": {"repobilityId": "9f854cd35fe40593", "scanner": "scanner-primary", "fingerprint": "4792518bb242490a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd95304d4bc08e85", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/CompanyLogo.jsx:17"}, "properties": {"repobilityId": "4a1412d0e9a5634a", "scanner": "scanner-primary", "fingerprint": "bd95304d4bc08e85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-550ead57d7799b01", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/MoversSidebar.jsx:15"}, "properties": {"repobilityId": "98ceb0a7d3128583", "scanner": "scanner-primary", "fingerprint": "550ead57d7799b01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-625f3743367351bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/components/IntradayDayPopover.jsx:1"}, "properties": {"repobilityId": "0ddeb28af450d6d4", "scanner": "scanner-primary", "fingerprint": "625f3743367351bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d57dcf7b6e491a9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/IntradayDayPopover.jsx:87"}, "properties": {"repobilityId": "0fc6efc41877f318", "scanner": "scanner-primary", "fingerprint": "5d57dcf7b6e491a9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0baaa098d3a0181f", "level": "note", "message": {"text": "Legacy-named symbol `uct_intro_seen_v1` in app/src/components/intro/introStorage.js:1"}, "properties": {"repobilityId": "07bc111f01fe2c09", "scanner": "scanner-primary", "fingerprint": "0baaa098d3a0181f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-18f15faef3a093b0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/voice/VoiceTelemetryPanel.jsx:35"}, "properties": {"repobilityId": "e09c36988196f097", "scanner": "scanner-primary", "fingerprint": "18f15faef3a093b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7b07f1aa492cc543", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/voice/VisionAttachButton.jsx:46"}, "properties": {"repobilityId": "36dddb29e5d2dd53", "scanner": "scanner-primary", "fingerprint": "7b07f1aa492cc543", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-51e27cb6f63cf4d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/components/voice/AudioPlayerBar.test.jsx:94"}, "properties": {"repobilityId": "8ea1e2c6a9bdf364", "scanner": "scanner-primary", "fingerprint": "51e27cb6f63cf4d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d077873c2f29e465", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/admin/TwitterAccountsPanel.jsx:11"}, "properties": {"repobilityId": "f8a8e975b0ac4a87", "scanner": "scanner-primary", "fingerprint": "d077873c2f29e465", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4788604a50586a7e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/chart/SymbolSearch.jsx:100"}, "properties": {"repobilityId": "10f79943a764f08e", "scanner": "scanner-primary", "fingerprint": "4788604a50586a7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9471855fa212e691", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/src/components/chart/indicators.test.js:32"}, "properties": {"repobilityId": "43ccfe3ac0f14c7b", "scanner": "scanner-primary", "fingerprint": "9471855fa212e691", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4db33697e42f2f6", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/src/components/chart/swingPivots.js:3"}, "properties": {"repobilityId": "530ebfdc8e270bc7", "scanner": "scanner-primary", "fingerprint": "b4db33697e42f2f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffbda6e55cc84fb8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/chart/lightThemePalette.js:1"}, "properties": {"repobilityId": "b8f537394bbe3687", "scanner": "scanner-primary", "fingerprint": "ffbda6e55cc84fb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13bbf124a6e909be", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/chart/indicators.js:193"}, "properties": {"repobilityId": "005d0680d6ce860e", "scanner": "scanner-primary", "fingerprint": "13bbf124a6e909be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ede0e18ea2b75552", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/chart/ChartDrawingOverlay.jsx:203"}, "properties": {"repobilityId": "f85feeb8d54164fb", "scanner": "scanner-primary", "fingerprint": "ede0e18ea2b75552", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eb54a25bb3482d7", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/src/components/chart/PatternSidePanel.jsx:7"}, "properties": {"repobilityId": "2bf0eb22830fdc62", "scanner": "scanner-primary", "fingerprint": "3eb54a25bb3482d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdd0f6b821f8c880", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/src/components/chart/liveBarClassify.js:5"}, "properties": {"repobilityId": "f9850e1cd22660e0", "scanner": "scanner-primary", "fingerprint": "fdd0f6b821f8c880", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4227b9c71501f539", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/src/components/chart/ChartCalloutOverlay.jsx:20"}, "properties": {"repobilityId": "e6733b0c937d055f", "scanner": "scanner-primary", "fingerprint": "4227b9c71501f539", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a2fdcda9644738c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/chart/patternShapes/CandleMark.jsx:6"}, "properties": {"repobilityId": "f53d6dfcc9aa39e6", "scanner": "scanner-primary", "fingerprint": "2a2fdcda9644738c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de9ffc0ffdf748c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/tiles/MarketBreadth.test.jsx:4"}, "properties": {"repobilityId": "96286b40f0412ef9", "scanner": "scanner-primary", "fingerprint": "de9ffc0ffdf748c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ce266fccc04e415", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/RegimeTile.jsx:12"}, "properties": {"repobilityId": "3f1866d170f8a5ee", "scanner": "scanner-primary", "fingerprint": "8ce266fccc04e415", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f0f8bb7d6facb930", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/MarketBreadth.jsx:8"}, "properties": {"repobilityId": "995dffc1a89800c8", "scanner": "scanner-primary", "fingerprint": "f0f8bb7d6facb930", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7b9b159b0703d16a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/CompassTodayTile.jsx:23"}, "properties": {"repobilityId": "9fb73056d28ffc21", "scanner": "scanner-primary", "fingerprint": "7b9b159b0703d16a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e67b2312902b532c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/ThemeTracker.jsx:10"}, "properties": {"repobilityId": "8187d85113aa610a", "scanner": "scanner-primary", "fingerprint": "e67b2312902b532c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f816ab94d1066fd8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/CatalystFlow.jsx:12"}, "properties": {"repobilityId": "99d7c62098984bc9", "scanner": "scanner-primary", "fingerprint": "f816ab94d1066fd8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3546d069a3b5a2e0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/MARelationship.jsx:6"}, "properties": {"repobilityId": "c9911b6bc4870ddf", "scanner": "scanner-primary", "fingerprint": "3546d069a3b5a2e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-45292369da449b2a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/UCT20Backtest.jsx:10"}, "properties": {"repobilityId": "b09e79ef081fdaa6", "scanner": "scanner-primary", "fingerprint": "45292369da449b2a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-08e17b99d6260850", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/NewsFeed.jsx:9"}, "properties": {"repobilityId": "135d2bc737b83135", "scanner": "scanner-primary", "fingerprint": "08e17b99d6260850", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6202f4558ea15e13", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/UCT20Performance.jsx:8"}, "properties": {"repobilityId": "7e1129ece68210a0", "scanner": "scanner-primary", "fingerprint": "6202f4558ea15e13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18c7fd3dbd8131a7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/LeadershipTile.jsx:12"}, "properties": {"repobilityId": "41301bf350a67ea4", "scanner": "scanner-primary", "fingerprint": "18c7fd3dbd8131a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c39bb52e54003643", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/IntradayPulse.jsx:5"}, "properties": {"repobilityId": "bad22d117c40d133", "scanner": "scanner-primary", "fingerprint": "c39bb52e54003643", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-07c99788ab0f9861", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/EpisodicPivots.jsx:7"}, "properties": {"repobilityId": "453e0586765ad822", "scanner": "scanner-primary", "fingerprint": "07c99788ab0f9861", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f9da7e3f2c3075d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/components/tiles/FuturesStrip.jsx:423"}, "properties": {"repobilityId": "e7c21248c8c12219", "scanner": "scanner-primary", "fingerprint": "f9da7e3f2c3075d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-30633af2be8bd046", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/src/components/calendar/CallRecapSection.jsx:1"}, "properties": {"repobilityId": "034fdf131ec53300", "scanner": "scanner-primary", "fingerprint": "30633af2be8bd046", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be7bb2b3ba5f4814", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/components/calendar/SentimentGauge.jsx:1"}, "properties": {"repobilityId": "287e908c59727214", "scanner": "scanner-primary", "fingerprint": "be7bb2b3ba5f4814", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83350d2208c2eae5", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/src/lib/journal-2-0/calculations.test.js:106"}, "properties": {"repobilityId": "887e5397d0206095", "scanner": "scanner-primary", "fingerprint": "83350d2208c2eae5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-393968ac4f0eea1e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Settings.jsx:293"}, "properties": {"repobilityId": "8d49db199e0efde9", "scanner": "scanner-primary", "fingerprint": "393968ac4f0eea1e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f42e2ede0aa588c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Breadth.jsx:23"}, "properties": {"repobilityId": "c6753c86e4f38863", "scanner": "scanner-primary", "fingerprint": "f42e2ede0aa588c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b13a99f6c22ae3ed", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/pages/OptionsFlow.jsx:958"}, "properties": {"repobilityId": "e1f899c926748751", "scanner": "scanner-primary", "fingerprint": "b13a99f6c22ae3ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ab3171c3b1ea3c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/OptionsFlow.jsx:1677"}, "properties": {"repobilityId": "5feb62d9a256cd36", "scanner": "scanner-primary", "fingerprint": "3ab3171c3b1ea3c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56833e69a6adeb1a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Patterns.jsx:7"}, "properties": {"repobilityId": "3b2b0394c0393517", "scanner": "scanner-primary", "fingerprint": "56833e69a6adeb1a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa13b6ec07a64824", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/SetupLibrary.jsx:8"}, "properties": {"repobilityId": "fcf2f1fe2e977a18", "scanner": "scanner-primary", "fingerprint": "fa13b6ec07a64824", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6417fe631262c03", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/DarkPool.jsx:75"}, "properties": {"repobilityId": "ddcd234fbcfeefeb", "scanner": "scanner-primary", "fingerprint": "b6417fe631262c03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9d4280e322313b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/DarkPool.jsx:986"}, "properties": {"repobilityId": "636e8acb157b0d4c", "scanner": "scanner-primary", "fingerprint": "d9d4280e322313b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-082fd6914da07816", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/PostMarket.jsx:5"}, "properties": {"repobilityId": "a8d784e97e730bbe", "scanner": "scanner-primary", "fingerprint": "082fd6914da07816", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e54aaab8f773052b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/MorningWire.jsx:18"}, "properties": {"repobilityId": "972351827c01d40a", "scanner": "scanner-primary", "fingerprint": "e54aaab8f773052b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b73e679af951d03a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/CatalystsHistory.jsx:16"}, "properties": {"repobilityId": "ffe6df0571a1443f", "scanner": "scanner-primary", "fingerprint": "b73e679af951d03a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fd92216f91bfb25d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/UCT20.jsx:15"}, "properties": {"repobilityId": "ef3a3d520b149d8b", "scanner": "scanner-primary", "fingerprint": "fd92216f91bfb25d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c5d7534fdf8c305b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Admin.jsx:708"}, "properties": {"repobilityId": "7b9d5ea3a89a628c", "scanner": "scanner-primary", "fingerprint": "c5d7534fdf8c305b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bb5a30cc9261c5ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Watchlists.jsx:17"}, "properties": {"repobilityId": "ae0249ea075e773e", "scanner": "scanner-primary", "fingerprint": "bb5a30cc9261c5ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-96a45277a4b66927", "level": "note", "message": {"text": "Legacy-named symbol `modelbook_panel_width_v2` in app/src/pages/ModelBook.jsx:2080"}, "properties": {"repobilityId": "f835f8509c260c5c", "scanner": "scanner-primary", "fingerprint": "96a45277a4b66927", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4bf187de664fefb3", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/pages/ModelBook.jsx:548"}, "properties": {"repobilityId": "abc00b0e88fa752d", "scanner": "scanner-primary", "fingerprint": "4bf187de664fefb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4e12ec0dd3564bb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/ModelBook.jsx:15"}, "properties": {"repobilityId": "d43681a131aa193e", "scanner": "scanner-primary", "fingerprint": "e4e12ec0dd3564bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c03055a3f8a09bb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Traders.jsx:5"}, "properties": {"repobilityId": "c20b54ac84227eb5", "scanner": "scanner-primary", "fingerprint": "8c03055a3f8a09bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a671a9379c55455", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/RiskDashboard.jsx:25"}, "properties": {"repobilityId": "954835ad68cb0e61", "scanner": "scanner-primary", "fingerprint": "3a671a9379c55455", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eff841c9a98d7a2f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/BreadthCharts.jsx:7"}, "properties": {"repobilityId": "dd916e497c7623c6", "scanner": "scanner-primary", "fingerprint": "eff841c9a98d7a2f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed97367e0c9e58ea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/Screener.jsx:10"}, "properties": {"repobilityId": "05f1f9418d1e2dbe", "scanner": "scanner-primary", "fingerprint": "ed97367e0c9e58ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fe8a6083e983a73c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/CustomScan.jsx:17"}, "properties": {"repobilityId": "1f83ccf20ca52151", "scanner": "scanner-primary", "fingerprint": "fe8a6083e983a73c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2676fbf8026e6a45", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/pages/LiveFlow.jsx:670"}, "properties": {"repobilityId": "5be7efa8fd2a120b", "scanner": "scanner-primary", "fingerprint": "2676fbf8026e6a45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b9fdd8d73e9db01", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/LiveFlow.jsx:1020"}, "properties": {"repobilityId": "0dd878aaf8f63753", "scanner": "scanner-primary", "fingerprint": "6b9fdd8d73e9db01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4e8124f2036e90ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/ThemeTrackerPage.jsx:15"}, "properties": {"repobilityId": "d086c76bd8c2caf0", "scanner": "scanner-primary", "fingerprint": "4e8124f2036e90ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8a65ea7c4350ea7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/breadth/grouping/groupItems.js:11"}, "properties": {"repobilityId": "ef2a82dd07e153f3", "scanner": "scanner-primary", "fingerprint": "8a65ea7c4350ea7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51a320b26bff31d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/breadth/grouping/useGroupMeta.js:16"}, "properties": {"repobilityId": "763f545502d7eeac", "scanner": "scanner-primary", "fingerprint": "51a320b26bff31d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-282e529f2f160e45", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:68"}, "properties": {"repobilityId": "d0ce6065e7e2429c", "scanner": "scanner-primary", "fingerprint": "282e529f2f160e45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-edea70a4e0ef42fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/AddPositionModal.jsx:157"}, "properties": {"repobilityId": "96724b6c389887bb", "scanner": "scanner-primary", "fingerprint": "edea70a4e0ef42fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-621572f6d810fc3e", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/pages/journal-2-0/components/CompassChat.jsx:30"}, "properties": {"repobilityId": "2bfb53579eed0518", "scanner": "scanner-primary", "fingerprint": "621572f6d810fc3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfec1def170b98b6", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/pages/journal-2-0/components/TraderDetail.jsx:66"}, "properties": {"repobilityId": "92405127c29357c6", "scanner": "scanner-primary", "fingerprint": "dfec1def170b98b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b4257952dda4a01", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/ReportPage.jsx:20"}, "properties": {"repobilityId": "d76e1566c488b6d3", "scanner": "scanner-primary", "fingerprint": "4b4257952dda4a01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-16ddefcc75d2ba02", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/src/pages/journal-2-0/components/StatsGrid.test.jsx:128"}, "properties": {"repobilityId": "4b838540b8177ef0", "scanner": "scanner-primary", "fingerprint": "16ddefcc75d2ba02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4a80e491b780221", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/TradeReviewCard.jsx:49"}, "properties": {"repobilityId": "1f3ddaadd2f048f5", "scanner": "scanner-primary", "fingerprint": "f4a80e491b780221", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-93e9a2452cbcf722", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/PositionsTable.jsx:50"}, "properties": {"repobilityId": "bb07c479a0b14a60", "scanner": "scanner-primary", "fingerprint": "93e9a2452cbcf722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf604195e69e2392", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/options/AddOptionStrategyModal.jsx:81"}, "properties": {"repobilityId": "9a0fe0f3d6b15659", "scanner": "scanner-primary", "fingerprint": "cf604195e69e2392", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1aacd485361cba55", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:25"}, "properties": {"repobilityId": "4d8ebe27c72b7ec9", "scanner": "scanner-primary", "fingerprint": "1aacd485361cba55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4ec0a934ea09520", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:210"}, "properties": {"repobilityId": "6ae01c37d4ec3bfb", "scanner": "scanner-primary", "fingerprint": "d4ec0a934ea09520", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-afe0329e8ce04ed1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/components/accounts/GoalProgress.jsx:20"}, "properties": {"repobilityId": "afc63c6fa55a43ed", "scanner": "scanner-primary", "fingerprint": "afe0329e8ce04ed1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a83d42ef9bbcd61a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2SetupStats.js:11"}, "properties": {"repobilityId": "d5de1186471e32f3", "scanner": "scanner-primary", "fingerprint": "a83d42ef9bbcd61a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b9b6496320ab5d6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useCompassOverview.js:8"}, "properties": {"repobilityId": "594aa7fddb2517d4", "scanner": "scanner-primary", "fingerprint": "4b9b6496320ab5d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbbcb72832f4070e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2TraderProfile.js:15"}, "properties": {"repobilityId": "afc51520a6feea85", "scanner": "scanner-primary", "fingerprint": "dbbcb72832f4070e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d212a884841bb184", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Analytics.js:7"}, "properties": {"repobilityId": "162c4aec60d2d34e", "scanner": "scanner-primary", "fingerprint": "d212a884841bb184", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6b6a2d0295e43e62", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useProfileSuggestions.js:9"}, "properties": {"repobilityId": "e04d406b5450d552", "scanner": "scanner-primary", "fingerprint": "6b6a2d0295e43e62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0b9b7827a0c9f700", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2DayDetail.js:6"}, "properties": {"repobilityId": "cc78213f0210f370", "scanner": "scanner-primary", "fingerprint": "0b9b7827a0c9f700", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31c74a3b87e4a7ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CoachReviews.js:10"}, "properties": {"repobilityId": "0fdf6e67fcaee664", "scanner": "scanner-primary", "fingerprint": "31c74a3b87e4a7ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-45f8f26658325ceb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Nudges.js:9"}, "properties": {"repobilityId": "ce99cb50725e3d17", "scanner": "scanner-primary", "fingerprint": "45f8f26658325ceb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a354551da5c83cf1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useInterventions.js:12"}, "properties": {"repobilityId": "e032e562e1d2f484", "scanner": "scanner-primary", "fingerprint": "a354551da5c83cf1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-32f50b9397e03a97", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Settings.js:17"}, "properties": {"repobilityId": "0c0f09bfa8b9344f", "scanner": "scanner-primary", "fingerprint": "32f50b9397e03a97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c8bf6712d26470d3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:75"}, "properties": {"repobilityId": "370699cdfecf24c5", "scanner": "scanner-primary", "fingerprint": "c8bf6712d26470d3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1891f0a9a8ac3913", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Calendar.js:6"}, "properties": {"repobilityId": "2e0e1c2e901e9de3", "scanner": "scanner-primary", "fingerprint": "1891f0a9a8ac3913", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1e389ac20ea2f2b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2EODRecaps.js:10"}, "properties": {"repobilityId": "baa417e356834b9f", "scanner": "scanner-primary", "fingerprint": "f1e389ac20ea2f2b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8482057d21f9199b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2DisciplineState.js:11"}, "properties": {"repobilityId": "cd596c92ca2467b0", "scanner": "scanner-primary", "fingerprint": "8482057d21f9199b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-01d8b28d6b35b42b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityTraders.js:6"}, "properties": {"repobilityId": "6e359f5a8082b302", "scanner": "scanner-primary", "fingerprint": "01d8b28d6b35b42b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e9196d76c00f64e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2OptionStrategies.js:7"}, "properties": {"repobilityId": "fd69c3c28fe0049b", "scanner": "scanner-primary", "fingerprint": "8e9196d76c00f64e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-764c6273cfed7dc4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2AccountComparison.js:6"}, "properties": {"repobilityId": "8e05077ed5866a9d", "scanner": "scanner-primary", "fingerprint": "764c6273cfed7dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-410a20c4f97d74ff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Accounts.js:6"}, "properties": {"repobilityId": "ce249320a1c65c4f", "scanner": "scanner-primary", "fingerprint": "410a20c4f97d74ff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dea7e0acf46c307f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2NoteFolders.js:5"}, "properties": {"repobilityId": "eade888696ebd9f6", "scanner": "scanner-primary", "fingerprint": "dea7e0acf46c307f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f461767684ca1b87", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useReviewedTradeIds.js:12"}, "properties": {"repobilityId": "5514a1f8aa71dcb5", "scanner": "scanner-primary", "fingerprint": "f461767684ca1b87", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0f2fe4d326270bbc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityPositions.js:6"}, "properties": {"repobilityId": "5973c87da6b343ac", "scanner": "scanner-primary", "fingerprint": "0f2fe4d326270bbc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-357a893138a75159", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:15"}, "properties": {"repobilityId": "ca17dbaef27fd686", "scanner": "scanner-primary", "fingerprint": "357a893138a75159", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b5747beb87fd483e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:80"}, "properties": {"repobilityId": "6ec5b362a16d92f3", "scanner": "scanner-primary", "fingerprint": "b5747beb87fd483e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-60437ed73234e8d1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Trades.js:7"}, "properties": {"repobilityId": "0162ec32bf680f61", "scanner": "scanner-primary", "fingerprint": "60437ed73234e8d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c2fd2dcbae760e45", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Notes.js:5"}, "properties": {"repobilityId": "75839459440de5b5", "scanner": "scanner-primary", "fingerprint": "c2fd2dcbae760e45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-935a9b8d211ffce3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CommunityTrades.js:6"}, "properties": {"repobilityId": "0e2c32897a3ca7cd", "scanner": "scanner-primary", "fingerprint": "935a9b8d211ffce3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f4793d4495fdddea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2Positions.js:7"}, "properties": {"repobilityId": "9ef33606a6b93449", "scanner": "scanner-primary", "fingerprint": "f4793d4495fdddea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-af727dd7093919d3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/journal-2-0/hooks/useJ2CurrentRegime.js:9"}, "properties": {"repobilityId": "4f7fc17a9a1a0f2b", "scanner": "scanner-primary", "fingerprint": "af727dd7093919d3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-47d7290c5e72432f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/admin/PatternAdmin.jsx:6"}, "properties": {"repobilityId": "6cc1e6ee98502d34", "scanner": "scanner-primary", "fingerprint": "47d7290c5e72432f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b605f703af84ae6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/admin/ChartHealth.jsx:160"}, "properties": {"repobilityId": "ce2a860a0c475224", "scanner": "scanner-primary", "fingerprint": "9b605f703af84ae6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b0ff17899122ede", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/patterns/PatternFilter.jsx:7"}, "properties": {"repobilityId": "a1222f6076ff0608", "scanner": "scanner-primary", "fingerprint": "2b0ff17899122ede", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f8fe4e7918e9ced", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/calendar/callRecap.test.jsx:299"}, "properties": {"repobilityId": "ceeb1be75c88fe54", "scanner": "scanner-primary", "fingerprint": "9f8fe4e7918e9ced", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d189bd1eaaefb5c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/pages/calendar/MyStocksHub.jsx:4"}, "properties": {"repobilityId": "395cafa7baf8defa", "scanner": "scanner-primary", "fingerprint": "3d189bd1eaaefb5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-453d8133b3685924", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/calendar/useCalendarData.js:5"}, "properties": {"repobilityId": "025bb26228f6ced3", "scanner": "scanner-primary", "fingerprint": "453d8133b3685924", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-54b7c2519908498c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/calendar/myStocksHub.test.jsx:4"}, "properties": {"repobilityId": "ae95a2b03939279c", "scanner": "scanner-primary", "fingerprint": "54b7c2519908498c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88ea4580d65fe21f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/calendar/monthGrid.js:1"}, "properties": {"repobilityId": "30b5561eef6543b7", "scanner": "scanner-primary", "fingerprint": "88ea4580d65fe21f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa18c161ba1c2c32", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/src/pages/calendar/MonthView.jsx:1"}, "properties": {"repobilityId": "208af11ecbd5f3f3", "scanner": "scanner-primary", "fingerprint": "aa18c161ba1c2c32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4140272f7d519b8c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/setupCatalog.js:3"}, "properties": {"repobilityId": "d01077f9419fc19b", "scanner": "scanner-primary", "fingerprint": "4140272f7d519b8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1010abd814998a5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/bottomsCatalog.js:127"}, "properties": {"repobilityId": "e5ec92911fc8976f", "scanner": "scanner-primary", "fingerprint": "1010abd814998a5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50c1f012b0367035", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/SetupsView.jsx:93"}, "properties": {"repobilityId": "b9d05fae04215c35", "scanner": "scanner-primary", "fingerprint": "50c1f012b0367035", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c2a244d1a2ed6d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/pages/modelbook/SetupsView.jsx:321"}, "properties": {"repobilityId": "02b7c23563d64ad8", "scanner": "scanner-primary", "fingerprint": "2c2a244d1a2ed6d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d1e8e1ff22c8f6fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/pages/modelbook/setupPlaybooks.js:5"}, "properties": {"repobilityId": "1dca19eecf5e0a81", "scanner": "scanner-primary", "fingerprint": "d1e8e1ff22c8f6fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6dc975da38b2318", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/hooks/useFlagged.js:8"}, "properties": {"repobilityId": "a0fdc8ae123e48ca", "scanner": "scanner-primary", "fingerprint": "c6dc975da38b2318", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-777b9bd302711f8b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerTweets.js:3"}, "properties": {"repobilityId": "860f73db0db6f91a", "scanner": "scanner-primary", "fingerprint": "777b9bd302711f8b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-141ba550b1822dec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useUserTickerSet.js:16"}, "properties": {"repobilityId": "867d666195dcee3c", "scanner": "scanner-primary", "fingerprint": "141ba550b1822dec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b0c30e68ea89b134", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useBatchTweetCounts.js:4"}, "properties": {"repobilityId": "33aeb8019a319c65", "scanner": "scanner-primary", "fingerprint": "b0c30e68ea89b134", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1ff67b34359a7bc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/hooks/useWatermarkDrag.js:50"}, "properties": {"repobilityId": "25b7691e05d4d7cb", "scanner": "scanner-primary", "fingerprint": "1ff67b34359a7bc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4070bad05568ffca", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerTags.js:4"}, "properties": {"repobilityId": "a7dec0be7e5672af", "scanner": "scanner-primary", "fingerprint": "4070bad05568ffca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-af8014aa2672c274", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/src/hooks/useRealtimeSession.js:345"}, "properties": {"repobilityId": "c7c66680fff7c77e", "scanner": "scanner-primary", "fingerprint": "af8014aa2672c274", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50f56d529f2817ea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useRealtimeSession.js:46"}, "properties": {"repobilityId": "5272c58ace193e1f", "scanner": "scanner-primary", "fingerprint": "50f56d529f2817ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0061463b5f25d642", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/src/hooks/useTickerMeta.js:7"}, "properties": {"repobilityId": "5201637cd0d7056d", "scanner": "scanner-primary", "fingerprint": "0061463b5f25d642", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21cf90c6fc48669e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTickerMeta.js:53"}, "properties": {"repobilityId": "b9d7c6f9cfc4a205", "scanner": "scanner-primary", "fingerprint": "21cf90c6fc48669e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbb80cff293d4986", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/src/hooks/useHandsFreeMorningWire.js:73"}, "properties": {"repobilityId": "e3952940110aa6e2", "scanner": "scanner-primary", "fingerprint": "dbb80cff293d4986", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3acd591f0826900c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useHandsFreeMorningWire.js:65"}, "properties": {"repobilityId": "49b729a6b9065bbb", "scanner": "scanner-primary", "fingerprint": "3acd591f0826900c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b92002cbd1054e73", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/usePreferences.js:4"}, "properties": {"repobilityId": "454ecfe70e1386e0", "scanner": "scanner-primary", "fingerprint": "b92002cbd1054e73", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6503bc4945f07d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useIndicatorAlerts.js:8"}, "properties": {"repobilityId": "7766b5b07be695f0", "scanner": "scanner-primary", "fingerprint": "c6503bc4945f07d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c526cbeeabde38a2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useWatchlistPerformance.js:4"}, "properties": {"repobilityId": "e2a5918f24e4afb3", "scanner": "scanner-primary", "fingerprint": "c526cbeeabde38a2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76e6a58294bd91c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTweetFeed.js:3"}, "properties": {"repobilityId": "8cb4833d689ea40b", "scanner": "scanner-primary", "fingerprint": "76e6a58294bd91c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b1af7514b2138428", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useProactiveVoice.js:62"}, "properties": {"repobilityId": "22230fce38b7922a", "scanner": "scanner-primary", "fingerprint": "b1af7514b2138428", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c1a31cc08d8b7563", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/usePatternDetections.js:11"}, "properties": {"repobilityId": "98b036bf316c227a", "scanner": "scanner-primary", "fingerprint": "c1a31cc08d8b7563", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-37010a592aa9a8a8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useCatalysts.js:3"}, "properties": {"repobilityId": "c8dd24086dd6b872", "scanner": "scanner-primary", "fingerprint": "37010a592aa9a8a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2cab6800245ce463", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/src/hooks/useWatermarkDrag.test.jsx:24"}, "properties": {"repobilityId": "84e37e4bcf52f234", "scanner": "scanner-primary", "fingerprint": "2cab6800245ce463", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18e5462ec716e192", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useVoiceMemory.js:37"}, "properties": {"repobilityId": "05f11d01818dcf2e", "scanner": "scanner-primary", "fingerprint": "18e5462ec716e192", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ba53c097076c8bc6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useTapeFeed.js:3"}, "properties": {"repobilityId": "092cf7922db1b776", "scanner": "scanner-primary", "fingerprint": "ba53c097076c8bc6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b86dbed87b53e583", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/hooks/useSWRWithRetry.js:4"}, "properties": {"repobilityId": "690796328ffeae6d", "scanner": "scanner-primary", "fingerprint": "b86dbed87b53e583", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-05dd809d510d6ed1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/src/context/AuthContext.jsx:40"}, "properties": {"repobilityId": "63c2cf26d07fd2ae", "scanner": "scanner-primary", "fingerprint": "05dd809d510d6ed1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a7f209377c6e2cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/src/context/VoiceContext.jsx:101"}, "properties": {"repobilityId": "bb5cc64ef51dc935", "scanner": "scanner-primary", "fingerprint": "4a7f209377c6e2cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd606c90e05a30ac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 tools/stooq_fetch.mjs:29"}, "properties": {"repobilityId": "02f9bb9d6172f3ed", "scanner": "scanner-primary", "fingerprint": "cd606c90e05a30ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1076198111a76ca7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/sweep_when_deployed.py:57"}, "properties": {"repobilityId": "e4f4fb173e69d440", "scanner": "scanner-primary", "fingerprint": "1076198111a76ca7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ef6a85abc8334aad", "level": "note", "message": {"text": "117 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "081e9ffe9272e5c3", "scanner": "scanner-primary", "fingerprint": "ef6a85abc8334aad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "1dcfe558b5489377", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f461085b8ceb200d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "bb1c7f4175259788", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ea2685c547378efd", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ff385f206b3770d9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "aa3f57c7f691caf8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "29c90fc24c931d83", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "158a2b9b4b131d74", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5ba2da84f0acb87c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "cfc721b24818b751", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "0b7229cd38e1fd9b", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7470ae9fc0d75a0b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f30f25ba39e4fd1f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "32c825407c991bbb", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7fb3976c647b2c50", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9c0745795728ea85", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "8ad75cd2e3f9b56b", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "29dc4e9f4a9b0a3a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "1901e7a5f5c08d76", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "250fbbb0f39527ce", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-4b881770d82aef57", "level": "warning", "message": {"text": "Frontend route `/subscribe` has no Link/navigate to it \u2014 app/src/App.jsx"}, "properties": {"repobilityId": "7dce9ce7c8909c76", "scanner": "scanner-primary", "fingerprint": "4b881770d82aef57", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7a69a660bf2f33e0", "level": "warning", "message": {"text": "Frontend route `/reset-password` has no Link/navigate to it \u2014 app/src/App.jsx"}, "properties": {"repobilityId": "8ba67d00d676c671", "scanner": "scanner-primary", "fingerprint": "7a69a660bf2f33e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0da447485d52c0ca", "level": "warning", "message": {"text": "Frontend route `/verify-email` has no Link/navigate to it \u2014 app/src/App.jsx"}, "properties": {"repobilityId": "131705d6f8e8b007", "scanner": "scanner-primary", "fingerprint": "0da447485d52c0ca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-da5d08ce5f127879", "level": "warning", "message": {"text": "Frontend route `/live-flow` has no Link/navigate to it \u2014 app/src/App.jsx"}, "properties": {"repobilityId": "0290c2ebf4f9a862", "scanner": "scanner-primary", "fingerprint": "da5d08ce5f127879", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-54473b6472b98867", "level": "warning", "message": {"text": "Frontend route `/theme-tracker` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx"}, "properties": {"repobilityId": "660090ef0b3790fc", "scanner": "scanner-primary", "fingerprint": "54473b6472b98867", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ac4363b4faddaeee", "level": "warning", "message": {"text": "Frontend route `/watchlists` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx"}, "properties": {"repobilityId": "39e1ecace8837797", "scanner": "scanner-primary", "fingerprint": "ac4363b4faddaeee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5e31f7213c5ee3be", "level": "warning", "message": {"text": "Frontend route `/multi-chart` has no Link/navigate to it \u2014 app/src/pages/charts/LegacyRedirect.test.jsx"}, "properties": {"repobilityId": "5142b5e9f269101d", "scanner": "scanner-primary", "fingerprint": "5e31f7213c5ee3be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-32d80007465c36c6", "level": "warning", "message": {"text": "Frontend route `/journal-2-0/calendar/:date` has no Link/navigate to it \u2014 app/src/App.jsx"}, "properties": {"repobilityId": "0228ed820acfb75a", "scanner": "scanner-primary", "fingerprint": "32d80007465c36c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-de02c018ac2ed3d5", "level": "warning", "message": {"text": "Frontend route `/journal-2-0/report` has no Link/navigate to it \u2014 app/src/App.jsx"}, "properties": {"repobilityId": "8b9aa643a8ad37e8", "scanner": "scanner-primary", "fingerprint": "de02c018ac2ed3d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5e17d306ff60892c", "level": "error", "message": {"text": "FastAPI POST `prebuild_now` without auth dependency \u2014 api/darkpool_router.py:181"}, "properties": {"repobilityId": "8953dda7b9854633", "scanner": "scanner-primary", "fingerprint": "5e17d306ff60892c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/darkpool_router.py"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-a59c88de6bce256a", "level": "error", "message": {"text": "FastAPI POST `upload_darkpool_csv` without auth dependency \u2014 api/darkpool_router.py:224"}, "properties": {"repobilityId": "8a53f5ffc03279b0", "scanner": "scanner-primary", "fingerprint": "a59c88de6bce256a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/darkpool_router.py"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-d29c8f0f3d93b627", "level": "error", "message": {"text": "FastAPI POST `upload_darkpool_text` without auth dependency \u2014 api/darkpool_router.py:253"}, "properties": {"repobilityId": "7f76c8ff945d75d2", "scanner": "scanner-primary", "fingerprint": "d29c8f0f3d93b627", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/darkpool_router.py"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-02965a671ad7cdf4", "level": "error", "message": {"text": "FastAPI POST `prune_data` without auth dependency \u2014 api/darkpool_router.py:283"}, "properties": {"repobilityId": "ccffe64027e9dbb9", "scanner": "scanner-primary", "fingerprint": "02965a671ad7cdf4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/darkpool_router.py"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-24ae2a73b92a0885", "level": "error", "message": {"text": "FastAPI DELETE `clear_data` without auth dependency \u2014 api/darkpool_router.py:297"}, "properties": {"repobilityId": "da5453b903229219", "scanner": "scanner-primary", "fingerprint": "24ae2a73b92a0885", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/darkpool_router.py"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-41c4790d23aa7f92", "level": "error", "message": {"text": "FastAPI POST `trigger_backfill` without auth dependency \u2014 api/dealer_positioning_router.py:104"}, "properties": {"repobilityId": "3372cdc381135d80", "scanner": "scanner-primary", "fingerprint": "41c4790d23aa7f92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/dealer_positioning_router.py"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-662ce8ca27054944", "level": "error", "message": {"text": "FastAPI POST `manual_compute` without auth dependency \u2014 api/dealer_positioning_router.py:164"}, "properties": {"repobilityId": "9e1621c23fb26678", "scanner": "scanner-primary", "fingerprint": "662ce8ca27054944", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/dealer_positioning_router.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-6813360e4bccf6c1", "level": "error", "message": {"text": "FastAPI POST `post_notable` without auth dependency \u2014 api/notable_flow_router.py:26"}, "properties": {"repobilityId": "f89d1f745a76720c", "scanner": "scanner-primary", "fingerprint": "6813360e4bccf6c1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/notable_flow_router.py"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-b7afab901bcdb934", "level": "error", "message": {"text": "FastAPI POST `post_single` without auth dependency \u2014 api/notable_flow_router.py:57"}, "properties": {"repobilityId": "792e61541f76e2ff", "scanner": "scanner-primary", "fingerprint": "b7afab901bcdb934", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/notable_flow_router.py"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-7261e9305d8d5575", "level": "error", "message": {"text": "FastAPI POST `update_settings` without auth dependency \u2014 api/notable_flow_router.py:76"}, "properties": {"repobilityId": "ac7613255213e562", "scanner": "scanner-primary", "fingerprint": "7261e9305d8d5575", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/notable_flow_router.py"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-dbb640ed76cf639d", "level": "error", "message": {"text": "FastAPI DELETE `clear_dedupe` without auth dependency \u2014 api/notable_flow_router.py:93"}, "properties": {"repobilityId": "be1777603d85a9cd", "scanner": "scanner-primary", "fingerprint": "dbb640ed76cf639d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/notable_flow_router.py"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-89df9c3a342de70b", "level": "error", "message": {"text": "FastAPI POST `run_snapshot` without auth dependency \u2014 api/oi_snapshot_router.py:39"}, "properties": {"repobilityId": "f52329db9556cf3d", "scanner": "scanner-primary", "fingerprint": "89df9c3a342de70b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/oi_snapshot_router.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-fcd35443c5263495", "level": "error", "message": {"text": "FastAPI POST `cancel_run` without auth dependency \u2014 api/oi_snapshot_router.py:72"}, "properties": {"repobilityId": "7969cb250be5bf42", "scanner": "scanner-primary", "fingerprint": "fcd35443c5263495", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/oi_snapshot_router.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-0b48d12e7fed4570", "level": "error", "message": {"text": "FastAPI POST `run_snapshot_sync` without auth dependency \u2014 api/oi_snapshot_router.py:81"}, "properties": {"repobilityId": "dccba085a3ec2aa8", "scanner": "scanner-primary", "fingerprint": "0b48d12e7fed4570", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/oi_snapshot_router.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-91e47a856059672f", "level": "error", "message": {"text": "FastAPI POST `confirm_trades` without auth dependency \u2014 api/oi_snapshot_router.py:154"}, "properties": {"repobilityId": "f8105d6521c936c3", "scanner": "scanner-primary", "fingerprint": "91e47a856059672f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/oi_snapshot_router.py"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-eef6b26e90d33040", "level": "error", "message": {"text": "FastAPI POST `save_watchlist` without auth dependency \u2014 api/watchlist_router.py:58"}, "properties": {"repobilityId": "5d30a4f783a0650f", "scanner": "scanner-primary", "fingerprint": "eef6b26e90d33040", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/watchlist_router.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-3aee7bcdc1ed06ee", "level": "error", "message": {"text": "FastAPI POST `schwab_refresh` without auth dependency \u2014 api/schwab_router.py:75"}, "properties": {"repobilityId": "8b02cb54142b0d8c", "scanner": "scanner-primary", "fingerprint": "3aee7bcdc1ed06ee", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/schwab_router.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-a77a9bcf232d3335", "level": "error", "message": {"text": "FastAPI POST `options_quotes_batch` without auth dependency \u2014 api/schwab_router.py:99"}, "properties": {"repobilityId": "e9af061f67709c06", "scanner": "scanner-primary", "fingerprint": "a77a9bcf232d3335", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/schwab_router.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-d319e656102bc315", "level": "error", "message": {"text": "FastAPI POST `track_contracts` without auth dependency \u2014 api/schwab_router.py:205"}, "properties": {"repobilityId": "d2af25db7f9e6994", "scanner": "scanner-primary", "fingerprint": "d319e656102bc315", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/schwab_router.py"}, "region": {"startLine": 205}}}]}, {"ruleId": "scanner-e3a497f0d49306ca", "level": "error", "message": {"text": "FastAPI POST `backfill_all_contracts` without auth dependency \u2014 api/schwab_router.py:263"}, "properties": {"repobilityId": "dd29b2c53d058935", "scanner": "scanner-primary", "fingerprint": "e3a497f0d49306ca", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/schwab_router.py"}, "region": {"startLine": 263}}}]}, {"ruleId": "scanner-dfd2b8bc5c636e01", "level": "error", "message": {"text": "FastAPI POST `get_earnings_dates` without auth dependency \u2014 api/schwab_router.py:652"}, "properties": {"repobilityId": "75e67fc85f66f411", "scanner": "scanner-primary", "fingerprint": "dfd2b8bc5c636e01", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/schwab_router.py"}, "region": {"startLine": 652}}}]}, {"ruleId": "scanner-6596581fb6bfcb7e", "level": "error", "message": {"text": "FastAPI POST `save_picks` without auth dependency \u2014 api/top_flow_router.py:32"}, "properties": {"repobilityId": "d49a129e1c83e891", "scanner": "scanner-primary", "fingerprint": "6596581fb6bfcb7e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/top_flow_router.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-2f29fe01a3785853", "level": "error", "message": {"text": "FastAPI POST `trigger_snapshot` without auth dependency \u2014 api/top_flow_router.py:45"}, "properties": {"repobilityId": "c36f230205e7a11b", "scanner": "scanner-primary", "fingerprint": "2f29fe01a3785853", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/top_flow_router.py"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-1b5adc2fddceb7d0", "level": "error", "message": {"text": "FastAPI POST `migrate_entries` without auth dependency \u2014 api/top_flow_router.py:72"}, "properties": {"repobilityId": "fa8396a9c161a919", "scanner": "scanner-primary", "fingerprint": "1b5adc2fddceb7d0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/top_flow_router.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-a12c79f77a6454f9", "level": "error", "message": {"text": "FastAPI POST `trigger_archive` without auth dependency \u2014 api/top_flow_router.py:114"}, "properties": {"repobilityId": "f094f8637d05a768", "scanner": "scanner-primary", "fingerprint": "a12c79f77a6454f9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/top_flow_router.py"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-af1361b8efbf7f8a", "level": "error", "message": {"text": "FastAPI POST `wipe_all` without auth dependency \u2014 api/top_flow_router.py:123"}, "properties": {"repobilityId": "05a2246ff15a9019", "scanner": "scanner-primary", "fingerprint": "af1361b8efbf7f8a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/top_flow_router.py"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-1851d2e874640a1e", "level": "error", "message": {"text": "FastAPI POST `review_detection` without auth dependency \u2014 api/routers/admin_patterns.py:167"}, "properties": {"repobilityId": "beda78c78b608adf", "scanner": "scanner-primary", "fingerprint": "1851d2e874640a1e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/admin_patterns.py"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-c366bc30f5cf2f4f", "level": "error", "message": {"text": "FastAPI POST `warm_universe` without auth dependency \u2014 api/routers/bars.py:186"}, "properties": {"repobilityId": "fd0408afbc780ac4", "scanner": "scanner-primary", "fingerprint": "c366bc30f5cf2f4f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/bars.py"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-17004c890e0cf079", "level": "error", "message": {"text": "FastAPI POST `warm_universe_stop` without auth dependency \u2014 api/routers/bars.py:246"}, "properties": {"repobilityId": "a1feac09aa2556c9", "scanner": "scanner-primary", "fingerprint": "17004c890e0cf079", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/bars.py"}, "region": {"startLine": 246}}}]}, {"ruleId": "scanner-caaa6c6f226ad2f0", "level": "error", "message": {"text": "FastAPI POST `refresh_bars_all_endpoint` without auth dependency \u2014 api/routers/bars.py:322"}, "properties": {"repobilityId": "923ba7c2fecca879", "scanner": "scanner-primary", "fingerprint": "caaa6c6f226ad2f0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/bars.py"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-a7d084595e1f20a2", "level": "error", "message": {"text": "FastAPI POST `refresh_bars_endpoint` without auth dependency \u2014 api/routers/bars.py:454"}, "properties": {"repobilityId": "c1e42ea152e26b9d", "scanner": "scanner-primary", "fingerprint": "a7d084595e1f20a2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/bars.py"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-aa0e52de2480b1f7", "level": "error", "message": {"text": "FastAPI POST `push_breadth_snapshot` without auth dependency \u2014 api/routers/breadth_monitor.py:61"}, "properties": {"repobilityId": "e3fc59dfc3e68517", "scanner": "scanner-primary", "fingerprint": "aa0e52de2480b1f7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/breadth_monitor.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-d75cce6a37409b16", "level": "error", "message": {"text": "FastAPI DELETE `delete_breadth_snapshot` without auth dependency \u2014 api/routers/breadth_monitor.py:101"}, "properties": {"repobilityId": "4e3975286b50ec36", "scanner": "scanner-primary", "fingerprint": "d75cce6a37409b16", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/breadth_monitor.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-5b9c93feac2237ff", "level": "error", "message": {"text": "FastAPI POST `breadth_industries` without auth dependency \u2014 api/routers/breadth_monitor.py:128"}, "properties": {"repobilityId": "18409b69baf03e3e", "scanner": "scanner-primary", "fingerprint": "5b9c93feac2237ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/breadth_monitor.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-da7718a34ed0af33", "level": "error", "message": {"text": "FastAPI POST `breadth_industries_refresh` without auth dependency \u2014 api/routers/breadth_monitor.py:173"}, "properties": {"repobilityId": "835bbc54aa1f7559", "scanner": "scanner-primary", "fingerprint": "da7718a34ed0af33", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/breadth_monitor.py"}, "region": {"startLine": 173}}}]}, {"ruleId": "scanner-cdaa8bab05246714", "level": "error", "message": {"text": "FastAPI PATCH `patch_breadth_field` without auth dependency \u2014 api/routers/breadth_monitor.py:185"}, "properties": {"repobilityId": "eaaf0cc9196f45b0", "scanner": "scanner-primary", "fingerprint": "cdaa8bab05246714", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/breadth_monitor.py"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-6db43d673376b1c1", "level": "error", "message": {"text": "FastAPI POST `forgot_password` without auth dependency \u2014 api/routers/auth.py:312"}, "properties": {"repobilityId": "9e754b1835c62818", "scanner": "scanner-primary", "fingerprint": "6db43d673376b1c1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/auth.py"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-a313d1ab68a53844", "level": "error", "message": {"text": "FastAPI POST `reset_password` without auth dependency \u2014 api/routers/auth.py:325"}, "properties": {"repobilityId": "8ef6c583c6e15478", "scanner": "scanner-primary", "fingerprint": "a313d1ab68a53844", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/auth.py"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-f015c5e64528b6ea", "level": "error", "message": {"text": "FastAPI POST `verify_email` without auth dependency \u2014 api/routers/auth.py:349"}, "properties": {"repobilityId": "19648f15de3b585b", "scanner": "scanner-primary", "fingerprint": "f015c5e64528b6ea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/auth.py"}, "region": {"startLine": 349}}}]}, {"ruleId": "scanner-8004d888fbac4f00", "level": "error", "message": {"text": "FastAPI POST `refresh_theme_performance` without auth dependency \u2014 api/routers/theme_performance.py:46"}, "properties": {"repobilityId": "022282479f25f362", "scanner": "scanner-primary", "fingerprint": "8004d888fbac4f00", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/theme_performance.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-3d9959730bd029b2", "level": "error", "message": {"text": "FastAPI POST `push_wire_data` without auth dependency \u2014 api/routers/push.py:18"}, "properties": {"repobilityId": "4618d83a845b3aa8", "scanner": "scanner-primary", "fingerprint": "3d9959730bd029b2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/push.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-1b5c12460ef8b73c", "level": "error", "message": {"text": "FastAPI POST `push_intraday` without auth dependency \u2014 api/routers/push.py:75"}, "properties": {"repobilityId": "a8216fe6dc2cc8b7", "scanner": "scanner-primary", "fingerprint": "1b5c12460ef8b73c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/push.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-05217412992c595f", "level": "error", "message": {"text": "FastAPI POST `stripe_webhook` without auth dependency \u2014 api/routers/webhooks.py:14"}, "properties": {"repobilityId": "de332c8c42159c8e", "scanner": "scanner-primary", "fingerprint": "05217412992c595f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/webhooks.py"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-cbe53abed7c0b37e", "level": "error", "message": {"text": "FastAPI POST `prewarm_logos` without auth dependency \u2014 api/routers/ticker_logos.py:35"}, "properties": {"repobilityId": "835ab564b25285fa", "scanner": "scanner-primary", "fingerprint": "cbe53abed7c0b37e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/ticker_logos.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-37d89107edd7d2f9", "level": "error", "message": {"text": "FastAPI POST `run_backtest` without auth dependency \u2014 api/routers/backtest.py:27"}, "properties": {"repobilityId": "c99ecf545103a897", "scanner": "scanner-primary", "fingerprint": "37d89107edd7d2f9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/backtest.py"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-ae97ac31b01ce51c", "level": "error", "message": {"text": "FastAPI POST `post_feedback` without auth dependency \u2014 api/routers/patterns.py:844"}, "properties": {"repobilityId": "fbd8e2e22b25df4a", "scanner": "scanner-primary", "fingerprint": "ae97ac31b01ce51c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/patterns.py"}, "region": {"startLine": 844}}}]}, {"ruleId": "scanner-ba985ad5d070afe6", "level": "error", "message": {"text": "FastAPI POST `manual_refresh` without auth dependency \u2014 api/routers/cot.py:35"}, "properties": {"repobilityId": "fb65bb5d01353c32", "scanner": "scanner-primary", "fingerprint": "ba985ad5d070afe6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/cot.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-7cbf2b19034c6cb8", "level": "error", "message": {"text": "FastAPI POST `force_reseed` without auth dependency \u2014 api/routers/cot.py:42"}, "properties": {"repobilityId": "f843e15775682505", "scanner": "scanner-primary", "fingerprint": "7cbf2b19034c6cb8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/cot.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-ea985139565c10d6", "level": "error", "message": {"text": "FastAPI POST `read_alert` without auth dependency \u2014 api/routers/alerts.py:14"}, "properties": {"repobilityId": "55aa54a37aea9406", "scanner": "scanner-primary", "fingerprint": "ea985139565c10d6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/alerts.py"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-9780027fa8777deb", "level": "error", "message": {"text": "FastAPI POST `read_all` without auth dependency \u2014 api/routers/alerts.py:21"}, "properties": {"repobilityId": "213342f410f03295", "scanner": "scanner-primary", "fingerprint": "9780027fa8777deb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/alerts.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-5a2faf64d966ee9a", "level": "error", "message": {"text": "FastAPI POST `add_trade` without auth dependency \u2014 api/routers/trades.py:46"}, "properties": {"repobilityId": "35c4920b1f9e8792", "scanner": "scanner-primary", "fingerprint": "5a2faf64d966ee9a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/trades.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-7c841cb3ab170278", "level": "error", "message": {"text": "FastAPI POST `track_event` without auth dependency \u2014 api/routers/landing_analytics.py:69"}, "properties": {"repobilityId": "3b7f6a3ce733a7f3", "scanner": "scanner-primary", "fingerprint": "7c841cb3ab170278", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/landing_analytics.py"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-bfa367affc015ae9", "level": "error", "message": {"text": "Dangling fetch: POST /api/landing-analytics/event (app/src/utils/landingTrack.js:58)"}, "properties": {"repobilityId": "125d4beae07ead25", "scanner": "scanner-primary", "fingerprint": "bfa367affc015ae9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-27b60640b0e358d6", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/feedback (app/src/components/FeedbackWidget.jsx:76)"}, "properties": {"repobilityId": "570b30e29a7467d7", "scanner": "scanner-primary", "fingerprint": "27b60640b0e358d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8da31ae5c98101cf", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/track (app/src/components/Layout.jsx:26)"}, "properties": {"repobilityId": "76b8f5f2cf2bedcd", "scanner": "scanner-primary", "fingerprint": "8da31ae5c98101cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-68ec8baba17878a4", "level": "error", "message": {"text": "Dangling fetch: PUT /api/modelbook/stock/${stockId}/intraday-day (app/src/components/IntradayDayPopover.jsx:87)"}, "properties": {"repobilityId": "e5c0ec2a1de747fa", "scanner": "scanner-primary", "fingerprint": "68ec8baba17878a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3dc74ba8444e9c65", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/tool-call-stats (app/src/components/voice/VoiceTelemetryPanel.jsx:33)"}, "properties": {"repobilityId": "86c7c638a9a69666", "scanner": "scanner-primary", "fingerprint": "3dc74ba8444e9c65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aab347b9b2c24ef7", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/feedback/corrections (app/src/components/voice/VoiceTelemetryPanel.jsx:34)"}, "properties": {"repobilityId": "ae8025c8f3ca290f", "scanner": "scanner-primary", "fingerprint": "aab347b9b2c24ef7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8a05d6f939aea06", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/feedback (app/src/components/voice/VoiceTelemetryPanel.jsx:35)"}, "properties": {"repobilityId": "00be0641aebf2db1", "scanner": "scanner-primary", "fingerprint": "c8a05d6f939aea06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2cccf7ca6f37826d", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/failure-patterns (app/src/components/voice/VoiceTelemetryPanel.jsx:36)"}, "properties": {"repobilityId": "1e0d0fdeb6614999", "scanner": "scanner-primary", "fingerprint": "2cccf7ca6f37826d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-75556f886c3d40f1", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/agents/stats?days=30 (app/src/components/voice/VoiceTelemetryPanel.jsx:37)"}, "properties": {"repobilityId": "6bb4ef52eb64b651", "scanner": "scanner-primary", "fingerprint": "75556f886c3d40f1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f71f53ee393191c2", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/reward/scoreboard?days=30 (app/src/components/voice/VoiceTelemetryPanel.jsx:38)"}, "properties": {"repobilityId": "e0f3f6d013d53121", "scanner": "scanner-primary", "fingerprint": "f71f53ee393191c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1951ce9d36d7b9a6", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/cost (app/src/components/voice/VoiceTelemetryPanel.jsx:39)"}, "properties": {"repobilityId": "37e670877c7c4254", "scanner": "scanner-primary", "fingerprint": "1951ce9d36d7b9a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-977d7353f94717a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/settings (app/src/components/voice/AudioPlayerBar.jsx:52)"}, "properties": {"repobilityId": "80733ed4ab4a1243", "scanner": "scanner-primary", "fingerprint": "977d7353f94717a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72fd14e3050e02ab", "level": "error", "message": {"text": "Dangling fetch: PUT /api/voice/settings (app/src/components/voice/AudioPlayerBar.jsx:191)"}, "properties": {"repobilityId": "8e52e30a630fcf93", "scanner": "scanner-primary", "fingerprint": "72fd14e3050e02ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d13302018ab466fa", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/feedback (app/src/components/voice/TranscriptBubble.jsx:24)"}, "properties": {"repobilityId": "0f51266002ed7a66", "scanner": "scanner-primary", "fingerprint": "d13302018ab466fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a23e8ba573a43128", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/insights (app/src/components/voice/VoiceInsightsPanel.jsx:37)"}, "properties": {"repobilityId": "00458ff08233bf50", "scanner": "scanner-primary", "fingerprint": "a23e8ba573a43128", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b1e7906c9405257b", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/insights/${id}/dismiss (app/src/components/voice/VoiceInsightsPanel.jsx:52)"}, "properties": {"repobilityId": "d5a48fd1300011dc", "scanner": "scanner-primary", "fingerprint": "b1e7906c9405257b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2fef4cfa451cc328", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/insights/scan (app/src/components/voice/VoiceInsightsPanel.jsx:65)"}, "properties": {"repobilityId": "38afcf7d3021e21a", "scanner": "scanner-primary", "fingerprint": "2fef4cfa451cc328", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f5dceb247fb65e0", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/vision/upload (app/src/components/voice/VisionAttachButton.jsx:46)"}, "properties": {"repobilityId": "2376764babbfe532", "scanner": "scanner-primary", "fingerprint": "2f5dceb247fb65e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38d95da5d3950af7", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/sessions?limit=50 (app/src/components/voice/VoiceSessionsPanel.jsx:24)"}, "properties": {"repobilityId": "a6b878d3aa073048", "scanner": "scanner-primary", "fingerprint": "38d95da5d3950af7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-17ba464e5dc274c4", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/sessions/${sid}/trace (app/src/components/voice/VoiceSessionsPanel.jsx:40)"}, "properties": {"repobilityId": "2d8edcbfaad45cbc", "scanner": "scanner-primary", "fingerprint": "17ba464e5dc274c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3a25a102303d8225", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/agents (app/src/components/voice/AgentPicker.jsx:30)"}, "properties": {"repobilityId": "ee8d10c4c8b622c6", "scanner": "scanner-primary", "fingerprint": "3a25a102303d8225", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-79488fa1c3472200", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/documents (app/src/components/voice/VoiceDocumentsPanel.jsx:26)"}, "properties": {"repobilityId": "e875322fd43b4093", "scanner": "scanner-primary", "fingerprint": "79488fa1c3472200", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e4425b3488bafd8", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/documents/upload (app/src/components/voice/VoiceDocumentsPanel.jsx:49)"}, "properties": {"repobilityId": "2720fc4af9f225d9", "scanner": "scanner-primary", "fingerprint": "1e4425b3488bafd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-21797b19bcb3c3ec", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/documents/ingest-text (app/src/components/voice/VoiceDocumentsPanel.jsx:74)"}, "properties": {"repobilityId": "287abcc21271ed78", "scanner": "scanner-primary", "fingerprint": "21797b19bcb3c3ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c7e522af1e3619d3", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/voice/documents/${docId} (app/src/components/voice/VoiceDocumentsPanel.jsx:98)"}, "properties": {"repobilityId": "3aef6b5359286b8c", "scanner": "scanner-primary", "fingerprint": "c7e522af1e3619d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-318b5711fe60de56", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/twitter-accounts (app/src/components/admin/TwitterAccountsPanel.jsx:64)"}, "properties": {"repobilityId": "414c593a9611ed48", "scanner": "scanner-primary", "fingerprint": "318b5711fe60de56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bfec592fdb5ae1ac", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/twitter-accounts/${handle} (app/src/components/admin/TwitterAccountsPanel.jsx:80)"}, "properties": {"repobilityId": "554234891d47c5cf", "scanner": "scanner-primary", "fingerprint": "bfec592fdb5ae1ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8a80076173555d5", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/twitter-accounts/${handle} (app/src/components/admin/TwitterAccountsPanel.jsx:90)"}, "properties": {"repobilityId": "d6408bcee27b8e15", "scanner": "scanner-primary", "fingerprint": "d8a80076173555d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2afd5908d82c48f", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/twitter-accounts/${handle}/force-poll (app/src/components/admin/TwitterAccountsPanel.jsx:95)"}, "properties": {"repobilityId": "5f9f0f753cac3f3c", "scanner": "scanner-primary", "fingerprint": "a2afd5908d82c48f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-207d2d881b60e700", "level": "error", "message": {"text": "Dangling fetch: POST /api/patterns/${encodeURIComponent(detection.id)}/feedback (app/src/components/chart/PatternSidePanel.jsx:110)"}, "properties": {"repobilityId": "c896c4f89d68e408", "scanner": "scanner-primary", "fingerprint": "207d2d881b60e700", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-395c318a9cab27f7", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/avatar/${userId} (app/src/pages/Settings.jsx:77)"}, "properties": {"repobilityId": "b006d6a962d43bb9", "scanner": "scanner-primary", "fingerprint": "395c318a9cab27f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b9b0fd8b118b3faa", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/avatar (app/src/pages/Settings.jsx:93)"}, "properties": {"repobilityId": "d5da6e35b1a6cc6e", "scanner": "scanner-primary", "fingerprint": "b9b0fd8b118b3faa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bcb060991ef21958", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/avatar (app/src/pages/Settings.jsx:103)"}, "properties": {"repobilityId": "2e35111f255a1555", "scanner": "scanner-primary", "fingerprint": "bcb060991ef21958", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3359a0451428233", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/Settings.jsx:182)"}, "properties": {"repobilityId": "958c7cd0d94d7cbe", "scanner": "scanner-primary", "fingerprint": "d3359a0451428233", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9dbbd06b391ed9cd", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/Settings.jsx:293)"}, "properties": {"repobilityId": "ee896bce7d7cb934", "scanner": "scanner-primary", "fingerprint": "9dbbd06b391ed9cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9cc9557c2ea8d242", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/usage (app/src/pages/Settings.jsx:294)"}, "properties": {"repobilityId": "3c0aa8d78476c3d9", "scanner": "scanner-primary", "fingerprint": "9cc9557c2ea8d242", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4917e8949a63ed58", "level": "error", "message": {"text": "Dangling fetch: PUT /api/voice/settings (app/src/pages/Settings.jsx:309)"}, "properties": {"repobilityId": "73ce574f8eeda447", "scanner": "scanner-primary", "fingerprint": "4917e8949a63ed58", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e2e26f6d9157426", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/my-referral (app/src/pages/Settings.jsx:757)"}, "properties": {"repobilityId": "982962dcb355773a", "scanner": "scanner-primary", "fingerprint": "6e2e26f6d9157426", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a5b0cceb5d2cd8c9", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/change-password (app/src/pages/Settings.jsx:847)"}, "properties": {"repobilityId": "e174b82fc6436847", "scanner": "scanner-primary", "fingerprint": "a5b0cceb5d2cd8c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-393a2b7a6ed51d61", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/update-profile (app/src/pages/Settings.jsx:869)"}, "properties": {"repobilityId": "e0168dd0f53eeb17", "scanner": "scanner-primary", "fingerprint": "393a2b7a6ed51d61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6ee202bf42e1d3bc", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/export-data (app/src/pages/Settings.jsx:1303)"}, "properties": {"repobilityId": "01b17cd232e6041a", "scanner": "scanner-primary", "fingerprint": "6ee202bf42e1d3bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2bfc514cb0be1c58", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/tickets (app/src/pages/Support.jsx:80)"}, "properties": {"repobilityId": "ed36d7f43811674a", "scanner": "scanner-primary", "fingerprint": "2bfc514cb0be1c58", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-11b0c29f6baf3e7b", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/tickets/${ticketId} (app/src/pages/Support.jsx:92)"}, "properties": {"repobilityId": "92a194f7e88e9668", "scanner": "scanner-primary", "fingerprint": "11b0c29f6baf3e7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c53780a804b21e42", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/tickets/${activeTicketId} (app/src/pages/Support.jsx:110)"}, "properties": {"repobilityId": "d2c12aa9902a352c", "scanner": "scanner-primary", "fingerprint": "c53780a804b21e42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8f26044bfeb0a03", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/tickets (app/src/pages/Support.jsx:142)"}, "properties": {"repobilityId": "abb2940e32fc7437", "scanner": "scanner-primary", "fingerprint": "d8f26044bfeb0a03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2534e32ffa0beb72", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/tickets/${activeTicketId}/messages (app/src/pages/Support.jsx:163)"}, "properties": {"repobilityId": "4cb0cebe8489169d", "scanner": "scanner-primary", "fingerprint": "2534e32ffa0beb72", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1ca93233a9bdd394", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/tickets/${activeTicketId}/messages (app/src/pages/Support.jsx:184)"}, "properties": {"repobilityId": "25a38be13c26fae3", "scanner": "scanner-primary", "fingerprint": "1ca93233a9bdd394", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8326a6e39671a54", "level": "error", "message": {"text": "Dangling fetch: GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(sym)}&days=180&limit=100 (app/src/pages/OptionsFlow.jsx:1368)"}, "properties": {"repobilityId": "e576b766c938c5ba", "scanner": "scanner-primary", "fingerprint": "d8326a6e39671a54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cd0e89f59fef15d6", "level": "error", "message": {"text": "Dangling fetch: GET /api/flow/version (app/src/pages/OptionsFlow.jsx:1535)"}, "properties": {"repobilityId": "fd5eb074ea8e51d6", "scanner": "scanner-primary", "fingerprint": "cd0e89f59fef15d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b58e6eb52d8afde2", "level": "error", "message": {"text": "Dangling fetch: POST /api/watchlist/save (app/src/pages/OptionsFlow.jsx:2382)"}, "properties": {"repobilityId": "9b2959d078d42bdb", "scanner": "scanner-primary", "fingerprint": "b58e6eb52d8afde2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-48f491bc1f2f37ec", "level": "error", "message": {"text": "Dangling fetch: GET /api/watchlist/dates (app/src/pages/OptionsFlow.jsx:2385)"}, "properties": {"repobilityId": "f1d7ff93b668cbf6", "scanner": "scanner-primary", "fingerprint": "48f491bc1f2f37ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-efe0a9876a2a9eb3", "level": "error", "message": {"text": "Dangling fetch: POST /api/top-flow/save (app/src/pages/OptionsFlow.jsx:2514)"}, "properties": {"repobilityId": "5e971e27db3e1e7d", "scanner": "scanner-primary", "fingerprint": "efe0a9876a2a9eb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-80c524054539265f", "level": "error", "message": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:2517)"}, "properties": {"repobilityId": "0ebf516b4ab9a4f8", "scanner": "scanner-primary", "fingerprint": "80c524054539265f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d038d2ef98e4e721", "level": "error", "message": {"text": "Dangling fetch: GET /api/watchlist/dates (app/src/pages/OptionsFlow.jsx:2535)"}, "properties": {"repobilityId": "9da0c8f429c225a8", "scanner": "scanner-primary", "fingerprint": "d038d2ef98e4e721", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-977353ec435a732a", "level": "error", "message": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:2542)"}, "properties": {"repobilityId": "e5b0dc746e7e510f", "scanner": "scanner-primary", "fingerprint": "977353ec435a732a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6b2eda2f34048d17", "level": "error", "message": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:2659)"}, "properties": {"repobilityId": "fc7ce737e473d11c", "scanner": "scanner-primary", "fingerprint": "6b2eda2f34048d17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d2328408d0fffb48", "level": "error", "message": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:3053)"}, "properties": {"repobilityId": "50be7f4b6aac9e30", "scanner": "scanner-primary", "fingerprint": "d2328408d0fffb48", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-400790b19566735b", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${parseFloat(strike)}&exp=${encodeURIComponent(exp)} (app/src/pages/OptionsFlow.jsx:3115)"}, "properties": {"repobilityId": "ffd882ace1b85c67", "scanner": "scanner-primary", "fingerprint": "400790b19566735b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc8b8e90796cf406", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/contract-history?${params} (app/src/pages/OptionsFlow.jsx:3117)"}, "properties": {"repobilityId": "580487647ca298f9", "scanner": "scanner-primary", "fingerprint": "bc8b8e90796cf406", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d854f93486cbe31", "level": "error", "message": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/OptionsFlow.jsx:3135)"}, "properties": {"repobilityId": "004f46f0f44005d9", "scanner": "scanner-primary", "fingerprint": "2d854f93486cbe31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d2c705322b24f543", "level": "error", "message": {"text": "Dangling fetch: GET /api/gex/data?ticker=${encodeURIComponent(ticker)}&dte=${dte} (app/src/pages/OptionsFlow.jsx:3162)"}, "properties": {"repobilityId": "764acb067e302ede", "scanner": "scanner-primary", "fingerprint": "d2c705322b24f543", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f5e99b1ea9d0dfc4", "level": "error", "message": {"text": "Dangling fetch: GET /api/gex/data?ticker=${encodeURIComponent(sym)}&dte=month (app/src/pages/OptionsFlow.jsx:3179)"}, "properties": {"repobilityId": "ee7486904c1b4f5f", "scanner": "scanner-primary", "fingerprint": "f5e99b1ea9d0dfc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e7f7787ffba4214", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/market-summary (app/src/pages/OptionsFlow.jsx:3195)"}, "properties": {"repobilityId": "87d08e3bf9ef5bc6", "scanner": "scanner-primary", "fingerprint": "0e7f7787ffba4214", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-04ae2b2071e0ce70", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/market-narrative (app/src/pages/OptionsFlow.jsx:3204)"}, "properties": {"repobilityId": "8c5000aa90f00629", "scanner": "scanner-primary", "fingerprint": "04ae2b2071e0ce70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6aa4df2c2ae5834", "level": "error", "message": {"text": "Dangling fetch: POST /api/top-flow/snapshot (app/src/pages/OptionsFlow.jsx:7226)"}, "properties": {"repobilityId": "cd84836eaa403796", "scanner": "scanner-primary", "fingerprint": "e6aa4df2c2ae5834", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d21688edab6b671a", "level": "error", "message": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/OptionsFlow.jsx:7226)"}, "properties": {"repobilityId": "1ee15ff1e05caf19", "scanner": "scanner-primary", "fingerprint": "d21688edab6b671a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0fd53b1cf828456b", "level": "error", "message": {"text": "Dangling fetch: GET /api/darkpool/ticker-detail?sym=${encodeURIComponent(it.t)}&days=${tf.days}&limit=${tf.limit} (app/src/pages/DarkPool.jsx:1031)"}, "properties": {"repobilityId": "9d7e60bee9b7a3f4", "scanner": "scanner-primary", "fingerprint": "0fd53b1cf828456b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c629ba3245e9b7c", "level": "error", "message": {"text": "Dangling fetch: POST /api/darkpool/prebuild (app/src/pages/DarkPool.jsx:2845)"}, "properties": {"repobilityId": "a7eb88dd2c289347", "scanner": "scanner-primary", "fingerprint": "1c629ba3245e9b7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-274aa58a785d6a88", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/forgot-password (app/src/pages/ForgotPassword.jsx:16)"}, "properties": {"repobilityId": "82b46eb9160fcd6a", "scanner": "scanner-primary", "fingerprint": "274aa58a785d6a88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e39f415b1d5ea611", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/verify-email (app/src/pages/VerifyEmail.jsx:25)"}, "properties": {"repobilityId": "070673641b8bd35d", "scanner": "scanner-primary", "fingerprint": "e39f415b1d5ea611", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bbfbcd02fc1dfa81", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/reset-password (app/src/pages/ResetPassword.jsx:29)"}, "properties": {"repobilityId": "3c8b39eeb2780d53", "scanner": "scanner-primary", "fingerprint": "bbfbcd02fc1dfa81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7deb65e2600e6b2f", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/send-announcement (app/src/pages/Admin.jsx:254)"}, "properties": {"repobilityId": "90e17d067f0b55e7", "scanner": "scanner-primary", "fingerprint": "7deb65e2600e6b2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4fde52db3bb92f83", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/todos (app/src/pages/Admin.jsx:334)"}, "properties": {"repobilityId": "e8eba96f373f5a3f", "scanner": "scanner-primary", "fingerprint": "4fde52db3bb92f83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-422bc02bdb7f9905", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/todos (app/src/pages/Admin.jsx:348)"}, "properties": {"repobilityId": "7829dc0dc69cf882", "scanner": "scanner-primary", "fingerprint": "422bc02bdb7f9905", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c9c91bbd8604580c", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/todos/${todo.id}/done (app/src/pages/Admin.jsx:364)"}, "properties": {"repobilityId": "75e9fad0f39eb113", "scanner": "scanner-primary", "fingerprint": "c9c91bbd8604580c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76f899c63e23c121", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/admin/todos/${todo.id} (app/src/pages/Admin.jsx:377)"}, "properties": {"repobilityId": "8f0ac40bb4f633c7", "scanner": "scanner-primary", "fingerprint": "76f899c63e23c121", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6395ce13af71c351", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/analytics?days=7 (app/src/pages/Admin.jsx:588)"}, "properties": {"repobilityId": "b967f99a55f0948f", "scanner": "scanner-primary", "fingerprint": "6395ce13af71c351", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f6afb259d35fe47", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/tags (app/src/pages/Admin.jsx:655)"}, "properties": {"repobilityId": "4570caf1c5577e14", "scanner": "scanner-primary", "fingerprint": "3f6afb259d35fe47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5975ef479e93b236", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:660)"}, "properties": {"repobilityId": "e2f851bfca4465d6", "scanner": "scanner-primary", "fingerprint": "5975ef479e93b236", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cda503e6d87c2bd4", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/admin/users/${userId}/tags/${encodeURIComponent(tag)} (app/src/pages/Admin.jsx:668)"}, "properties": {"repobilityId": "86732a4bad2b03d5", "scanner": "scanner-primary", "fingerprint": "cda503e6d87c2bd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffbd73fd377dd25b", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:669)"}, "properties": {"repobilityId": "c3f7d533982ec3be", "scanner": "scanner-primary", "fingerprint": "ffbd73fd377dd25b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a2b293a5829b717", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:679)"}, "properties": {"repobilityId": "51a5100d9cc373b8", "scanner": "scanner-primary", "fingerprint": "8a2b293a5829b717", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f313a6360bc8e664", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:702)"}, "properties": {"repobilityId": "e4238ec1463f28d3", "scanner": "scanner-primary", "fingerprint": "f313a6360bc8e664", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3f2927fbc6bd179", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/verify (app/src/pages/Admin.jsx:708)"}, "properties": {"repobilityId": "14ca374613daaa77", "scanner": "scanner-primary", "fingerprint": "d3f2927fbc6bd179", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d5c3c296586c0a48", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/reset-password (app/src/pages/Admin.jsx:710)"}, "properties": {"repobilityId": "82b8d6614fde39c3", "scanner": "scanner-primary", "fingerprint": "d5c3c296586c0a48", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b290c0d9e67e1b9e", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:716)"}, "properties": {"repobilityId": "0797649813d66ab7", "scanner": "scanner-primary", "fingerprint": "b290c0d9e67e1b9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07c22d3e154cf774", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:723)"}, "properties": {"repobilityId": "66a3c3d11bd8f1e2", "scanner": "scanner-primary", "fingerprint": "07c22d3e154cf774", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e7896a451d218356", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/notes (app/src/pages/Admin.jsx:747)"}, "properties": {"repobilityId": "e6e529cde7837f79", "scanner": "scanner-primary", "fingerprint": "e7896a451d218356", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b2c8102cd213039e", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:755)"}, "properties": {"repobilityId": "953a78690c5997e3", "scanner": "scanner-primary", "fingerprint": "b2c8102cd213039e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6c48ba4d1ba5aec9", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/tickets/${ticketId} (app/src/pages/Admin.jsx:1089)"}, "properties": {"repobilityId": "f77adaae8fd3d751", "scanner": "scanner-primary", "fingerprint": "6c48ba4d1ba5aec9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-782e503172368949", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/tickets/${ticketId} (app/src/pages/Admin.jsx:1114)"}, "properties": {"repobilityId": "e72047492c4f779c", "scanner": "scanner-primary", "fingerprint": "782e503172368949", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28dc0701f6b5a713", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/reply (app/src/pages/Admin.jsx:1136)"}, "properties": {"repobilityId": "af1133902684fc89", "scanner": "scanner-primary", "fingerprint": "28dc0701f6b5a713", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a858f79dcce07e3d", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/status (app/src/pages/Admin.jsx:1153)"}, "properties": {"repobilityId": "45297604255d42c0", "scanner": "scanner-primary", "fingerprint": "a858f79dcce07e3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e28991f0e9296bca", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/tickets/${ticketId}/status (app/src/pages/Admin.jsx:1165)"}, "properties": {"repobilityId": "e513b080295283ca", "scanner": "scanner-primary", "fingerprint": "e28991f0e9296bca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4fac8e016b0b2fae", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/stats (app/src/pages/Admin.jsx:1348)"}, "properties": {"repobilityId": "519fcb2c84b084bb", "scanner": "scanner-primary", "fingerprint": "4fac8e016b0b2fae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a079ba04fc93f736", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/mrr-history?days=90 (app/src/pages/Admin.jsx:1359)"}, "properties": {"repobilityId": "c5f68ce7a32afef7", "scanner": "scanner-primary", "fingerprint": "a079ba04fc93f736", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0a7dff041ffe66ff", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/users?${params} (app/src/pages/Admin.jsx:1373)"}, "properties": {"repobilityId": "4762702dd7edc844", "scanner": "scanner-primary", "fingerprint": "0a7dff041ffe66ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94755716847c22c9", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/activity?limit=30 (app/src/pages/Admin.jsx:1389)"}, "properties": {"repobilityId": "905e1b286aa47973", "scanner": "scanner-primary", "fingerprint": "94755716847c22c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0524d5e0b1791630", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/active-now (app/src/pages/Admin.jsx:1408)"}, "properties": {"repobilityId": "5fbb4cde6a380cdf", "scanner": "scanner-primary", "fingerprint": "0524d5e0b1791630", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e9fcba76906913b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/referrals (app/src/pages/Admin.jsx:1432)"}, "properties": {"repobilityId": "b2047eaccf76262f", "scanner": "scanner-primary", "fingerprint": "e9fcba76906913b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-541d6e0c2d16cd43", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/maintenance (app/src/pages/Admin.jsx:1450)"}, "properties": {"repobilityId": "4fc9f260c48f60fb", "scanner": "scanner-primary", "fingerprint": "541d6e0c2d16cd43", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d1de80e970b6e4e5", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/feedback?limit=50 (app/src/pages/Admin.jsx:1466)"}, "properties": {"repobilityId": "f7eb1cc17f894808", "scanner": "scanner-primary", "fingerprint": "d1de80e970b6e4e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f9f19af169b5367", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/tickets/stats (app/src/pages/Admin.jsx:1477)"}, "properties": {"repobilityId": "eb2bab60c21b9ca0", "scanner": "scanner-primary", "fingerprint": "0f9f19af169b5367", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3982903af9fcc64c", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/admin/tickets?${params} (app/src/pages/Admin.jsx:1487)"}, "properties": {"repobilityId": "95c25d984268ccce", "scanner": "scanner-primary", "fingerprint": "3982903af9fcc64c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b7aa050ecb96f0f", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:1519)"}, "properties": {"repobilityId": "2ee71adfe008bc5b", "scanner": "scanner-primary", "fingerprint": "7b7aa050ecb96f0f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e522f5c295d070e4", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/users/${uid}/verify (app/src/pages/Admin.jsx:1533)"}, "properties": {"repobilityId": "ec43266094c273fc", "scanner": "scanner-primary", "fingerprint": "e522f5c295d070e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8b677f2f5fb109e", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/users/${uid}/tags (app/src/pages/Admin.jsx:1542)"}, "properties": {"repobilityId": "f032d774861e6a24", "scanner": "scanner-primary", "fingerprint": "c8b677f2f5fb109e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-539185b01cd914db", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/comp-access (app/src/pages/Admin.jsx:1558)"}, "properties": {"repobilityId": "6c208a3c5a339e49", "scanner": "scanner-primary", "fingerprint": "539185b01cd914db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af86ec890965b58c", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/users/${userId}/verify (app/src/pages/Admin.jsx:1580)"}, "properties": {"repobilityId": "49c9253d7a72582d", "scanner": "scanner-primary", "fingerprint": "af86ec890965b58c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6ebd602773dfee8", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/admin/users/${userId} (app/src/pages/Admin.jsx:1600)"}, "properties": {"repobilityId": "80c3f3c46d56747c", "scanner": "scanner-primary", "fingerprint": "a6ebd602773dfee8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b4edac16d76a126", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/admin/sync-subscriptions (app/src/pages/Admin.jsx:1618)"}, "properties": {"repobilityId": "611fe56265746c4e", "scanner": "scanner-primary", "fingerprint": "5b4edac16d76a126", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e69eb30a3ca09860", "level": "error", "message": {"text": "Dangling fetch: GET /api/cot/${symbol}?weeks=${weeks} (app/src/pages/CotData.jsx:229)"}, "properties": {"repobilityId": "f5d7fe6c45bec6a7", "scanner": "scanner-primary", "fingerprint": "e69eb30a3ca09860", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-88d3c1200f875ad1", "level": "error", "message": {"text": "Dangling fetch: POST /api/modelbook/stocks (app/src/pages/ModelBook.jsx:351)"}, "properties": {"repobilityId": "c4a8e82ea31d3215", "scanner": "scanner-primary", "fingerprint": "88d3c1200f875ad1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-40f1d81411c668b2", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/modelbook/catalyst/${id} (app/src/pages/ModelBook.jsx:1107)"}, "properties": {"repobilityId": "32e2b236a7d72d5c", "scanner": "scanner-primary", "fingerprint": "40f1d81411c668b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-913edc739205f1ce", "level": "error", "message": {"text": "Dangling fetch: PUT /api/modelbook/index-drawings?symbol=%5EIXIC (app/src/pages/ModelBook.jsx:1138)"}, "properties": {"repobilityId": "d309b83c41edb074", "scanner": "scanner-primary", "fingerprint": "913edc739205f1ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c7aa4c67dc96483", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/modelbook/setup/${id} (app/src/pages/ModelBook.jsx:1176)"}, "properties": {"repobilityId": "c9632b11d84b5e27", "scanner": "scanner-primary", "fingerprint": "2c7aa4c67dc96483", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-458d80171c47138b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/modelbook/setup/${id} (app/src/pages/ModelBook.jsx:1190)"}, "properties": {"repobilityId": "7e95f915584e4034", "scanner": "scanner-primary", "fingerprint": "458d80171c47138b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5eced4c32574caf", "level": "error", "message": {"text": "Dangling fetch: POST /api/modelbook/setup/${id}/describe (app/src/pages/ModelBook.jsx:1206)"}, "properties": {"repobilityId": "d6ce3dd6970800b2", "scanner": "scanner-primary", "fingerprint": "c5eced4c32574caf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46e3235eb5218284", "level": "error", "message": {"text": "Dangling fetch: GET /api/modelbook/setup/${id}/describe-status (app/src/pages/ModelBook.jsx:1217)"}, "properties": {"repobilityId": "e7f7bab0e751022a", "scanner": "scanner-primary", "fingerprint": "46e3235eb5218284", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-53c7121493d6cb56", "level": "error", "message": {"text": "Dangling fetch: PUT /api/modelbook/stock/${stock.id}/bars (app/src/pages/ModelBook.jsx:1248)"}, "properties": {"repobilityId": "92ee5f7a7ccf01b9", "scanner": "scanner-primary", "fingerprint": "53c7121493d6cb56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-880cffa853d8a61a", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/modelbook/stock/${stock.id}/bars (app/src/pages/ModelBook.jsx:1265)"}, "properties": {"repobilityId": "f35c447e78b3fc6c", "scanner": "scanner-primary", "fingerprint": "880cffa853d8a61a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea75b7940e5c1876", "level": "error", "message": {"text": "Dangling fetch: PUT /api/modelbook/stock/${stock.id} (app/src/pages/ModelBook.jsx:1272)"}, "properties": {"repobilityId": "0a6aa6aa9c51aab4", "scanner": "scanner-primary", "fingerprint": "ea75b7940e5c1876", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b3d27b70a658d103", "level": "error", "message": {"text": "Dangling fetch: POST /api/modelbook/stock/${stock.id}/descriptions/generate (app/src/pages/ModelBook.jsx:1287)"}, "properties": {"repobilityId": "dafd1e4f84cebb52", "scanner": "scanner-primary", "fingerprint": "b3d27b70a658d103", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07e2148660c8b0b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/modelbook/all-stocks (app/src/pages/ModelBook.jsx:1905)"}, "properties": {"repobilityId": "7bb8d54b179d1e54", "scanner": "scanner-primary", "fingerprint": "07e2148660c8b0b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e0b2527cdacaefd3", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/modelbook/stock/${s.id} (app/src/pages/ModelBook.jsx:1965)"}, "properties": {"repobilityId": "c6d5f0a5d317243f", "scanner": "scanner-primary", "fingerprint": "e0b2527cdacaefd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c832aea6918950d3", "level": "error", "message": {"text": "Dangling fetch: GET /api/bars/%5EIXIC?tf=D&bars=8000 (app/src/pages/ModelBook.jsx:2013)"}, "properties": {"repobilityId": "a300faefca26fa56", "scanner": "scanner-primary", "fingerprint": "c832aea6918950d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d54ca2c197a7b97", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/resend-verification (app/src/pages/VerifyPending.jsx:17)"}, "properties": {"repobilityId": "8e5af5a17e001bdf", "scanner": "scanner-primary", "fingerprint": "4d54ca2c197a7b97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-54eb157b6979139e", "level": "error", "message": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:1082)"}, "properties": {"repobilityId": "d29b407848dd45e9", "scanner": "scanner-primary", "fingerprint": "54eb157b6979139e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f8c7a67d3ee7d4fe", "level": "error", "message": {"text": "Dangling fetch: POST /api/top-flow/save (app/src/pages/LiveFlow.jsx:1113)"}, "properties": {"repobilityId": "e80c3207f3a54acb", "scanner": "scanner-primary", "fingerprint": "f8c7a67d3ee7d4fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3cf105aca843f9b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:1116)"}, "properties": {"repobilityId": "88279c52986be555", "scanner": "scanner-primary", "fingerprint": "3cf105aca843f9b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-111fcabaacc977c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1146)"}, "properties": {"repobilityId": "558052011a1a346b", "scanner": "scanner-primary", "fingerprint": "111fcabaacc977c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-601c12c6df6e57aa", "level": "error", "message": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1500)"}, "properties": {"repobilityId": "14f4724a4ed43521", "scanner": "scanner-primary", "fingerprint": "601c12c6df6e57aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d582f023b50c4c2", "level": "error", "message": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/LiveFlow.jsx:1507)"}, "properties": {"repobilityId": "f2d6948dc9e406db", "scanner": "scanner-primary", "fingerprint": "2d582f023b50c4c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b66d0bf3f5a7a88", "level": "error", "message": {"text": "Dangling fetch: GET /api/uw/contract-history?${params} (app/src/pages/LiveFlow.jsx:1566)"}, "properties": {"repobilityId": "de8f1852b66bcf1b", "scanner": "scanner-primary", "fingerprint": "7b66d0bf3f5a7a88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5ed395786ee13817", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/backfill-contract?sym=${encodeURIComponent(sym)}&cp=${encodeURIComponent(cp)}&strike=${parseFloat(strike)}&exp=${encodeURIComponent(exp)} (app/src/pages/LiveFlow.jsx:1573)"}, "properties": {"repobilityId": "ece5fc5cfb65dd17", "scanner": "scanner-primary", "fingerprint": "5ed395786ee13817", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec4dab714edf14f7", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/contract-history?${params} (app/src/pages/LiveFlow.jsx:1575)"}, "properties": {"repobilityId": "0e784666e897e472", "scanner": "scanner-primary", "fingerprint": "ec4dab714edf14f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9ae357f5b036c8c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1594)"}, "properties": {"repobilityId": "70959c1df1260455", "scanner": "scanner-primary", "fingerprint": "9ae357f5b036c8c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5560f64696f00878", "level": "error", "message": {"text": "Dangling fetch: POST /api/schwab/options-quotes (app/src/pages/LiveFlow.jsx:1617)"}, "properties": {"repobilityId": "8579789931d5ab73", "scanner": "scanner-primary", "fingerprint": "5560f64696f00878", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9ea1de4527c8dddb", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/market-summary (app/src/pages/LiveFlow.jsx:1643)"}, "properties": {"repobilityId": "3b20d787ac4251c1", "scanner": "scanner-primary", "fingerprint": "9ea1de4527c8dddb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ed419edb09075b4f", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/market-narrative (app/src/pages/LiveFlow.jsx:1652)"}, "properties": {"repobilityId": "8a78eaeaf9c787c6", "scanner": "scanner-primary", "fingerprint": "ed419edb09075b4f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e5e02557009638d", "level": "error", "message": {"text": "Dangling fetch: GET /api/schwab/snapshot-now (app/src/pages/LiveFlow.jsx:1841)"}, "properties": {"repobilityId": "be094d8423da57ae", "scanner": "scanner-primary", "fingerprint": "9e5e02557009638d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffafb3d3127cd5d2", "level": "error", "message": {"text": "Dangling fetch: POST /api/uw/options-quotes (app/src/pages/LiveFlow.jsx:1972)"}, "properties": {"repobilityId": "b112a5a9a2ce6352", "scanner": "scanner-primary", "fingerprint": "ffafb3d3127cd5d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c89bbbb28654a47", "level": "error", "message": {"text": "Dangling fetch: POST /api/top-flow/snapshot (app/src/pages/LiveFlow.jsx:2782)"}, "properties": {"repobilityId": "1d1c2c9a360c04f6", "scanner": "scanner-primary", "fingerprint": "8c89bbbb28654a47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9807448048b7cc7a", "level": "error", "message": {"text": "Dangling fetch: GET /api/top-flow/history (app/src/pages/LiveFlow.jsx:2782)"}, "properties": {"repobilityId": "4b458cb4dd68c92a", "scanner": "scanner-primary", "fingerprint": "9807448048b7cc7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be9bd975e0060e98", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/positions (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:32)"}, "properties": {"repobilityId": "7cf15843f4b0415f", "scanner": "scanner-primary", "fingerprint": "be9bd975e0060e98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2bf463581d3f5714", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/notes (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:138)"}, "properties": {"repobilityId": "8f0ef05fa18fc3be", "scanner": "scanner-primary", "fingerprint": "2bf463581d3f5714", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-acafc4f853d89f86", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/GlobalAddPositionProvider.jsx:157)"}, "properties": {"repobilityId": "b5554d9c5646283c", "scanner": "scanner-primary", "fingerprint": "acafc4f853d89f86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4edd6f5f929fd643", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:37)"}, "properties": {"repobilityId": "77dee1c23e262a43", "scanner": "scanner-primary", "fingerprint": "4edd6f5f929fd643", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a3a48376125b4dfc", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/components/PreTradeVerdictCard.jsx:68)"}, "properties": {"repobilityId": "0b6fe253bcc80ff8", "scanner": "scanner-primary", "fingerprint": "a3a48376125b4dfc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a381753657ea20ee", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/trades/import/preview (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:58)"}, "properties": {"repobilityId": "d8bdb14238377e6f", "scanner": "scanner-primary", "fingerprint": "a381753657ea20ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-20000090589744ba", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/trades/import/preview-mapped (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:85)"}, "properties": {"repobilityId": "8813b1897c109210", "scanner": "scanner-primary", "fingerprint": "20000090589744ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b82a6d64e1d87234", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/trades/import/confirm (app/src/pages/journal-2-0/components/ImportCsvModal.jsx:135)"}, "properties": {"repobilityId": "ce143d3cbd101143", "scanner": "scanner-primary", "fingerprint": "b82a6d64e1d87234", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c83e008926a2b122", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/transcribe (app/src/pages/journal-2-0/components/VoiceInputButton.jsx:121)"}, "properties": {"repobilityId": "3d3a40609af3d4ad", "scanner": "scanner-primary", "fingerprint": "c83e008926a2b122", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2080fb91c99c6907", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/components/TradeReviewCard.jsx:37)"}, "properties": {"repobilityId": "87efe6def4433efc", "scanner": "scanner-primary", "fingerprint": "2080fb91c99c6907", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77ea6428f2edd672", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/components/TradeReviewCard.jsx:49)"}, "properties": {"repobilityId": "a35e1ed874c58c95", "scanner": "scanner-primary", "fingerprint": "77ea6428f2edd672", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d61ab9e4350ff6c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:25)"}, "properties": {"repobilityId": "4307ec6ba6a892b0", "scanner": "scanner-primary", "fingerprint": "d61ab9e4350ff6c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1d91c306048d726a", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/j2/notes/${noteId}/hero (app/src/pages/journal-2-0/components/notebook/HeroImagePicker.jsx:44)"}, "properties": {"repobilityId": "cbdfe806584d300e", "scanner": "scanner-primary", "fingerprint": "1d91c306048d726a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bafe502bd9ebfd5b", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/j2/notes/${noteId} (app/src/pages/journal-2-0/components/notebook/NoteEditorPage.jsx:210)"}, "properties": {"repobilityId": "cdbb6b696a44c199", "scanner": "scanner-primary", "fingerprint": "bafe502bd9ebfd5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e058346b83ecf11", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts (app/src/pages/journal-2-0/components/accounts/NewAccountModal.jsx:46)"}, "properties": {"repobilityId": "3c11cd9636743bff", "scanner": "scanner-primary", "fingerprint": "4e058346b83ecf11", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5f4e9cb107552ad1", "level": "error", "message": {"text": "Dangling fetch: PUT /api/j2/accounts/${account.id}/goals (app/src/pages/journal-2-0/components/accounts/GoalProgress.jsx:53)"}, "properties": {"repobilityId": "c86ae44d896cf289", "scanner": "scanner-primary", "fingerprint": "5f4e9cb107552ad1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a5d6c56a28c30d24", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/j2/accounts/${acc.id} (app/src/pages/journal-2-0/components/accounts/AccountSelector.jsx:70)"}, "properties": {"repobilityId": "55df1929f460733d", "scanner": "scanner-primary", "fingerprint": "a5d6c56a28c30d24", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cefa13d089424b30", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts/${account.id}/move-all-to/${moveTo} (app/src/pages/journal-2-0/components/accounts/DeleteAccountModal.jsx:42)"}, "properties": {"repobilityId": "ae256ba3f6935ee8", "scanner": "scanner-primary", "fingerprint": "cefa13d089424b30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d4b4df36f790942", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/j2/accounts/${account.id} (app/src/pages/journal-2-0/components/accounts/DeleteAccountModal.jsx:52)"}, "properties": {"repobilityId": "e054eaac2601a1ab", "scanner": "scanner-primary", "fingerprint": "3d4b4df36f790942", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-059e7629cb1958b9", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/calendar/day/${date}/attachments (app/src/pages/journal-2-0/components/calendar/DayAttachments.jsx:81)"}, "properties": {"repobilityId": "39ef3cdf30d77ae6", "scanner": "scanner-primary", "fingerprint": "059e7629cb1958b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb160291ec40d6fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/notes/${noteId}/images (app/src/pages/journal-2-0/lib/tiptap.js:37)"}, "properties": {"repobilityId": "c54ba90530bd0822", "scanner": "scanner-primary", "fingerprint": "bb160291ec40d6fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d6fd86c5078e8621", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/profile-suggestions/${id}/dismiss (app/src/pages/journal-2-0/hooks/useProfileSuggestions.js:25)"}, "properties": {"repobilityId": "d399a20319551ae0", "scanner": "scanner-primary", "fingerprint": "d6fd86c5078e8621", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-efcf6eba498c4fcc", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/interventions/${id}/dismiss (app/src/pages/journal-2-0/hooks/useInterventions.js:29)"}, "properties": {"repobilityId": "a68d932ee2e3521b", "scanner": "scanner-primary", "fingerprint": "efcf6eba498c4fcc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0076b413c46de0fd", "level": "error", "message": {"text": "Dangling fetch: PUT /api/j2/accounts/${accountId}/settings (app/src/pages/journal-2-0/hooks/useJ2Settings.js:43)"}, "properties": {"repobilityId": "6ca85e184d20ba4e", "scanner": "scanner-primary", "fingerprint": "0076b413c46de0fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cd83f83ca3e249dc", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:58)"}, "properties": {"repobilityId": "2bc6b30aa70da876", "scanner": "scanner-primary", "fingerprint": "cd83f83ca3e249dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2469de711e3ec7a1", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/hooks/useHandsFreeWeeklyReview.js:75)"}, "properties": {"repobilityId": "7a3f24c4482c0df1", "scanner": "scanner-primary", "fingerprint": "2469de711e3ec7a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1fb69db285cdf09a", "level": "error", "message": {"text": "Dangling fetch: PUT /api/j2/calendar/day/${date}/notes (app/src/pages/journal-2-0/hooks/useJ2DayNotesMutation.js:30)"}, "properties": {"repobilityId": "31d439f0e886f55f", "scanner": "scanner-primary", "fingerprint": "1fb69db285cdf09a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f74625a1fc4395f7", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts/${accountId}/coach/pre-trade-verdict (app/src/pages/journal-2-0/hooks/usePreTradeVerdict.js:18)"}, "properties": {"repobilityId": "f9988417cef61314", "scanner": "scanner-primary", "fingerprint": "f74625a1fc4395f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78f64c3ba5a0208a", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/forget (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:128)"}, "properties": {"repobilityId": "537b83c4bee73e72", "scanner": "scanner-primary", "fingerprint": "78f64c3ba5a0208a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-abb74cfca0f0ff80", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/forget (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:137)"}, "properties": {"repobilityId": "25a0fb68d7f73566", "scanner": "scanner-primary", "fingerprint": "abb74cfca0f0ff80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aeb83693afdfe962", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/accounts/${scope}/coach/chat/skip_onboarding (app/src/pages/journal-2-0/hooks/useJ2CoachChat.js:153)"}, "properties": {"repobilityId": "2af10985d9e9006d", "scanner": "scanner-primary", "fingerprint": "aeb83693afdfe962", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ad372adacdaf4d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/settings (app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:65)"}, "properties": {"repobilityId": "c76e2916dc81cae2", "scanner": "scanner-primary", "fingerprint": "3ad372adacdaf4d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3578ce134e84a674", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts (app/src/pages/journal-2-0/hooks/useHandsFreeEodRecap.js:80)"}, "properties": {"repobilityId": "bd57a8ef9bd100fe", "scanner": "scanner-primary", "fingerprint": "3578ce134e84a674", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7db509d9320c6f89", "level": "error", "message": {"text": "Dangling fetch: PUT /api/j2/notes/${noteId} (app/src/pages/journal-2-0/hooks/useJ2Notes.js:45)"}, "properties": {"repobilityId": "3f6611b79b22812d", "scanner": "scanner-primary", "fingerprint": "7db509d9320c6f89", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0fb0451675c2cf6b", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/j2/accounts/${account.id} (app/src/pages/journal-2-0/tabs/AccountsTab.jsx:32)"}, "properties": {"repobilityId": "0c7b6f4e4a29b8c6", "scanner": "scanner-primary", "fingerprint": "0fb0451675c2cf6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f27debd1c7da9a8", "level": "error", "message": {"text": "Dangling fetch: POST /api/j2/notes (app/src/pages/journal-2-0/tabs/NotebookTab.jsx:42)"}, "properties": {"repobilityId": "1c039dd9e99acdfd", "scanner": "scanner-primary", "fingerprint": "7f27debd1c7da9a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-df4f419ba1d0435d", "level": "error", "message": {"text": "Dangling fetch: GET /api/j2/accounts/${sourceAccountId}/coach/profile (app/src/pages/journal-2-0/tabs/CompassTab.jsx:122)"}, "properties": {"repobilityId": "28109744af9eb89a", "scanner": "scanner-primary", "fingerprint": "df4f419ba1d0435d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-86e6b0fd69f1b8ba", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/patterns/${detectionId}/review (app/src/pages/admin/PatternAdmin.jsx:44)"}, "properties": {"repobilityId": "977c41b922840385", "scanner": "scanner-primary", "fingerprint": "86e6b0fd69f1b8ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d80beae5e41b826", "level": "error", "message": {"text": "Dangling fetch: GET /api/landing-analytics/summary?days=${days} (app/src/pages/admin/LandingAnalytics.jsx:16)"}, "properties": {"repobilityId": "e5c9133bdf7f1347", "scanner": "scanner-primary", "fingerprint": "7d80beae5e41b826", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-53c21b17df3603c0", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/audit/latest (app/src/pages/admin/ChartHealth.jsx:22)"}, "properties": {"repobilityId": "9808d9f6ec1a2980", "scanner": "scanner-primary", "fingerprint": "53c21b17df3603c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6a25072286988c35", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/quarantine/count (app/src/pages/admin/ChartHealth.jsx:23)"}, "properties": {"repobilityId": "7048b7ccafdc00e1", "scanner": "scanner-primary", "fingerprint": "6a25072286988c35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b0a29ace0dd6b783", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/liveness (app/src/pages/admin/ChartHealth.jsx:34)"}, "properties": {"repobilityId": "a06813b3f40c3aeb", "scanner": "scanner-primary", "fingerprint": "b0a29ace0dd6b783", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a96a7f83de9091ad", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/source-health (app/src/pages/admin/ChartHealth.jsx:44)"}, "properties": {"repobilityId": "36164fb76d576019", "scanner": "scanner-primary", "fingerprint": "a96a7f83de9091ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd913b3f93441255", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/quality (app/src/pages/admin/ChartHealth.jsx:57)"}, "properties": {"repobilityId": "b96f49fd9ae6a701", "scanner": "scanner-primary", "fingerprint": "bd913b3f93441255", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72a1dfe47d0b77c5", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/alerts (app/src/pages/admin/ChartHealth.jsx:67)"}, "properties": {"repobilityId": "0789d53fec18cf73", "scanner": "scanner-primary", "fingerprint": "72a1dfe47d0b77c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8949fb629b920f1a", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/hot-tier (app/src/pages/admin/ChartHealth.jsx:77)"}, "properties": {"repobilityId": "8ce22323dc207dc1", "scanner": "scanner-primary", "fingerprint": "8949fb629b920f1a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0b967e1885434f54", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/bars/smoke (app/src/pages/admin/ChartHealth.jsx:87)"}, "properties": {"repobilityId": "4505390f0ee33b17", "scanner": "scanner-primary", "fingerprint": "0b967e1885434f54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-71ffa2729402d958", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/bars/provenance?${params} (app/src/pages/admin/ChartHealth.jsx:111)"}, "properties": {"repobilityId": "0c5a1c85793940f8", "scanner": "scanner-primary", "fingerprint": "71ffa2729402d958", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a8f32b90ec863c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/bars/audit/run (app/src/pages/admin/ChartHealth.jsx:160)"}, "properties": {"repobilityId": "bf6f87c8d9cc18ec", "scanner": "scanner-primary", "fingerprint": "8a8f32b90ec863c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c78fa1a2bd8f19a2", "level": "error", "message": {"text": "Dangling fetch: PUT /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:424)"}, "properties": {"repobilityId": "52f5cd4996889075", "scanner": "scanner-primary", "fingerprint": "c78fa1a2bd8f19a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c3aff4e568e6425c", "level": "error", "message": {"text": "Dangling fetch: PUT /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:477)"}, "properties": {"repobilityId": "1a1caf5b9a16453c", "scanner": "scanner-primary", "fingerprint": "c3aff4e568e6425c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd144b030f46b7ca", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/modelbook/setup-example/${ex.id} (app/src/pages/modelbook/SetupsView.jsx:486)"}, "properties": {"repobilityId": "e679ed9b04877a64", "scanner": "scanner-primary", "fingerprint": "fd144b030f46b7ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-934fd22c0aaf9841", "level": "error", "message": {"text": "Dangling fetch: GET /api/journal/daily/${today} (app/src/hooks/useRealtimeSession.js:81)"}, "properties": {"repobilityId": "dacf13991f9128e9", "scanner": "scanner-primary", "fingerprint": "934fd22c0aaf9841", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c4bcb6bcf518c7cf", "level": "error", "message": {"text": "Dangling fetch: GET /api/journal/weekly/${weekStart} (app/src/hooks/useRealtimeSession.js:113)"}, "properties": {"repobilityId": "220cc0bfc8b86457", "scanner": "scanner-primary", "fingerprint": "c4bcb6bcf518c7cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb68ab5e7b493e34", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useRealtimeSession.js:130)"}, "properties": {"repobilityId": "ec565dbbf85c4164", "scanner": "scanner-primary", "fingerprint": "eb68ab5e7b493e34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ac14f15ad043f9b", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useRealtimeSession.js:147)"}, "properties": {"repobilityId": "bf5141991dba3fc0", "scanner": "scanner-primary", "fingerprint": "3ac14f15ad043f9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c41dcedaa660b603", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/session/end (app/src/hooks/useRealtimeSession.js:192)"}, "properties": {"repobilityId": "eec2083b3e43f0f8", "scanner": "scanner-primary", "fingerprint": "c41dcedaa660b603", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb4f70fe6f5ddd7c", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/transcript (app/src/hooks/useRealtimeSession.js:222)"}, "properties": {"repobilityId": "19ef547db8b69cc9", "scanner": "scanner-primary", "fingerprint": "eb4f70fe6f5ddd7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-168aa49705ff8d38", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/exec (app/src/hooks/useRealtimeSession.js:237)"}, "properties": {"repobilityId": "1550d8639e5b703b", "scanner": "scanner-primary", "fingerprint": "168aa49705ff8d38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31bf557b743d0378", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/session_token (app/src/hooks/useRealtimeSession.js:364)"}, "properties": {"repobilityId": "16d5371e624cf7aa", "scanner": "scanner-primary", "fingerprint": "31bf557b743d0378", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af80fe96c2b770a5", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/realtime/calls?model=${encodeURIComponent(tokenResp.model)} (app/src/hooks/useRealtimeSession.js:440)"}, "properties": {"repobilityId": "7522f3c57f1ec9d0", "scanner": "scanner-primary", "fingerprint": "af80fe96c2b770a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e75480c6898fb754", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/realtime?model=${encodeURIComponent(tokenResp.model)} (app/src/hooks/useRealtimeSession.js:447)"}, "properties": {"repobilityId": "d91addf9d4e31d3c", "scanner": "scanner-primary", "fingerprint": "e75480c6898fb754", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5b57de041cc6056", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/settings (app/src/hooks/useHandsFreeMorningWire.js:48)"}, "properties": {"repobilityId": "15799313f9c49501", "scanner": "scanner-primary", "fingerprint": "c5b57de041cc6056", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-71adf8acfd0834d4", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts (app/src/hooks/useHandsFreeMorningWire.js:65)"}, "properties": {"repobilityId": "1795bc94993deabf", "scanner": "scanner-primary", "fingerprint": "71adf8acfd0834d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a925345d354091fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/preferences (app/src/hooks/usePreferences.js:38)"}, "properties": {"repobilityId": "bc07a81a23b95fe0", "scanner": "scanner-primary", "fingerprint": "a925345d354091fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-993bbc293d5db381", "level": "error", "message": {"text": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:133)"}, "properties": {"repobilityId": "bb2174f498604548", "scanner": "scanner-primary", "fingerprint": "993bbc293d5db381", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:fetcher"]}}, {"ruleId": "scanner-f33d852fbd1e5200", "level": "error", "message": {"text": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:138)"}, "properties": {"repobilityId": "57006c0c22357cf2", "scanner": "scanner-primary", "fingerprint": "f33d852fbd1e5200", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:fetcher"]}}, {"ruleId": "scanner-d03f073738c905ae", "level": "error", "message": {"text": "Dangling fetch: GET /api/ticker-meta/ENPH (app/src/hooks/useTickerMeta.test.jsx:146)"}, "properties": {"repobilityId": "9a9da9d2d4f05040", "scanner": "scanner-primary", "fingerprint": "d03f073738c905ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:fetcher"]}}, {"ruleId": "scanner-9da19988a95444b0", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/oneshot (app/src/hooks/useOneShot.js:75)"}, "properties": {"repobilityId": "e24cea4efe9a23b9", "scanner": "scanner-primary", "fingerprint": "9da19988a95444b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a57d84265dfdaabe", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/insights/unspoken (app/src/hooks/useProactiveVoice.js:52)"}, "properties": {"repobilityId": "d6702113857b6917", "scanner": "scanner-primary", "fingerprint": "a57d84265dfdaabe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6ceef832579b06ce", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts (app/src/hooks/useProactiveVoice.js:62)"}, "properties": {"repobilityId": "36f313ff94262825", "scanner": "scanner-primary", "fingerprint": "6ceef832579b06ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07014332ca1bcd19", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/insights/${insight.id}/mark-spoken (app/src/hooks/useProactiveVoice.js:90)"}, "properties": {"repobilityId": "0f1a8ad8931f3258", "scanner": "scanner-primary", "fingerprint": "07014332ca1bcd19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f346ee8a5e3a3d7e", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/memory/facts (app/src/hooks/useVoiceMemory.js:19)"}, "properties": {"repobilityId": "add6fe395ac2903a", "scanner": "scanner-primary", "fingerprint": "f346ee8a5e3a3d7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-217ff34a1c5e44f0", "level": "error", "message": {"text": "Dangling fetch: GET /api/voice/memory/summaries (app/src/hooks/useVoiceMemory.js:20)"}, "properties": {"repobilityId": "494b05b409db9b32", "scanner": "scanner-primary", "fingerprint": "217ff34a1c5e44f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-29526e52da90de9a", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/memory/facts (app/src/hooks/useVoiceMemory.js:37)"}, "properties": {"repobilityId": "852b7a8f8603953c", "scanner": "scanner-primary", "fingerprint": "29526e52da90de9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9efa4fa8bb93945d", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/voice/memory/facts/${factId} (app/src/hooks/useVoiceMemory.js:48)"}, "properties": {"repobilityId": "b75cd84e4c505ba5", "scanner": "scanner-primary", "fingerprint": "9efa4fa8bb93945d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-36323601dca303d0", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/tts/prepare (app/src/hooks/useReadAloud.js:54)"}, "properties": {"repobilityId": "ccd72cf2b31dd886", "scanner": "scanner-primary", "fingerprint": "36323601dca303d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e196bfcb36e6b2df", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/me (app/src/context/AuthContext.jsx:14)"}, "properties": {"repobilityId": "d3f54059ce2bc98d", "scanner": "scanner-primary", "fingerprint": "e196bfcb36e6b2df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a61823ae8667acb", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/login (app/src/context/AuthContext.jsx:40)"}, "properties": {"repobilityId": "29381d1e701df2ee", "scanner": "scanner-primary", "fingerprint": "7a61823ae8667acb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d528097b4c7ed440", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/signup (app/src/context/AuthContext.jsx:58)"}, "properties": {"repobilityId": "60e677a9fc50492f", "scanner": "scanner-primary", "fingerprint": "d528097b4c7ed440", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f20933e03987c3b9", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/logout (app/src/context/AuthContext.jsx:74)"}, "properties": {"repobilityId": "50ea55480a675059", "scanner": "scanner-primary", "fingerprint": "f20933e03987c3b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e83e027aa8a1d38b", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/checkout (app/src/context/AuthContext.jsx:81)"}, "properties": {"repobilityId": "e8b0f4db63632051", "scanner": "scanner-primary", "fingerprint": "e83e027aa8a1d38b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-43b0edcf17a5e356", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/portal (app/src/context/AuthContext.jsx:91)"}, "properties": {"repobilityId": "f6fab6406de0c0b5", "scanner": "scanner-primary", "fingerprint": "43b0edcf17a5e356", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-23e7c1fca08ca34e", "level": "error", "message": {"text": "Dangling fetch: POST https://stooq.com/__verify (tools/stooq_fetch.mjs:42)"}, "properties": {"repobilityId": "bb1ce493d1e33640", "scanner": "scanner-primary", "fingerprint": "23e7c1fca08ca34e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b186e887b1e3877c", "level": "note", "message": {"text": "Unused endpoint: GET /data"}, "properties": {"repobilityId": "ba43dc2bebf332b9", "scanner": "scanner-primary", "fingerprint": "b186e887b1e3877c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fe10dfe860193723", "level": "note", "message": {"text": "Unused endpoint: GET /aggregated"}, "properties": {"repobilityId": "ab8c5537450cef37", "scanner": "scanner-primary", "fingerprint": "fe10dfe860193723", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a998f0c5fce5b7af", "level": "note", "message": {"text": "Unused endpoint: POST /prebuild"}, "properties": {"repobilityId": "d541163826b4af96", "scanner": "scanner-primary", "fingerprint": "a998f0c5fce5b7af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4b6dfce241343aed", "level": "note", "message": {"text": "Unused endpoint: GET /dates"}, "properties": {"repobilityId": "97ca6feb8ef305a3", "scanner": "scanner-primary", "fingerprint": "4b6dfce241343aed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6236b283b79811b8", "level": "note", "message": {"text": "Unused endpoint: POST /upload"}, "properties": {"repobilityId": "f52ac0aa8ae5fd46", "scanner": "scanner-primary", "fingerprint": "6236b283b79811b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c40554be04e90797", "level": "note", "message": {"text": "Unused endpoint: POST /upload-text"}, "properties": {"repobilityId": "f05343df0e8d3d07", "scanner": "scanner-primary", "fingerprint": "c40554be04e90797", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd8dc4599ec52a08", "level": "note", "message": {"text": "Unused endpoint: GET /stats"}, "properties": {"repobilityId": "2f36475a5793b748", "scanner": "scanner-primary", "fingerprint": "cd8dc4599ec52a08", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75735d987ceb2fae", "level": "note", "message": {"text": "Unused endpoint: POST /prune"}, "properties": {"repobilityId": "db371cdc0822f6c3", "scanner": "scanner-primary", "fingerprint": "75735d987ceb2fae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-02300358e6ee6fb2", "level": "note", "message": {"text": "Unused endpoint: DELETE /clear"}, "properties": {"repobilityId": "650b198b03738462", "scanner": "scanner-primary", "fingerprint": "02300358e6ee6fb2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d5c7de16854943f", "level": "note", "message": {"text": "Unused endpoint: GET /ticker-detail"}, "properties": {"repobilityId": "d94b5e581a443999", "scanner": "scanner-primary", "fingerprint": "9d5c7de16854943f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7efc3652edab2798", "level": "note", "message": {"text": "Unused endpoint: GET /indexes-data"}, "properties": {"repobilityId": "b5efea286a9bae27", "scanner": "scanner-primary", "fingerprint": "7efc3652edab2798", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7703e292f068ddb", "level": "note", "message": {"text": "Unused endpoint: POST /backfill"}, "properties": {"repobilityId": "6c608c691b8b0fde", "scanner": "scanner-primary", "fingerprint": "a7703e292f068ddb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aeafa64451194212", "level": "note", "message": {"text": "Unused endpoint: POST /compute/{snap_date}"}, "properties": {"repobilityId": "5ba3fbd3ed86fe38", "scanner": "scanner-primary", "fingerprint": "aeafa64451194212", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ba791f4582f5e42c", "level": "note", "message": {"text": "Unused endpoint: GET /sample"}, "properties": {"repobilityId": "160781e6b7aa2c00", "scanner": "scanner-primary", "fingerprint": "ba791f4582f5e42c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-92ac48d066f19939", "level": "note", "message": {"text": "Unused endpoint: GET /flow-sources"}, "properties": {"repobilityId": "a05cb6f1857c9302", "scanner": "scanner-primary", "fingerprint": "92ac48d066f19939", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-66ba9dbe064ddc2b", "level": "note", "message": {"text": "Unused endpoint: POST /post"}, "properties": {"repobilityId": "23d5bf4fc87edd8b", "scanner": "scanner-primary", "fingerprint": "66ba9dbe064ddc2b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2730e4de978a4748", "level": "note", "message": {"text": "Unused endpoint: POST /post-single"}, "properties": {"repobilityId": "129ae86cce0dd8fe", "scanner": "scanner-primary", "fingerprint": "2730e4de978a4748", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-512ccb0fd0b230ba", "level": "note", "message": {"text": "Unused endpoint: GET /settings"}, "properties": {"repobilityId": "100a970d269a013d", "scanner": "scanner-primary", "fingerprint": "512ccb0fd0b230ba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d9fbbfd361e91f1e", "level": "note", "message": {"text": "Unused endpoint: POST /settings"}, "properties": {"repobilityId": "406aa5f4517f6cc1", "scanner": "scanner-primary", "fingerprint": "d9fbbfd361e91f1e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-82348c7033c24008", "level": "note", "message": {"text": "Unused endpoint: GET /dedupe"}, "properties": {"repobilityId": "e57065cd7e6a2050", "scanner": "scanner-primary", "fingerprint": "82348c7033c24008", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-217ea5c158a00fd5", "level": "note", "message": {"text": "Unused endpoint: DELETE /dedupe"}, "properties": {"repobilityId": "d902a510e39efad8", "scanner": "scanner-primary", "fingerprint": "217ea5c158a00fd5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9fe9e18f727d22ba", "level": "note", "message": {"text": "Unused endpoint: GET /internal/health"}, "properties": {"repobilityId": "cc49a69d9376383a", "scanner": "scanner-primary", "fingerprint": "9fe9e18f727d22ba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69a693dfc33637f4", "level": "note", "message": {"text": "Unused endpoint: POST /run"}, "properties": {"repobilityId": "00c2414e287362f7", "scanner": "scanner-primary", "fingerprint": "69a693dfc33637f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-08320f38d1ce540a", "level": "note", "message": {"text": "Unused endpoint: GET /run-status"}, "properties": {"repobilityId": "0cc25907db5f7ecf", "scanner": "scanner-primary", "fingerprint": "08320f38d1ce540a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b4d3a1c30158c0e", "level": "note", "message": {"text": "Unused endpoint: POST /cancel"}, "properties": {"repobilityId": "0163ba8cd18626d2", "scanner": "scanner-primary", "fingerprint": "6b4d3a1c30158c0e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5f5521fb591b7e4f", "level": "note", "message": {"text": "Unused endpoint: POST /run-sync"}, "properties": {"repobilityId": "61ead3bef2bdfc73", "scanner": "scanner-primary", "fingerprint": "5f5521fb591b7e4f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-21e08ef21eba7560", "level": "note", "message": {"text": "Unused endpoint: GET /lookup"}, "properties": {"repobilityId": "65078bc1d47de706", "scanner": "scanner-primary", "fingerprint": "21e08ef21eba7560", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afc064028ae39ea9", "level": "note", "message": {"text": "Unused endpoint: GET /history"}, "properties": {"repobilityId": "91008dc48ef417a3", "scanner": "scanner-primary", "fingerprint": "afc064028ae39ea9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e26074453f93d403", "level": "note", "message": {"text": "Unused endpoint: POST /confirm"}, "properties": {"repobilityId": "c431afb7cd3e0a09", "scanner": "scanner-primary", "fingerprint": "e26074453f93d403", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bb86a49414024054", "level": "note", "message": {"text": "Unused endpoint: POST /save"}, "properties": {"repobilityId": "d96382a8bfadedb8", "scanner": "scanner-primary", "fingerprint": "bb86a49414024054", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b9d1b83bddf67843", "level": "note", "message": {"text": "Unused endpoint: GET /load/{day}"}, "properties": {"repobilityId": "3de2f51b9283c16f", "scanner": "scanner-primary", "fingerprint": "b9d1b83bddf67843", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ada652a575e62e73", "level": "note", "message": {"text": "Unused endpoint: POST /earnings"}, "properties": {"repobilityId": "d76ccdb450861b5f", "scanner": "scanner-primary", "fingerprint": "ada652a575e62e73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-18a4887e7bea6b36", "level": "note", "message": {"text": "Unused endpoint: GET /compare"}, "properties": {"repobilityId": "e236e184934ac2f2", "scanner": "scanner-primary", "fingerprint": "18a4887e7bea6b36", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a4dfcad3eb1618a", "level": "note", "message": {"text": "Unused endpoint: GET /login"}, "properties": {"repobilityId": "a7615902ebed68c9", "scanner": "scanner-primary", "fingerprint": "6a4dfcad3eb1618a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cdfb578618cf2542", "level": "note", "message": {"text": "Unused endpoint: GET /callback"}, "properties": {"repobilityId": "8a371742701dcbc7", "scanner": "scanner-primary", "fingerprint": "cdfb578618cf2542", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7ce17d6b092a81ca", "level": "note", "message": {"text": "Unused endpoint: POST /refresh"}, "properties": {"repobilityId": "7ccabfe5815810a0", "scanner": "scanner-primary", "fingerprint": "7ce17d6b092a81ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-904fa0fa5b97edc2", "level": "note", "message": {"text": "Unused endpoint: GET /options-quote"}, "properties": {"repobilityId": "06de62966f629401", "scanner": "scanner-primary", "fingerprint": "904fa0fa5b97edc2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8234d8f5d09f4363", "level": "note", "message": {"text": "Unused endpoint: POST /options-quotes"}, "properties": {"repobilityId": "7e5741bdd5a32600", "scanner": "scanner-primary", "fingerprint": "8234d8f5d09f4363", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fb1450cc18cee349", "level": "note", "message": {"text": "Unused endpoint: GET /market-summary"}, "properties": {"repobilityId": "16da42991e87a148", "scanner": "scanner-primary", "fingerprint": "fb1450cc18cee349", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fb127569aaaa3079", "level": "note", "message": {"text": "Unused endpoint: GET /market-narrative"}, "properties": {"repobilityId": "43d932a4805183ac", "scanner": "scanner-primary", "fingerprint": "fb127569aaaa3079", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e28ebacbfaf0aee7", "level": "note", "message": {"text": "Unused endpoint: POST /track-contracts"}, "properties": {"repobilityId": "df08365a1d842f26", "scanner": "scanner-primary", "fingerprint": "e28ebacbfaf0aee7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-392086cac7cb0df3", "level": "note", "message": {"text": "Unused endpoint: GET /snapshot-now"}, "properties": {"repobilityId": "91681fd1b8641285", "scanner": "scanner-primary", "fingerprint": "392086cac7cb0df3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7ffd9bb6a8ca960d", "level": "note", "message": {"text": "Unused endpoint: GET /contract-history"}, "properties": {"repobilityId": "e47290a3a51f1ef8", "scanner": "scanner-primary", "fingerprint": "7ffd9bb6a8ca960d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bf3de031c8f47566", "level": "note", "message": {"text": "Unused endpoint: GET /backfill-contract"}, "properties": {"repobilityId": "25c1b65a86f00313", "scanner": "scanner-primary", "fingerprint": "bf3de031c8f47566", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-be11230b7de14a2a", "level": "note", "message": {"text": "Unused endpoint: POST /backfill-all"}, "properties": {"repobilityId": "4f8489c5162b09bf", "scanner": "scanner-primary", "fingerprint": "be11230b7de14a2a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59fb3fd42ed9ec72", "level": "note", "message": {"text": "Unused endpoint: GET /chart-proxy"}, "properties": {"repobilityId": "b0beb3b2e9b41a0a", "scanner": "scanner-primary", "fingerprint": "59fb3fd42ed9ec72", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d45fa2b3cbf92ac", "level": "note", "message": {"text": "Unused endpoint: GET /chart-bounds"}, "properties": {"repobilityId": "f046fdd26c522a88", "scanner": "scanner-primary", "fingerprint": "9d45fa2b3cbf92ac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fa9eb22cb5c68258", "level": "note", "message": {"text": "Unused endpoint: GET /chart-ohlc"}, "properties": {"repobilityId": "edc50be5201fc046", "scanner": "scanner-primary", "fingerprint": "fa9eb22cb5c68258", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-838c001975664f9c", "level": "note", "message": {"text": "Unused endpoint: GET /earnings-test"}, "properties": {"repobilityId": "0dfa80d5d8be06c9", "scanner": "scanner-primary", "fingerprint": "838c001975664f9c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a90b3acb82fafaab", "level": "note", "message": {"text": "Unused endpoint: GET /ytd-performance"}, "properties": {"repobilityId": "fade4cc763e910ab", "scanner": "scanner-primary", "fingerprint": "a90b3acb82fafaab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}