{"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: tarascloud/personal-dashboard", "shortDescription": {"text": "Foundry mined unresolved feedback: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#9\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 9\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file'"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: tarascloud/personal-dashboard", "shortDescription": {"text": "Foundry mined blueprint gap alignment: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#8\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 8\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, "}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: tarascloud/personal-dashboard", "shortDescription": {"text": "Foundry mined test ci gap after feedback: tarascloud/personal-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: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#8\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 8\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_o"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: tarascloud/personal-dashboard", "shortDescription": {"text": "Foundry mined bad chains: tarascloud/personal-dashboard"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#9\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2217f99d2b7ab800\",\n    \"kind\": \"pull_request_"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: tarascloud/personal-dashboard", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: tarascloud/personal-dashboard"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#9\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#9\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 9\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'p"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: tarascloud/personal-dashboard", "shortDescription": {"text": "Foundry mined mock as real or placeholder: tarascloud/personal-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: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#2\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#2\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'threa"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-8c5ff81a704e302f", "name": "Possibly dead Python function: job_refresh_views", "shortDescription": {"text": "Possibly dead Python function: job_refresh_views"}, "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-c763d32e6069ff6c", "name": "Possibly dead Python function: job_daily_demo_data", "shortDescription": {"text": "Possibly dead Python function: job_daily_demo_data"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-00972c5e9b121086", "name": "Possibly dead Python function: job_detect_subscriptions", "shortDescription": {"text": "Possibly dead Python function: job_detect_subscriptions"}, "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-f3af6c01bd15fab8", "name": "Possibly dead Python function: job_prod_to_dev_sync", "shortDescription": {"text": "Possibly dead Python function: job_prod_to_dev_sync"}, "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-6c29ad0642858743", "name": "Possibly dead Python function: job_generate_snapshots", "shortDescription": {"text": "Possibly dead Python function: job_generate_snapshots"}, "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-7d3fa5b6407f2133", "name": "Possibly dead Python function: job_sync_withings", "shortDescription": {"text": "Possibly dead Python function: job_sync_withings"}, "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-cf8b87df55c5236b", "name": "Possibly dead Python function: job_sync_garmin", "shortDescription": {"text": "Possibly dead Python function: job_sync_garmin"}, "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-9d75195588f2f680", "name": "Possibly dead Python function: job_sync_bunq", "shortDescription": {"text": "Possibly dead Python function: job_sync_bunq"}, "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-faf0520ad842a00e", "name": "Possibly dead Python function: job_sync_monobank", "shortDescription": {"text": "Possibly dead Python function: job_sync_monobank"}, "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-462cfb14116917ba", "name": "Possibly dead Python function: job_mood_reminder", "shortDescription": {"text": "Possibly dead Python function: job_mood_reminder"}, "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-b4378a4aa8620b79", "name": "Possibly dead Python function: job_monthly_ai_report", "shortDescription": {"text": "Possibly dead Python function: job_monthly_ai_report"}, "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-d337d92d8965f890", "name": "Possibly dead Python function: job_daily_report", "shortDescription": {"text": "Possibly dead Python function: job_daily_report"}, "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-8b73566468612a5a", "name": "Possibly dead Python function: job_weekly_report", "shortDescription": {"text": "Possibly dead Python function: job_weekly_report"}, "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-11a51375a8c731aa", "name": "Possibly dead Python function: job_weekly_ai_report", "shortDescription": {"text": "Possibly dead Python function: job_weekly_ai_report"}, "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-580ba12452d5f313", "name": "Possibly dead Python function: chat_response_stream", "shortDescription": {"text": "Possibly dead Python function: chat_response_stream"}, "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-28874828a448dc9f", "name": "Possibly dead Python function: summarize_stats", "shortDescription": {"text": "Possibly dead Python function: summarize_stats"}, "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-f2185f92dd5bff9f", "name": "Possibly dead Python function: parse_file", "shortDescription": {"text": "Possibly dead Python function: parse_file"}, "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-b654acd31e62f047", "name": "Possibly dead Python function: detect_columns_with_ai", "shortDescription": {"text": "Possibly dead Python function: detect_columns_with_ai"}, "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-f19bcaf5a486c7f9", "name": "Possibly dead Python function: normalize_transactions", "shortDescription": {"text": "Possibly dead Python function: normalize_transactions"}, "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-583441c9573dc0b4", "name": "Possibly dead Python function: categorize_with_ai", "shortDescription": {"text": "Possibly dead Python function: categorize_with_ai"}, "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-3676f08446e63268", "name": "Possibly dead Python function: find_duplicates", "shortDescription": {"text": "Possibly dead Python function: find_duplicates"}, "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-32c47dd7b5b3a024", "name": "Possibly dead Python function: execute_import", "shortDescription": {"text": "Possibly dead Python function: execute_import"}, "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-a00e0895b55ce5ee", "name": "Possibly dead Python function: with_retry", "shortDescription": {"text": "Possibly dead Python function: with_retry"}, "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-7fb2edcf819c42c9", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "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-1a2a0c4115b63f6c", "name": "Possibly dead Python function: generate_demo_data", "shortDescription": {"text": "Possibly dead Python function: generate_demo_data"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f8456e80c3764b6", "name": "Possibly dead Python function: add_daily_demo_data", "shortDescription": {"text": "Possibly dead Python function: add_daily_demo_data"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-57b9217c3a2a2900", "name": "Stray `console.log` in TS/JS \u2014 next/tests/global-teardown.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/tests/global-teardown.ts:74"}, "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-3903e1d31e4b06fb", "name": "Stray `console.log` in TS/JS \u2014 next/tests/generate-demo-auth.ts:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/tests/generate-demo-auth.ts:92"}, "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-2683c71b3292286a", "name": "Stray `console.log` in TS/JS \u2014 next/tests/gym.spec.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/tests/gym.spec.ts:21"}, "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-f3e69c0dba6c3e8c", "name": "Stray `console.log` in TS/JS \u2014 next/src/scripts/seed-demo-advanced.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/src/scripts/seed-demo-advanced.ts:66"}, "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-c1a317dc06894e5b", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/shared/sidebar.tsx:41", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/shared/sidebar.tsx:41"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-494375fed69b7d93", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/shared/error-boundary.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/shared/error-boundary.tsx:32"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d5e7db29723f1e9", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/income-expenses-chart.tsx:237", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/income-expenses-chart.tsx:237"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ae43a9c12142e32", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/correlation-matrix-chart.tsx:235", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/correlation-matrix-chart.tsx:235"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7904502dfa6d62ef", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/kpi-grid.tsx:107", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/kpi-grid.tsx:107"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-632ba2183b3b8f0d", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/screen-time-apps.tsx:24", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/screen-time-apps.tsx:24"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce901bb976580800", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/gym-page.tsx:141", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/gym-page.tsx:141"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-193c3cdcdd8cbd88", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/muscle-group-exercises.tsx:61", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/muscle-group-exercises.tsx:61"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce2820275292b963", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/exercise-execution-screen.tsx:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/exercise-execution-screen.tsx:54"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99f2b9ce23c4d109", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/active-workout-screen.tsx:175", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/active-workout-screen.tsx:175"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a79857e8d23c43e0", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/start-workout-dialog.tsx:112", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/start-workout-dialog.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39912d4ac7d278a2", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/workout-card.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/workout-card.tsx:126"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c737e7cc5ab77e9d", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/shopping-card.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/shopping-card.tsx:72"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4b7d808fe7111da", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/transaction-table.tsx:178", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/transaction-table.tsx:178"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9fbc4c4d723027f5", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/transaction-list.tsx:289", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/transaction-list.tsx:289"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0799d1589c760ca4", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/account-balances-card.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/account-balances-card.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f60af3910952ec96", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/investments-page.tsx:393", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/investments-page.tsx:393"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f28465a8a8aa50f2", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/subscription-list.tsx:104", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/subscription-list.tsx:104"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05b1fb5d9f9f1df0", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/landing/landing-page.tsx:77", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/landing/landing-page.tsx:77"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b1f22df60da001f", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/food-page.tsx:501", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/food-page.tsx:501"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d6d10ce3cbb4a56", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/search-food-dialog.tsx:171", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/search-food-dialog.tsx:171"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b75eb9b0fb7c0028", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/inline-product-search.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/inline-product-search.tsx:96"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90c968a8df51ee1e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 next/src/app/layout.tsx:119", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 next/src/app/layout.tsx:119"}, "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-675a9203e8e99a8d", "name": "Stray `console.log` in TS/JS \u2014 next/src/app/api/sync/health/route.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/src/app/api/sync/health/route.ts:37"}, "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-01fa8897f21ca760", "name": "Stray `console.log` in TS/JS \u2014 next/src/app/api/sync/withings/callback/route.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/src/app/api/sync/withings/callback/route.ts:97"}, "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-f4d1c7543a232970", "name": "Stray `console.log` in TS/JS \u2014 next/src/app/api/chat/route.ts:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/src/app/api/chat/route.ts:168"}, "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-22cb7c30176f8d48", "name": "`truncate` class without `title=` for hover reveal \u2014 next/src/app/(dashboard)/layout.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/app/(dashboard)/layout.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b4e9c61dee91ff5", "name": "TODO/FIXME marker in shipping code \u2014 next/src/app/(dashboard)/settings/bug-report/page.tsx:22", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 next/src/app/(dashboard)/settings/bug-report/page.tsx:22"}, "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-ff906ac9fcc70a9e", "name": "Stray `console.log` in TS/JS \u2014 next/src/lib/embeddings.ts:152", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/src/lib/embeddings.ts:152"}, "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-1cfa206a5d5a6aec", "name": "TODO/FIXME marker in shipping code \u2014 next/src/lib/reporting/irpf-calculator.ts:136", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 next/src/lib/reporting/irpf-calculator.ts:136"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ef444090f477d04", "name": "Stray `console.log` in TS/JS \u2014 next/src/actions/insights/index.ts:477", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 next/src/actions/insights/index.ts:477"}, "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-851518aa9fb63dbc", "name": "Stray `console.log` in TS/JS \u2014 setup/src/lib/setup-auth.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 setup/src/lib/setup-auth.ts:22"}, "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-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-747fd26ce56a5278", "name": "Insecure pattern 'dangerous_innerhtml' in next/src/app/layout.tsx:119", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in next/src/app/layout.tsx:119"}, "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-7c7175f6d9758fe1", "name": "Insecure pattern 'node_child_process' in setup/src/app/api/deploy/route.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in setup/src/app/api/deploy/route.ts:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c53dc8f69dda64a", "name": "Insecure pattern 'node_child_process' in setup/src/app/api/status/route.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in setup/src/app/api/status/route.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba344fcaf0a14d3b", "name": "Insecure pattern 'local_storage_auth_token' in setup/src/app/components/ui.tsx:17", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in setup/src/app/components/ui.tsx:17"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9da3f9f51285035d", "name": "Very large file: next/src/generated/prisma/models/GymExercise.ts (1856 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GymExercise.ts (1856 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-eb1a18805deb9308", "name": "Very large file: next/src/generated/prisma/models/InsightFeedback.ts (1571 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/InsightFeedback.ts (1571 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-74fd6abef1abfbe9", "name": "Very large file: next/src/generated/prisma/models/GymProgram.ts (1448 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GymProgram.ts (1448 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-4b7d548f77bb4623", "name": "Very large file: next/src/generated/prisma/models/GymProgramExercise.ts (1661 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GymProgramExercise.ts (1661 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-05195799c4579c06", "name": "Very large file: next/src/generated/prisma/models/GarminActivity.ts (1561 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GarminActivity.ts (1561 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-d0d9a71ba3ad6b31", "name": "Very large file: next/src/generated/prisma/models/GymWorkoutExercise.ts (1761 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GymWorkoutExercise.ts (1761 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-2359dd28f8be46aa", "name": "Very large file: next/src/generated/prisma/models/TaxDeclarationItem.ts (1380 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/TaxDeclarationItem.ts (1380 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-986856d999f88edf", "name": "Very large file: next/src/generated/prisma/models/AuditLog.ts (1384 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/AuditLog.ts (1384 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-e6fdaabb8a170d80", "name": "Very large file: next/src/generated/prisma/models/GymWorkout.ts (1652 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GymWorkout.ts (1652 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-e8a3ec5e10ccc280", "name": "Very large file: next/src/generated/prisma/models/ScreenTime.ts (1576 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/ScreenTime.ts (1576 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-1ef736221637ef5a", "name": "Very large file: next/src/generated/prisma/models/TelegramLink.ts (1319 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/TelegramLink.ts (1319 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-4fd1ba531be86c01", "name": "Very large file: next/src/generated/prisma/models/GymProgramDay.ts (1576 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GymProgramDay.ts (1576 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-e47bf77b1852a5bf", "name": "Very large file: next/src/generated/prisma/models/Subscription.ts (1454 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/Subscription.ts (1454 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-844a742732b48391", "name": "Very large file: next/src/generated/prisma/models/GymSet.ts (1671 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GymSet.ts (1671 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-6ffeeed3ae0401a7", "name": "Very large file: next/src/generated/prisma/models/ChatHistory.ts (1542 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/ChatHistory.ts (1542 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-2da19b0aacf4c475", "name": "Very large file: next/src/generated/prisma/models/User.ts (2500 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/User.ts (2500 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-7a045fe9685e84eb", "name": "Very large file: next/src/generated/prisma/models/GarminHeartRate.ts (1367 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GarminHeartRate.ts (1367 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-781cb8e3719d1ac4", "name": "Very large file: next/src/generated/prisma/models/BrokerAccountSummary.ts (1401 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/BrokerAccountSummary.ts (1401 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-dac9ed4544c221ee", "name": "Very large file: next/src/generated/prisma/models/GarminSleep.ts (1403 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GarminSleep.ts (1403 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-30942432033143a1", "name": "Very large file: next/src/generated/prisma/models/TaxIncomeRecord.ts (1443 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/TaxIncomeRecord.ts (1443 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-cebee582663a808f", "name": "Very large file: next/src/generated/prisma/models/BrokerPosition.ts (1547 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/BrokerPosition.ts (1547 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-e9b548b9d4cff97d", "name": "Very large file: next/src/generated/prisma/models/TradingStrategy.ts (1410 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/TradingStrategy.ts (1410 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-7e80601e5928c5c7", "name": "Very large file: next/src/generated/prisma/models/TaxDeclaration.ts (1815 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/TaxDeclaration.ts (1815 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-00a9609a7aede50e", "name": "Very large file: next/src/generated/prisma/models/FoodLog.ts (1506 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/FoodLog.ts (1506 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-8b9f903c14646b35", "name": "Very large file: next/src/generated/prisma/models/BrokerTransaction.ts (1453 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/BrokerTransaction.ts (1453 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-9ac783a6983b7fd9", "name": "Very large file: next/src/generated/prisma/models/RecurringTransaction.ts (1348 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/RecurringTransaction.ts (1348 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-222cff27a8821795", "name": "Very large file: next/src/generated/prisma/models/GarminDaily.ts (1981 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GarminDaily.ts (1981 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-24076e00af889820", "name": "Very large file: next/src/generated/prisma/models/WithingsMeasurement.ts (1347 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/WithingsMeasurement.ts (1347 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-c1ea2c04a17694fc", "name": "Very large file: next/src/generated/prisma/models/BigPurchase.ts (1516 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/BigPurchase.ts (1516 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-a09e701b25df38d2", "name": "Very large file: next/src/generated/prisma/models/UserPreference.ts (1325 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/UserPreference.ts (1325 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-0d2db63f4ce88e96", "name": "Very large file: next/src/generated/prisma/models/DailyLog.ts (1626 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/DailyLog.ts (1626 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-a133cb94e5c03c4c", "name": "Very large file: next/src/generated/prisma/models/AiInsight.ts (1773 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/AiInsight.ts (1773 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-653d930083e7fd5e", "name": "Very large file: next/src/generated/prisma/models/Transaction.ts (1606 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/Transaction.ts (1606 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-65f3d75b19cc3c46", "name": "Very large file: next/src/generated/prisma/models/GarminBodyComposition.ts (1449 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/GarminBodyComposition.ts (1449 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-2a7fadafe5eee9d1", "name": "Very large file: next/src/generated/prisma/models/Passkey.ts (1625 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/models/Passkey.ts (1625 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-6acd93897777d383", "name": "Very large file: next/src/generated/prisma/internal/prismaNamespace.ts (6037 lines)", "shortDescription": {"text": "Very large file: next/src/generated/prisma/internal/prismaNamespace.ts (6037 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-7f5bc144be20fe32", "name": "Very large file: src/db/core.py (1674 lines)", "shortDescription": {"text": "Very large file: src/db/core.py (1674 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-da8deb2f538f9841", "name": "Very large file: ml-training/prepare_training.py (1776 lines)", "shortDescription": {"text": "Very large file: ml-training/prepare_training.py (1776 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "41 test file(s) for 566 source file(s) (ratio 0.07). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b4d34678d12c16d", "name": "Node manifest has dependencies but no lockfile: next/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: next/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 111 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 176 placeholder/mock markers across 69 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: ci, lockfile. 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-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-93ca6d26bdcb9b08", "name": "Commented-code block (7 lines) in next/next.config.ts:23", "shortDescription": {"text": "Commented-code block (7 lines) in next/next.config.ts: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-e4052d28c61062a8", "name": "Commented-code block (5 lines) in next/src/middleware.ts:62", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/middleware.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a12b91c7d105d9ee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/components/reporting/es-tax-dashboard.tsx:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/components/reporting/es-tax-dashboard.tsx:96"}, "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-891248abbeeb742d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/components/insights/insights-panel.tsx:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/components/insights/insights-panel.tsx:74"}, "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-1d65ff2152d94a9d", "name": "Legacy-named symbol `wakeboarding_v2` in next/src/components/gym/workout-calendar.tsx:154", "shortDescription": {"text": "Legacy-named symbol `wakeboarding_v2` in next/src/components/gym/workout-calendar.tsx:154"}, "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-abc38952977ce25b", "name": "Commented-code block (5 lines) in next/src/app/layout.tsx:56", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/app/layout.tsx: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-9a278f53bf386f12", "name": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/app/api/sync/withings/callback/route.ts:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/app/api/sync/withings/callback/route.ts:60"}, "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-dc2917fb97fe5bdd", "name": "Commented-code block (6 lines) in next/src/app/api/garmin-mfa/route.ts:54", "shortDescription": {"text": "Commented-code block (6 lines) in next/src/app/api/garmin-mfa/route.ts: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-2fcb3e53096fab6c", "name": "Commented-code block (5 lines) in next/src/lib/suppress-recharts-warnings.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/lib/suppress-recharts-warnings.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-282c1572c46aca13", "name": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/lib/freqtrade-client.ts:75", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/lib/freqtrade-client.ts: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-a6d534d1731e597c", "name": "Commented-code block (5 lines) in next/src/lib/reporting/irpf-calculator.test.ts:577", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/lib/reporting/irpf-calculator.test.ts:577"}, "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-9e546f079bf74248", "name": "Commented-code block (8 lines) in next/src/lib/reporting/broker-parsers.test.ts:352", "shortDescription": {"text": "Commented-code block (8 lines) in next/src/lib/reporting/broker-parsers.test.ts:352"}, "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-47cbefc2c15fca22", "name": "Legacy-named symbol `cashLegacy` in next/src/actions/brokers-ibkr.ts:383", "shortDescription": {"text": "Legacy-named symbol `cashLegacy` in next/src/actions/brokers-ibkr.ts:383"}, "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-4045f548d64f6f10", "name": "Commented-code block (5 lines) in next/src/actions/brokers-ibkr.ts:369", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/actions/brokers-ibkr.ts:369"}, "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-6c24ec9ea850e76d", "name": "Commented-code block (5 lines) in next/src/actions/brokers.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/actions/brokers.ts: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-4f0dc0ce8c0a26b9", "name": "Commented-code block (6 lines) in next/src/actions/passkey.ts:137", "shortDescription": {"text": "Commented-code block (6 lines) in next/src/actions/passkey.ts:137"}, "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-e1a515556d80f690", "name": "Commented-code block (5 lines) in next/src/actions/demo.ts:55", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/actions/demo.ts:55"}, "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-42da3df951a59d82", "name": "Commented-code block (5 lines) in next/src/actions/admin.ts:35", "shortDescription": {"text": "Commented-code block (5 lines) in next/src/actions/admin.ts:35"}, "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-23601a44baaf6a14", "name": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/actions/insights/index.ts:352", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/actions/insights/index.ts:352"}, "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-6f4d0ca86f3f52cd", "name": "Commented-code block (6 lines) in deploy/scheduler.py:13", "shortDescription": {"text": "Commented-code block (6 lines) in deploy/scheduler.py:13"}, "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-86e848c4f04efabc", "name": "Network/subprocess call without timeout or try/except \u2014 deploy/pd_scheduler/reports_builders.py:30", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 deploy/pd_scheduler/reports_builders.py:30"}, "fullDescription": {"text": "`requests.post(...)` 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-c20a4fd8741b5e28", "name": "Legacy-named symbol `pg_backup` in deploy/pd_scheduler/schedules.py:57", "shortDescription": {"text": "Legacy-named symbol `pg_backup` in deploy/pd_scheduler/schedules.py:57"}, "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-ce33e849aa17c38b", "name": "Commented-code block (5 lines) in deploy/pd_scheduler/schedules.py:45", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/pd_scheduler/schedules.py:45"}, "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-c89c995b437beb9d", "name": "Legacy-named symbol `pg_backup` in deploy/pd_scheduler/tests/test_imports.py:16", "shortDescription": {"text": "Legacy-named symbol `pg_backup` in deploy/pd_scheduler/tests/test_imports.py:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3a24085722ecec62", "name": "Commented-code block (6 lines) in deploy/pd_scheduler/jobs/insights/generate.py:133", "shortDescription": {"text": "Commented-code block (6 lines) in deploy/pd_scheduler/jobs/insights/generate.py:133"}, "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-f0eaada5ae5cdb71", "name": "`fetch()` without try/.catch or AbortSignal \u2014 setup/src/app/hooks/useSetupState.ts:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 setup/src/app/hooks/useSetupState.ts:55"}, "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-d0ad454205339183", "name": "Commented-code block (6 lines) in src/claude_ai.py:11", "shortDescription": {"text": "Commented-code block (6 lines) in src/claude_ai.py: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-65793e0d25887207", "name": "Network/subprocess call without timeout or try/except \u2014 src/bunq_integration.py:114", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bunq_integration.py:114"}, "fullDescription": {"text": "`requests.post(...)` 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-3a0a7ca26f7e21d1", "name": "Stub function `fetchone` (body is just `pass`/`return`) \u2014 src/db_backend/wrappers.py:161", "shortDescription": {"text": "Stub function `fetchone` (body is just `pass`/`return`) \u2014 src/db_backend/wrappers.py:161"}, "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-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/db_backend/wrappers.py:fetchone, src/db_backend/wrappers.py:fetchone\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20837"}, "properties": {"repository": "tarascloud/personal-dashboard", "repoUrl": "https://github.com/tarascloud/personal-dashboard", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370839, "scanner": "foundry_dataset", "fingerprint": "ed5983fa9c51ea91bc727df19d23b37127b7f9c7375e6448bb4553509feca672", "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": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#9", "issue_number": "9", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-46097a4f7b487785", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#9\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 9\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-27da59c829982e54", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370838, "scanner": "foundry_dataset", "fingerprint": "f570708e83927112432d89fba08743b48db3765967b6b3a9d6c4610a07f57b30", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#8", "issue_number": "8", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-5bb849f1203a66b0", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#8\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 8\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, '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/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-84801914bef56171", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370837, "scanner": "foundry_dataset", "fingerprint": "8dcab404dd83c8102c743d177e58878dc393d266950a40e6ea81809bffde5027", "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": {"runtime_failure": 1, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#7", "issue_number": "7", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-cca8692585d740cb", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#7\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#7\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 7\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'runtime_failure': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-9588b1ba287eb49e", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370836, "scanner": "foundry_dataset", "fingerprint": "75a37263df81576cff78913add5b618fd5ea0cf701d7d6351ca79704f9a02ebc", "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": {"runtime_failure": 1, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#6", "issue_number": "6", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ae09123389f31b80", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#6\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#6\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 6\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'runtime_failure': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-890b967f4d6e8f6f", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370835, "scanner": "foundry_dataset", "fingerprint": "22b0d639506bab5ad5e9d7678fb3a83f7b1ae0737790b49f9984688880ece3eb", "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": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#5", "issue_number": "5", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6fdc693a47c552d1", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#5\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#5\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 5\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-efe2885a3f00e792", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370834, "scanner": "foundry_dataset", "fingerprint": "41590727170b78747a399dd0d2da34ca442f340e9d25b407001cb9b7cce9aa27", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#4", "issue_number": "4", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ebaace8015d77c2f", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#4\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, '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/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-92de80820bfd2f1a", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370833, "scanner": "foundry_dataset", "fingerprint": "fdd77b1c0011689a3a15ff6e812347d43272867985a4d8c2e87eb7bc25fbdddf", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#3", "issue_number": "3", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6a91ea35dbee1d9b", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#3\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, '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/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-75fc8f164a9da079", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370832, "scanner": "foundry_dataset", "fingerprint": "79b57270a3f9825cb6530443c083a431510d454c6a377a87e5e818ba81ed811c", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"mock_placeholder": 1, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#2", "issue_number": "2", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-fb4d9174281383b2", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#2\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'mock_placeholder': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-f63b87fa3ba122cb", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370831, "scanner": "foundry_dataset", "fingerprint": "d7db028fbd941bc81d708b31d3dd3e0af3185d9d8b61520afc0d3b40f845553e", "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": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#13", "issue_number": "13", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-7fd7c8f76f0a9717", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#13\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#13\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 13\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-c6957a5da2503eee", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370830, "scanner": "foundry_dataset", "fingerprint": "7c87cb8894708000fa96c365a2feabbc2fd749fcee848388706c088be31d2107", "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": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#12", "issue_number": "12", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-fa5e70c8bf70161a", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#12\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#12\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 12\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-3d05979c45c8d465", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370829, "scanner": "foundry_dataset", "fingerprint": "5af4e2e51bead2ed0b3e6ae90e68f729826561403b1b20cd1da0395a6ef15def", "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": {"runtime_failure": 1, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#11", "issue_number": "11", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-758840c930092271", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#11\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#11\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 11\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'runtime_failure': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-d5dffe243c360d3e", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370828, "scanner": "foundry_dataset", "fingerprint": "aa29b130d32b141b6298ee15833b4360888ed3a696dd28d7956861b62445c9bb", "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": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#10", "issue_number": "10", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-193829ba25fb76b4", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#10\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#10\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 10\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-f9c5a87ed3fdb4cf", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 370827, "scanner": "foundry_dataset", "fingerprint": "2b8147d3aeaf73e1bf4c424c96977dd4386e9d35fc1d9c38c4b88c7960f1730d", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#1", "issue_number": "1", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f046e9b78b684508", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#1\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#1\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, '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/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-09a302b43d5b876e", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 356636, "scanner": "foundry_dataset", "fingerprint": "f34dcc9b2d22de6d2ce898b0eb7d8e6b4b5c4909c5d497f8993236cd8af56255", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#8", "issue_number": "8", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-0cd72cf24eb92e72", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#8\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 8\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-4ac532028bc50f40", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 356635, "scanner": "foundry_dataset", "fingerprint": "0c182a8455c12cc4951469e5cd659c7808f8462a78f7dcf43bbb02623a06b73e", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#4", "issue_number": "4", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ba6383b5e788d480", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "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: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#4\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-b641febdca226f8a", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 356634, "scanner": "foundry_dataset", "fingerprint": "8f795e4ac2ffacae79d86ac6552eb0ceef11c60ad80b912d181a7cdd5ab8e813", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#3", "issue_number": "3", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ec4d0aa3d0975722", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#3\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#3\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-9c8bcb1cbd2086b0", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 356633, "scanner": "foundry_dataset", "fingerprint": "a2855c8914ea6e49e8c4b5a9a185b7e95d7ef9d81d2d97ffa9fe1e4a3ee61ae8", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#1", "issue_number": "1", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-1694138b9263eebc", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "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: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#1\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-b4db92ac4a97121c", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 341211, "scanner": "foundry_dataset", "fingerprint": "a1252a308d92cf568ef294798201601e1090adf689fcb89d05846f1345153875", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#8", "issue_number": "8", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-5640da3fcc08788c", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#8\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#8\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 8\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, '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/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-12e5800d75ad6add", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 341210, "scanner": "foundry_dataset", "fingerprint": "143d625bedb7815dbdcb1398382fdbdfdd3e40e39f516e302f28cba3632fe457", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#4", "issue_number": "4", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-5774005b2ca7f9b3", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#4\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, '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/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-6c04447e18b6bd03", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 341209, "scanner": "foundry_dataset", "fingerprint": "14649ea5708c01e36d62657979f3048dbb3cb2636ce89763eff41a7c822ab7ea", "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, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "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, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#3", "issue_number": "3", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-dc2824d65d4865fe", "graph_gold_label": "assumption_check", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: assumption_check\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#3\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#3\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 24\nNode types: {'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'test_ci_gap': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4, '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/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-b9152d994e9ab5ef", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323410, "scanner": "foundry_dataset", "fingerprint": "a4c190859a8a16469df4e0f084bb9c92129cf4cb5cb1a3e14120b5e1b196c570", "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": "tarascloud/personal-dashboard#9", "human_labels": ["dependency_or_build", "human_feedback_general", "security_auth_secret"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-a63b7a0c69ac3f68", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#9\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2217f99d2b7ab800\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/9\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/9\\nTitle: Build(deps-dev): Bump typescript from 5.9.3 to 6.0.2 in /next\\nBody:\\nBumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.2.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/microsoft/TypeScript/releases\\\">typescript's releases</a>.</em></p>\\n<blockquote>\\n<h2>TypeScript 6.0</h2>\\n<p>For release notes, check out the <a href=\\\"https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/\\\">release announcement blog post</a>.</p>\\n<ul>\\n<li><a href=\\\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+6.0.0%22\\\">fixed issues query for TypeScript 6.0.0 (Beta)</a>.</li>\\n<li><a href=\\\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+6.0.1%22\\\">fixed issues query for TypeScript 6.0.1 (RC)</a>.</li>\\n<li><a href=\\\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+6.0.2%22\\\">fixed issues query for \"\n  },\n  {\n    \"id\": \"github-feedback-comment-73759f6543cd35de\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/9#issuecomment-4122044040\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/9#issuecomment-4122044040\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch w\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-88c1181715aca168", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323409, "scanner": "foundry_dataset", "fingerprint": "1f6e5204b8cbafb90d710851e9850803c59bfbeca55ff1e0b143b532b10de248", "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": "tarascloud/personal-dashboard#8", "human_labels": ["dependency_or_build", "human_feedback_general", "test_ci_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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f43323cf068bc61e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#8\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'test_ci_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2e6c58f2e278beaa\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/8\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/8\\nTitle: Build(deps-dev): Bump eslint from 9.39.4 to 10.1.0 in /next\\nBody:\\nBumps [eslint](https://github.com/eslint/eslint) from 9.39.4 to 10.1.0.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/eslint/eslint/releases\\\">eslint's releases</a>.</em></p>\\n<blockquote>\\n<h2>v10.1.0</h2>\\n<h2>Features</h2>\\n<ul>\\n<li><a href=\\\"https://github.com/eslint/eslint/commit/ff4382be349035acdb170627a2dc92828e134562\\\"><code>ff4382b</code></a> feat: apply fix for <code>no-var</code> in <code>TSModuleBlock</code> (<a href=\\\"https://redirect.github.com/eslint/eslint/issues/20638\\\">#20638</a>) (Tanuj Kanti)</li>\\n<li><a href=\\\"https://github.com/eslint/eslint/commit/0916995b51528872b15ba4fedb24172cf25fcb3f\\\"><code>0916995</code></a> feat: Implement api support for bulk-suppressions (<a href=\\\"https://redirect.github.com/eslint/eslint/issues/20565\\\">#20565</a>) (Blake Sager)</li>\\n</ul>\\n<h2>Bug Fixes</h2>\\n<ul>\\n<li><a href=\\\"https://github.com/eslint/eslint/commit/2b8824e6be4223980e929a20\"\n  },\n  {\n    \"id\": \"github-feedback-comment-9e4e160b7a4ac6d3\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/8#issuecomment-4122043370\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/8#issuecomment-4122043370\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch when a new vers\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-c4685c60f8fec20b", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323408, "scanner": "foundry_dataset", "fingerprint": "552ebbd4ba99f0f3aff298281a5f41072b6aa4774e00a65c468f8dcdc7d6be18", "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": "tarascloud/personal-dashboard#7", "human_labels": ["dependency_or_build", "human_feedback_general", "runtime_failure"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b8072b30585a76c5", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#7\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'runtime_failure': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-27b383bd2d5ca214\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/7\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/7\\nTitle: Build(deps): Bump lucide-react from 0.577.0 to 1.0.1 in /next\\nBody:\\nBumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 0.577.0 to 1.0.1.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/lucide-icons/lucide/releases\\\">lucide-react's releases</a>.</em></p>\\n<blockquote>\\n<h2>Lucide V1 \ud83d\ude80</h2>\\n<p>After years of work and dedication, Lucide Version 1 has been officially <strong>released</strong>!. This milestone marks a significant achievement in our journey to provide a comprehensive and versatile icon library for developers and designers alike.</p>\\n<p>It's been quite a ride \u2014 especially over the past year. Lucide has grown to over 30 million downloads per week and is used by million of projects worldwide. This release is a testament to the hard work of our community and contributors who have helped shape Lucide into what it is today.</p>\\n<p>Thank you to everyone who has supported us along the way. We\"\n  },\n  {\n    \"id\": \"github-feedback-comment-15d4369b520f15d2\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/7#issuecomment-4122043541\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/7#issuecomment-4122043541\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch when a new version is\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-88b1aecf24219344", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323407, "scanner": "foundry_dataset", "fingerprint": "982841a4a1f092b91fc42245b7cf7a1ba90832a5c619c1ad26c65b35c8325d52", "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": "tarascloud/personal-dashboard#6", "human_labels": ["dependency_or_build", "human_feedback_general", "runtime_failure"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-af3c1dea5716caf2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#6\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'runtime_failure': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5d0ec4ce5f5e62bf\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/6\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/6\\nTitle: Build(deps): Bump pdf-parse from 1.1.4 to 2.4.5 in /next\\nBody:\\nBumps [pdf-parse](https://github.com/mehmet-kozan/pdf-parse) from 1.1.4 to 2.4.5.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/mehmet-kozan/pdf-parse/releases\\\">pdf-parse's releases</a>.</em></p>\\n<blockquote>\\n<h2>Release v2.4.5</h2>\\n<!-- raw HTML omitted -->\\n<h2>What's Changed</h2>\\n<h3>\ud83d\udea8 Breaking Changes</h3>\\n<ul>\\n<li>For browser build, set the background web worker explicitly. by <a href=\\\"https://github.com/mehmet-kozan\\\"><code>@\u200bmehmet-kozan</code></a> in <a href=\\\"https://redirect.github.com/mehmet-kozan/pdf-parse/pull/37\\\">mehmet-kozan/pdf-parse#37</a></li>\\n</ul>\\n<h3>\ud83d\udcda Documentation</h3>\\n<ul>\\n<li>Integration test dependency fix by <a href=\\\"https://github.com/mehmet-kozan\\\"><code>@\u200bmehmet-kozan</code></a> in <a href=\\\"https://redirect.github.com/mehmet-kozan/pdf-parse/pull/38\\\">mehmet-kozan/pdf-parse#38</a></li>\\n</ul>\\n<p><strong>Full Changelog</strong>: <a href=\\\"https://github.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-a7c13d010ce00377\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/6#issuecomment-4122043700\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/6#issuecomment-4122043700\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch when\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-3cfc717ba359c6fc", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323406, "scanner": "foundry_dataset", "fingerprint": "44d56f4c3eddad2bdfb3bb5b0aa39378745fd08d8b150430fcf75c205b12bda7", "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": "tarascloud/personal-dashboard#5", "human_labels": ["dependency_or_build", "human_feedback_general", "security_auth_secret"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-e18beafbf5805997", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard#5\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cb8aba3bd4d6e86e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/5\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/5\\nTitle: Build(deps): Update garth requirement from ~=0.5.21 to ~=0.7.11\\nBody:\\nUpdates the requirements on [garth](https://github.com/matin/garth) to permit the latest version.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/matin/garth/releases\\\">garth's releases</a>.</em></p>\\n<blockquote>\\n<h2>0.7.11</h2>\\n<h2>What's Changed</h2>\\n<ul>\\n<li>Use browser headers on login POST and MFA verify by <a href=\\\"https://github.com/tobias-goertz\\\"><code>@\u200btobias-goertz</code></a> in <a href=\\\"https://redirect.github.com/matin/garth/pull/216\\\">matin/garth#216</a></li>\\n</ul>\\n<p><strong>Full Changelog</strong>: <a href=\\\"https://github.com/matin/garth/compare/0.7.10...0.7.11\\\">https://github.com/matin/garth/compare/0.7.10...0.7.11</a></p>\\n</blockquote>\\n</details>\\n<details>\\n<summary>Commits</summary>\\n<ul>\\n<li><a href=\\\"https://github.com/matin/garth/commit/6c1b5371332de04f2a8ab0d5ea326c6de756bcc9\\\"><code>6c1b537</code></a> Use browser headers on login POST and MFA veri\"\n  },\n  {\n    \"id\": \"github-feedback-comment-1623d222cf2e5cbd\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/5#issuecomment-4122044367\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/5#issuecomment-4122044367\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in t\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-ae11d07f81968c44", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323405, "scanner": "foundry_dataset", "fingerprint": "a6119d8a2a6d1f9eeab62d391f6cdf7208b29b9eff118f703cf50e1a05f5f2ad", "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": "tarascloud/personal-dashboard#4", "human_labels": ["dependency_or_build", "human_feedback_general", "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-90028b4d696ebb03", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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: tarascloud/personal-dashboard#4\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'test_ci_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7a12a0dd17065639\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/4\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/4\\nTitle: Build(deps): Update requests requirement from ~=2.32.0 to ~=2.32.5\\nBody:\\nUpdates the requirements on [requests](https://github.com/psf/requests) to permit the latest version.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/psf/requests/releases\\\">requests's releases</a>.</em></p>\\n<blockquote>\\n<h2>v2.32.5</h2>\\n<h2>2.32.5 (2025-08-18)</h2>\\n<p><strong>Bugfixes</strong></p>\\n<ul>\\n<li>The SSLContext caching feature originally introduced in 2.32.0 has created\\na new class of issues in Requests that have had negative impact across a number\\nof use cases. The Requests team has decided to revert this feature as long term\\nmaintenance of it is proving to be unsustainable in its current iteration.</li>\\n</ul>\\n<p><strong>Deprecations</strong></p>\\n<ul>\\n<li>Added support for Python 3.14.</li>\\n<li>Dropped support for Python 3.8 following its end of support.</li>\\n</ul>\\n</blockquote>\\n</details>\\n<details>\\n<summary>Changelog</summary>\\n<p><em>Sourced from <a href=\\\"htt\"\n  },\n  {\n    \"id\": \"github-feedback-comment-bde7a91a2708e4b1\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/4#issuecomment-4122044573\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/4#issuecomment-4122044573\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch when a new ve\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-b3b7246646dc4336", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323404, "scanner": "foundry_dataset", "fingerprint": "066700d6d317e51596dc24ef3887d047f48a6d7d0add1495627cfa9fffcb7031", "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": "tarascloud/personal-dashboard#3", "human_labels": ["dependency_or_build", "human_feedback_general", "test_ci_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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-119e4b6d68737174", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#3\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'test_ci_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-53f2df97cf2c5bb3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/3\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/3\\nTitle: Build(deps): Update garminconnect requirement from ~=0.2.38 to ~=0.2.40\\nBody:\\nUpdates the requirements on [garminconnect](https://github.com/cyberjunky/python-garminconnect) to permit the latest version.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/cyberjunky/python-garminconnect/releases\\\">garminconnect's releases</a>.</em></p>\\n<blockquote>\\n<h2>Release 0.2.40</h2>\\n<h2>What's Changed</h2>\\n<ul>\\n<li>Added get_running_tolerance method for <a href=\\\"https://redirect.github.com/cyberjunky/python-garminconnect/issues/328\\\">#328</a></li>\\n</ul>\\n<p><strong>Full Changelog</strong>: <a href=\\\"https://github.com/cyberjunky/python-garminconnect/compare/0.2.29...0.2.40\\\">https://github.com/cyberjunky/python-garminconnect/compare/0.2.29...0.2.40</a></p>\\n</blockquote>\\n</details>\\n<details>\\n<summary>Commits</summary>\\n<ul>\\n<li><a href=\\\"https://github.com/cyberjunky/python-garminconnect/commit/1effe49f2a2f045b2028c53cfa9613c905774fb7\\\"><code>1effe49</code></a> Bump\"\n  },\n  {\n    \"id\": \"github-feedback-comment-7a1900fc95e7ebfe\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/3#issuecomment-4122044291\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/3#issuecomment-4122044291\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch when a new vers\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-699f943d024b273d", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323403, "scanner": "foundry_dataset", "fingerprint": "569a42e48acc3ad70cddfe5766eacb1d5a8a76ebaf0a3790afdfb6ec6b37051e", "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": "tarascloud/personal-dashboard#2", "human_labels": ["dependency_or_build", "human_feedback_general", "mock_placeholder"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-6515aa44808990b8", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#2\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'mock_placeholder': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e3a0ec28c8b16742\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/2\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/2\\nTitle: Build(deps): Update psycopg2-binary requirement from ~=2.9.9 to ~=2.9.11\\nBody:\\nUpdates the requirements on [psycopg2-binary](https://github.com/psycopg/psycopg2) to permit the latest version.\\n<details>\\n<summary>Changelog</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/psycopg/psycopg2/blob/master/NEWS\\\">psycopg2-binary's changelog</a>.</em></p>\\n<blockquote>\\n<h2>Current release</h2>\\n<p>What's new in psycopg 2.9.11\\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^</p>\\n<ul>\\n<li>Add support for Python 3.14.</li>\\n<li>Avoid a segfault passing more arguments than placeholders if Python is built\\nwith assertions enabled (:ticket:<code>[#1791](https://github.com/psycopg/psycopg2/issues/1791)</code>).</li>\\n<li>Add riscv64 platform binary packages (:ticket:<code>[#1813](https://github.com/psycopg/psycopg2/issues/1813)</code>).</li>\\n<li><code>~psycopg2.errorcodes</code> map and <code>~psycopg2.errors</code> classes updated to\\nPostgreSQL 18.</li>\\n<li>Drop support for Python 3.8.</li>\\n</ul>\\n<p>What's new i\"\n  },\n  {\n    \"id\": \"github-feedback-comment-463676637bea8cc5\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/2#issuecomment-4122044479\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/2#issuecomment-4122044479\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch when a new\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-0ae4f64143ed4f45", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323402, "scanner": "foundry_dataset", "fingerprint": "d97c42e7437116332dbcb79623d07ff2b419d52c31fedc3d366952b126c1f040", "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": "tarascloud/personal-dashboard#13", "human_labels": ["dependency_or_build", "human_feedback_general", "security_auth_secret"], "issue_number": "13", "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f4673a5694542335", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#13\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: tarascloud/personal-dashboard#13\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-768143600d5884e0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/13\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/13\\nTitle: Build(deps-dev): Bump @types/node from 20.19.37 to 25.5.0 in /next\\nBody:\\nBumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.19.37 to 25.5.0.\\n<details>\\n<summary>Commits</summary>\\n<ul>\\n<li>See full diff in <a href=\\\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node\\\">compare view</a></li>\\n</ul>\\n</details>\\n<br />\\n\\n\\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.19.37&new-version=25.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\\n\\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\\n\\n[//]: # (dependabot-automerge-start)\\n[//]: # (dependabot-automerge-end)\\n\\n---\\n\\n<details>\\n<summary>D\"\n  },\n  {\n    \"id\": \"github-feedback-comment-1fce56cf4ecb700d\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/13#issuecomment-4122043974\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/13#issuecomment-4122043974\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-1f3ee60485a3cfa4", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323401, "scanner": "foundry_dataset", "fingerprint": "6f9fbed9f4c7d538d0c24385ffa647cc0682b5eea5eb2eb8436dafb871847c0b", "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": "tarascloud/personal-dashboard#12", "human_labels": ["dependency_or_build", "human_feedback_general", "security_auth_secret"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-41579321cff0bec2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#12\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dcd5d16d9f87e242\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/12\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/12\\nTitle: Build(deps): Bump react-dom from 19.2.3 to 19.2.4 in /next\\nBody:\\nBumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 19.2.3 to 19.2.4.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/facebook/react/releases\\\">react-dom's releases</a>.</em></p>\\n<blockquote>\\n<h2>19.2.4 (January 26th, 2026)</h2>\\n<h2>React Server Components</h2>\\n<ul>\\n<li>Add more DoS mitigations to Server Actions, and harden Server Components (<a href=\\\"https://redirect.github.com/facebook/react/pull/35632\\\">#35632</a> by <a href=\\\"https://github.com/gnoff\\\"><code>@\u200bgnoff</code></a>, <a href=\\\"https://github.com/lubieowoce\\\"><code>@\u200blubieowoce</code></a>, <a href=\\\"https://github.com/sebmarkbage\\\"><code>@\u200bsebmarkbage</code></a>, <a href=\\\"https://github.com/unstubbable\\\"><code>@\u200bunstubbable</code></a>)</li>\\n</ul>\\n</blockquote>\\n</details>\\n<details>\\n<summary>Commits</summary>\\n<ul>\\n<li><a href=\\\"https://github.com/facebook/react/commit/90ab3f89f4824a\"\n  },\n  {\n    \"id\": \"github-feedback-comment-6fccd2e946815774\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/12#issuecomment-4122043901\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/12#issuecomment-4122043901\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will g\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-6aae0c36f8f6fc26", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323400, "scanner": "foundry_dataset", "fingerprint": "7dcca3c938382908c743d30a6799c1c59d18b678be669d247354ca25080daf34", "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": "tarascloud/personal-dashboard#11", "human_labels": ["dependency_or_build", "human_feedback_general", "runtime_failure"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-3f9fc9d105ef4fd4", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#11\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'runtime_failure': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e90d2753bb02c941\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/11\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/11\\nTitle: Build(deps-dev): Bump eslint-config-next from 16.1.6 to 16.2.1 in /next\\nBody:\\nBumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 16.1.6 to 16.2.1.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/vercel/next.js/releases\\\">eslint-config-next's releases</a>.</em></p>\\n<blockquote>\\n<h2>v16.2.1</h2>\\n<blockquote>\\n<p>[!NOTE]\\nThis release is backporting bug fixes. It does <strong>not</strong> include all pending features/changes on canary.</p>\\n</blockquote>\\n<h3>Core Changes</h3>\\n<ul>\\n<li>docs: post release amends (<a href=\\\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91715\\\">#91715</a>)</li>\\n<li>docs: fix broken Activity Patterns demo link in preserving UI state guide (<a href=\\\"https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/91698\\\">#91698</a>)</li>\\n<li>Fix adapter outputs for dynamic metadata routes (<a href=\\\"https://github.com/ver\"\n  },\n  {\n    \"id\": \"github-feedback-comment-fa06571bcb808a4b\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/11#issuecomment-4122043454\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/11#issuecomment-4122043454\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch when\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-9946f83a070fd34e", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323399, "scanner": "foundry_dataset", "fingerprint": "e0e6d96d35318c1733712253ae93197d973396336290c2c11c332f771324b719", "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": "tarascloud/personal-dashboard#10", "human_labels": ["dependency_or_build", "human_feedback_general", "security_auth_secret"], "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c0d975be589c94a5", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-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, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: tarascloud/personal-dashboard#10\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-3de75c92da60aa7e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/10\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/10\\nTitle: Build(deps): Bump react from 19.2.3 to 19.2.4 in /next\\nBody:\\nBumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 19.2.3 to 19.2.4.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/facebook/react/releases\\\">react's releases</a>.</em></p>\\n<blockquote>\\n<h2>19.2.4 (January 26th, 2026)</h2>\\n<h2>React Server Components</h2>\\n<ul>\\n<li>Add more DoS mitigations to Server Actions, and harden Server Components (<a href=\\\"https://redirect.github.com/facebook/react/pull/35632\\\">#35632</a> by <a href=\\\"https://github.com/gnoff\\\"><code>@\u200bgnoff</code></a>, <a href=\\\"https://github.com/lubieowoce\\\"><code>@\u200blubieowoce</code></a>, <a href=\\\"https://github.com/sebmarkbage\\\"><code>@\u200bsebmarkbage</code></a>, <a href=\\\"https://github.com/unstubbable\\\"><code>@\u200bunstubbable</code></a>)</li>\\n</ul>\\n</blockquote>\\n</details>\\n<details>\\n<summary>Commits</summary>\\n<ul>\\n<li><a href=\\\"https://github.com/facebook/react/commit/90ab3f89f4824ac763b6f877c6f711\"\n  },\n  {\n    \"id\": \"github-feedback-comment-75db3cc622789a89\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/10#issuecomment-4122043744\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/10#issuecomment-4122043744\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will g\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-f79e0a9684732728", "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": "tarascloud/personal-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: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 323398, "scanner": "foundry_dataset", "fingerprint": "ea03cbcc0fc784f03bfe121f055f7b15f6098a983cb7d16378c430827641af4f", "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": "tarascloud/personal-dashboard#1", "human_labels": ["api_integration_gap", "dependency_or_build", "human_feedback_general"], "issue_number": "1", "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": "tarascloud/personal-dashboard", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-2f607cd5dd48131b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "schemas": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "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": 4, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#1\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: tarascloud/personal-dashboard#1\nRepo: tarascloud/personal-dashboard\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'api_integration_gap': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-24962ee4bccfba46\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/1\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/1\\nTitle: Build(deps): Update authlib requirement from ~=1.6.0 to ~=1.6.9\\nBody:\\nUpdates the requirements on [authlib](https://github.com/authlib/authlib) to permit the latest version.\\n<details>\\n<summary>Release notes</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/authlib/authlib/releases\\\">authlib's releases</a>.</em></p>\\n<blockquote>\\n<h2>v1.6.9</h2>\\n<p><strong>Full Changelog</strong>: <a href=\\\"https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\\\">https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9</a></p>\\n<h2>Changes in <code>jose</code> module</h2>\\n<ul>\\n<li>Not using header's <code>jwk</code> automatically</li>\\n<li>Add <code>ES256K</code> into default jwt algorithms</li>\\n<li>Remove deprecated algorithm from default registry</li>\\n<li>Generate random <code>cek</code> when <code>cek</code> length doesn't match</li>\\n</ul>\\n</blockquote>\\n</details>\\n<details>\\n<summary>Changelog</summary>\\n<p><em>Sourced from <a href=\\\"https://github.com/authlib/authlib/blob/main/docs/cha\"\n  },\n  {\n    \"id\": \"github-feedback-comment-1d8649fa6d8253ac\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/tarascloud/personal-dashboard/pull/1#issuecomment-4122044202\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: tarascloud/personal-dashboard\\nAuthor: dependabot[bot] (Bot)\\nURL: https://github.com/tarascloud/personal-dashboard/pull/1#issuecomment-4122044202\\nTitle: \\nBody:\\nOK, I won't notify you again about this release, but will get in touch\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "comment-chain-pattern-bad_chains-ce5b7cbfee473c35", "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": "tarascloud/personal-dashboard", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 335072, "scanner": "foundry_dataset", "fingerprint": "611b2643eca92fc2740d0f475d62362de41553413200aadfd44c3982814cad13", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#9", "issue_number": "9", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-1d0e0497b13c1f16", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#9\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#9\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#9\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 9\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-f0c95e54f9161c51", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 335071, "scanner": "foundry_dataset", "fingerprint": "d078b9377edb9b3d446624d2625e369f7ded4833152855b2c0e09f766887f4d3", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#5", "issue_number": "5", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-35a52723763742bb", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#5\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#5\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#5\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 5\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-6e0465a82fb649d0", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 335070, "scanner": "foundry_dataset", "fingerprint": "8d8b38523f7e4e3141f84ee90ac58d12f403bc8909cec78ad3ab8e23504087a1", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#13", "issue_number": "13", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-492ea9fc12ccec54", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#13\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#13\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#13\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 13\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-b07e94a9b51215ea", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 335069, "scanner": "foundry_dataset", "fingerprint": "d77c7756bb5280b5cafb24f7097696bf074774065b5d441694ba6f668f3f066f", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#12", "issue_number": "12", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-bcd61ac973422c0d", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#12\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#12\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#12\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 12\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-c697d296e90a45eb", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 335068, "scanner": "foundry_dataset", "fingerprint": "3a33ec18dcd2558227a120fce36aa30d483b304aab793a31f4f84399cf00e6b9", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"dependency_or_build": 1, "security_auth_secret": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#10", "issue_number": "10", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-58861a17b54edb5f", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#10\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#10\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#10\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 10\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'security_auth_secret': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-0fc49781c221e345", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: tarascloud/personal-dashboard"}, "properties": {"repobilityId": 327225, "scanner": "foundry_dataset", "fingerprint": "54c018b86cc67307815c0066d8ac81c0e986e29be0a7bd4de13231ea08a3049b", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "dependency_or_build": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "tarascloud/personal-dashboard#2", "issue_number": "2", "quality_tiers": {"unresolved": 4}, "repo_full_name": "tarascloud/personal-dashboard", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-a38c42592a6ce586", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#2\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: tarascloud/personal-dashboard\nThread: tarascloud/personal-dashboard#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: tarascloud/personal-dashboard#2\nRepo: tarascloud/personal-dashboard\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 13\nEdges: 20\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_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, 'mock_placeholder': 1, 'human_feedback_general': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 4}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/tarascloud/personal-dashboard", "source_id": "graph-query-motif_query-606dab354be3ec4c", "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": "tarascloud/personal-dashboard", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-8c5ff81a704e302f", "level": "note", "message": {"text": "Possibly dead Python function: job_refresh_views"}, "properties": {"repobilityId": "77c9b7871a84b986", "scanner": "scanner-primary", "fingerprint": "8c5ff81a704e302f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/maintenance.py:13"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c763d32e6069ff6c", "level": "note", "message": {"text": "Possibly dead Python function: job_daily_demo_data"}, "properties": {"repobilityId": "302e6a2657afe069", "scanner": "scanner-primary", "fingerprint": "c763d32e6069ff6c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/maintenance.py:23"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-00972c5e9b121086", "level": "note", "message": {"text": "Possibly dead Python function: job_detect_subscriptions"}, "properties": {"repobilityId": "0dc2c510b6c458b1", "scanner": "scanner-primary", "fingerprint": "00972c5e9b121086", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/maintenance.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f3af6c01bd15fab8", "level": "note", "message": {"text": "Possibly dead Python function: job_prod_to_dev_sync"}, "properties": {"repobilityId": "0debbb88ef5d0012", "scanner": "scanner-primary", "fingerprint": "f3af6c01bd15fab8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/maintenance.py:59"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6c29ad0642858743", "level": "note", "message": {"text": "Possibly dead Python function: job_generate_snapshots"}, "properties": {"repobilityId": "bf82367a2fb8ba76", "scanner": "scanner-primary", "fingerprint": "6c29ad0642858743", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/snapshots.py:12"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d3fa5b6407f2133", "level": "note", "message": {"text": "Possibly dead Python function: job_sync_withings"}, "properties": {"repobilityId": "da78716ca1d3cef8", "scanner": "scanner-primary", "fingerprint": "7d3fa5b6407f2133", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/sync/withings.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf8b87df55c5236b", "level": "note", "message": {"text": "Possibly dead Python function: job_sync_garmin"}, "properties": {"repobilityId": "dfcfd3530dff5b18", "scanner": "scanner-primary", "fingerprint": "cf8b87df55c5236b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/sync/garmin.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d75195588f2f680", "level": "note", "message": {"text": "Possibly dead Python function: job_sync_bunq"}, "properties": {"repobilityId": "e9688ea3aa4a44bf", "scanner": "scanner-primary", "fingerprint": "9d75195588f2f680", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/sync/bunq.py:18"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-faf0520ad842a00e", "level": "note", "message": {"text": "Possibly dead Python function: job_sync_monobank"}, "properties": {"repobilityId": "a6ffd4a0334fc53d", "scanner": "scanner-primary", "fingerprint": "faf0520ad842a00e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/sync/monobank.py:13"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-462cfb14116917ba", "level": "note", "message": {"text": "Possibly dead Python function: job_mood_reminder"}, "properties": {"repobilityId": "4d356eb876832333", "scanner": "scanner-primary", "fingerprint": "462cfb14116917ba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/reports/mood.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4378a4aa8620b79", "level": "note", "message": {"text": "Possibly dead Python function: job_monthly_ai_report"}, "properties": {"repobilityId": "c59846768b4c4c25", "scanner": "scanner-primary", "fingerprint": "b4378a4aa8620b79", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/reports/monthly.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d337d92d8965f890", "level": "note", "message": {"text": "Possibly dead Python function: job_daily_report"}, "properties": {"repobilityId": "132bb13d2c2a177f", "scanner": "scanner-primary", "fingerprint": "d337d92d8965f890", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/reports/daily.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8b73566468612a5a", "level": "note", "message": {"text": "Possibly dead Python function: job_weekly_report"}, "properties": {"repobilityId": "b503812a68ff175f", "scanner": "scanner-primary", "fingerprint": "8b73566468612a5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/reports/weekly.py:15"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-11a51375a8c731aa", "level": "note", "message": {"text": "Possibly dead Python function: job_weekly_ai_report"}, "properties": {"repobilityId": "ba2aa8d03c18ac1b", "scanner": "scanner-primary", "fingerprint": "11a51375a8c731aa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pd_scheduler/jobs/reports/weekly.py:27"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-580ba12452d5f313", "level": "note", "message": {"text": "Possibly dead Python function: chat_response_stream"}, "properties": {"repobilityId": "d8c135dede42d4f4", "scanner": "scanner-primary", "fingerprint": "580ba12452d5f313", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ai_client.py:188"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28874828a448dc9f", "level": "note", "message": {"text": "Possibly dead Python function: summarize_stats"}, "properties": {"repobilityId": "57c04dfe6c5749c8", "scanner": "scanner-primary", "fingerprint": "28874828a448dc9f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ai_client.py:216"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2185f92dd5bff9f", "level": "note", "message": {"text": "Possibly dead Python function: parse_file"}, "properties": {"repobilityId": "5bd5d78f3c5a40c4", "scanner": "scanner-primary", "fingerprint": "f2185f92dd5bff9f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/import_transactions.py:52"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b654acd31e62f047", "level": "note", "message": {"text": "Possibly dead Python function: detect_columns_with_ai"}, "properties": {"repobilityId": "60851e3e25267e41", "scanner": "scanner-primary", "fingerprint": "b654acd31e62f047", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/import_transactions.py:120"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f19bcaf5a486c7f9", "level": "note", "message": {"text": "Possibly dead Python function: normalize_transactions"}, "properties": {"repobilityId": "d5d7765845581e78", "scanner": "scanner-primary", "fingerprint": "f19bcaf5a486c7f9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/import_transactions.py:169"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-583441c9573dc0b4", "level": "note", "message": {"text": "Possibly dead Python function: categorize_with_ai"}, "properties": {"repobilityId": "8e4e314487a06be1", "scanner": "scanner-primary", "fingerprint": "583441c9573dc0b4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/import_transactions.py:250"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3676f08446e63268", "level": "note", "message": {"text": "Possibly dead Python function: find_duplicates"}, "properties": {"repobilityId": "33c5d2f199a799d2", "scanner": "scanner-primary", "fingerprint": "3676f08446e63268", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/import_transactions.py:303"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-32c47dd7b5b3a024", "level": "note", "message": {"text": "Possibly dead Python function: execute_import"}, "properties": {"repobilityId": "d3188ab7ec464017", "scanner": "scanner-primary", "fingerprint": "32c47dd7b5b3a024", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/import_transactions.py:329"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a00e0895b55ce5ee", "level": "note", "message": {"text": "Possibly dead Python function: with_retry"}, "properties": {"repobilityId": "6873957d252f8d84", "scanner": "scanner-primary", "fingerprint": "a00e0895b55ce5ee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/retry.py:35"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7fb2edcf819c42c9", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "7fb2edcf819c42c9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/retry.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1a2a0c4115b63f6c", "level": "note", "message": {"text": "Possibly dead Python function: generate_demo_data"}, "properties": {"repobilityId": "8c35adc980155140", "scanner": "scanner-primary", "fingerprint": "1a2a0c4115b63f6c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/demo_data.py:123"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f8456e80c3764b6", "level": "note", "message": {"text": "Possibly dead Python function: add_daily_demo_data"}, "properties": {"repobilityId": "fe1dcb030dab4da5", "scanner": "scanner-primary", "fingerprint": "4f8456e80c3764b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/demo_data.py:935"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-57b9217c3a2a2900", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/tests/global-teardown.ts:74"}, "properties": {"repobilityId": "8e01a4b584f4aec6", "scanner": "scanner-primary", "fingerprint": "57b9217c3a2a2900", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3903e1d31e4b06fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/tests/generate-demo-auth.ts:92"}, "properties": {"repobilityId": "e33154a81c7db52b", "scanner": "scanner-primary", "fingerprint": "3903e1d31e4b06fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2683c71b3292286a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/tests/gym.spec.ts:21"}, "properties": {"repobilityId": "b2c53b30edfd6a46", "scanner": "scanner-primary", "fingerprint": "2683c71b3292286a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f3e69c0dba6c3e8c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/src/scripts/seed-demo-advanced.ts:66"}, "properties": {"repobilityId": "bae4b97c0e7a88a9", "scanner": "scanner-primary", "fingerprint": "f3e69c0dba6c3e8c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c1a317dc06894e5b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/shared/sidebar.tsx:41"}, "properties": {"repobilityId": "6ae525037525a14d", "scanner": "scanner-primary", "fingerprint": "c1a317dc06894e5b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-494375fed69b7d93", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/shared/error-boundary.tsx:32"}, "properties": {"repobilityId": "16422290ed9bee0f", "scanner": "scanner-primary", "fingerprint": "494375fed69b7d93", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d5e7db29723f1e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/income-expenses-chart.tsx:237"}, "properties": {"repobilityId": "f9edc9117d9b8712", "scanner": "scanner-primary", "fingerprint": "3d5e7db29723f1e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ae43a9c12142e32", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/correlation-matrix-chart.tsx:235"}, "properties": {"repobilityId": "c78845379b08fdaf", "scanner": "scanner-primary", "fingerprint": "9ae43a9c12142e32", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7904502dfa6d62ef", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/kpi-grid.tsx:107"}, "properties": {"repobilityId": "408d4856333dd0ce", "scanner": "scanner-primary", "fingerprint": "7904502dfa6d62ef", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-632ba2183b3b8f0d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/dashboard/screen-time-apps.tsx:24"}, "properties": {"repobilityId": "3804188dbda2b9aa", "scanner": "scanner-primary", "fingerprint": "632ba2183b3b8f0d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ce901bb976580800", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/gym-page.tsx:141"}, "properties": {"repobilityId": "f491b0945b7fe027", "scanner": "scanner-primary", "fingerprint": "ce901bb976580800", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-193c3cdcdd8cbd88", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/muscle-group-exercises.tsx:61"}, "properties": {"repobilityId": "d64ef6164d97fb7b", "scanner": "scanner-primary", "fingerprint": "193c3cdcdd8cbd88", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ce2820275292b963", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/exercise-execution-screen.tsx:54"}, "properties": {"repobilityId": "2e9daa173c51deef", "scanner": "scanner-primary", "fingerprint": "ce2820275292b963", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99f2b9ce23c4d109", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/active-workout-screen.tsx:175"}, "properties": {"repobilityId": "873e4020d937058e", "scanner": "scanner-primary", "fingerprint": "99f2b9ce23c4d109", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a79857e8d23c43e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/start-workout-dialog.tsx:112"}, "properties": {"repobilityId": "a9fa537f51c61359", "scanner": "scanner-primary", "fingerprint": "a79857e8d23c43e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39912d4ac7d278a2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/gym/workout-card.tsx:126"}, "properties": {"repobilityId": "d37a3ef356c35beb", "scanner": "scanner-primary", "fingerprint": "39912d4ac7d278a2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c737e7cc5ab77e9d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/shopping-card.tsx:72"}, "properties": {"repobilityId": "d03423dfcae8a136", "scanner": "scanner-primary", "fingerprint": "c737e7cc5ab77e9d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a4b7d808fe7111da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/transaction-table.tsx:178"}, "properties": {"repobilityId": "a5dac7f74e978278", "scanner": "scanner-primary", "fingerprint": "a4b7d808fe7111da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9fbc4c4d723027f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/transaction-list.tsx:289"}, "properties": {"repobilityId": "9c18f966718dc58a", "scanner": "scanner-primary", "fingerprint": "9fbc4c4d723027f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0799d1589c760ca4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/account-balances-card.tsx:55"}, "properties": {"repobilityId": "e7fbb8ba502f3d2e", "scanner": "scanner-primary", "fingerprint": "0799d1589c760ca4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f60af3910952ec96", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/investments-page.tsx:393"}, "properties": {"repobilityId": "db08a5dcce8edaae", "scanner": "scanner-primary", "fingerprint": "f60af3910952ec96", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f28465a8a8aa50f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/finance/subscription-list.tsx:104"}, "properties": {"repobilityId": "41ba25dead0161d9", "scanner": "scanner-primary", "fingerprint": "f28465a8a8aa50f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-05b1fb5d9f9f1df0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/landing/landing-page.tsx:77"}, "properties": {"repobilityId": "ffcdd017fc9b0c3a", "scanner": "scanner-primary", "fingerprint": "05b1fb5d9f9f1df0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b1f22df60da001f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/food-page.tsx:501"}, "properties": {"repobilityId": "414ccc45b126a18d", "scanner": "scanner-primary", "fingerprint": "9b1f22df60da001f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d6d10ce3cbb4a56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/search-food-dialog.tsx:171"}, "properties": {"repobilityId": "523908b131d26f4f", "scanner": "scanner-primary", "fingerprint": "3d6d10ce3cbb4a56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b75eb9b0fb7c0028", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/components/food/inline-product-search.tsx:96"}, "properties": {"repobilityId": "9e8bc6058459786e", "scanner": "scanner-primary", "fingerprint": "b75eb9b0fb7c0028", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-90c968a8df51ee1e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 next/src/app/layout.tsx:119"}, "properties": {"repobilityId": "7313c2ea33148ffb", "scanner": "scanner-primary", "fingerprint": "90c968a8df51ee1e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-675a9203e8e99a8d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/src/app/api/sync/health/route.ts:37"}, "properties": {"repobilityId": "ca07c1b6e4b289b8", "scanner": "scanner-primary", "fingerprint": "675a9203e8e99a8d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01fa8897f21ca760", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/src/app/api/sync/withings/callback/route.ts:97"}, "properties": {"repobilityId": "559579a6bfe357e2", "scanner": "scanner-primary", "fingerprint": "01fa8897f21ca760", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f4d1c7543a232970", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/src/app/api/chat/route.ts:168"}, "properties": {"repobilityId": "39a188f4baddd2d7", "scanner": "scanner-primary", "fingerprint": "f4d1c7543a232970", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-22cb7c30176f8d48", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 next/src/app/(dashboard)/layout.tsx:64"}, "properties": {"repobilityId": "507d9bcea49b11f9", "scanner": "scanner-primary", "fingerprint": "22cb7c30176f8d48", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b4e9c61dee91ff5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 next/src/app/(dashboard)/settings/bug-report/page.tsx:22"}, "properties": {"repobilityId": "4226284bd7042cbc", "scanner": "scanner-primary", "fingerprint": "9b4e9c61dee91ff5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ff906ac9fcc70a9e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/src/lib/embeddings.ts:152"}, "properties": {"repobilityId": "7d88cf65efb1d9ac", "scanner": "scanner-primary", "fingerprint": "ff906ac9fcc70a9e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1cfa206a5d5a6aec", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 next/src/lib/reporting/irpf-calculator.ts:136"}, "properties": {"repobilityId": "198efb846e004404", "scanner": "scanner-primary", "fingerprint": "1cfa206a5d5a6aec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2ef444090f477d04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 next/src/actions/insights/index.ts:477"}, "properties": {"repobilityId": "1062d136eebdbcec", "scanner": "scanner-primary", "fingerprint": "2ef444090f477d04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-851518aa9fb63dbc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 setup/src/lib/setup-auth.ts:22"}, "properties": {"repobilityId": "c0e8793167ed00bb", "scanner": "scanner-primary", "fingerprint": "851518aa9fb63dbc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-747fd26ce56a5278", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in next/src/app/layout.tsx:119"}, "properties": {"repobilityId": "bbccc8dcfe1c9676", "scanner": "scanner-primary", "fingerprint": "747fd26ce56a5278", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "next/src/app/layout.tsx"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-7c7175f6d9758fe1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in setup/src/app/api/deploy/route.ts:5"}, "properties": {"repobilityId": "986a9a4a0e40d002", "scanner": "scanner-primary", "fingerprint": "7c7175f6d9758fe1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "setup/src/app/api/deploy/route.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-6c53dc8f69dda64a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in setup/src/app/api/status/route.ts:2"}, "properties": {"repobilityId": "6236882562c929ba", "scanner": "scanner-primary", "fingerprint": "6c53dc8f69dda64a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "setup/src/app/api/status/route.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-ba344fcaf0a14d3b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in setup/src/app/components/ui.tsx:17"}, "properties": {"repobilityId": "8f569383beba8e63", "scanner": "scanner-primary", "fingerprint": "ba344fcaf0a14d3b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "setup/src/app/components/ui.tsx"}, "region": {"startLine": 17}}}]}, {"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-9da3f9f51285035d", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GymExercise.ts (1856 lines)"}, "properties": {"repobilityId": "6c853cbb2b367307", "scanner": "scanner-primary", "fingerprint": "9da3f9f51285035d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb1a18805deb9308", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/InsightFeedback.ts (1571 lines)"}, "properties": {"repobilityId": "a9be4ddfd8018aee", "scanner": "scanner-primary", "fingerprint": "eb1a18805deb9308", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-74fd6abef1abfbe9", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GymProgram.ts (1448 lines)"}, "properties": {"repobilityId": "9161bfdc4e6063b9", "scanner": "scanner-primary", "fingerprint": "74fd6abef1abfbe9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4b7d548f77bb4623", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GymProgramExercise.ts (1661 lines)"}, "properties": {"repobilityId": "e5189b89bb36ca1a", "scanner": "scanner-primary", "fingerprint": "4b7d548f77bb4623", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-05195799c4579c06", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GarminActivity.ts (1561 lines)"}, "properties": {"repobilityId": "e6a9266b28155723", "scanner": "scanner-primary", "fingerprint": "05195799c4579c06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d0d9a71ba3ad6b31", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GymWorkoutExercise.ts (1761 lines)"}, "properties": {"repobilityId": "7ff7a053f5cc4e72", "scanner": "scanner-primary", "fingerprint": "d0d9a71ba3ad6b31", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2359dd28f8be46aa", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/TaxDeclarationItem.ts (1380 lines)"}, "properties": {"repobilityId": "7857689bd5e04348", "scanner": "scanner-primary", "fingerprint": "2359dd28f8be46aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-986856d999f88edf", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/AuditLog.ts (1384 lines)"}, "properties": {"repobilityId": "defd8a832cc53983", "scanner": "scanner-primary", "fingerprint": "986856d999f88edf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e6fdaabb8a170d80", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GymWorkout.ts (1652 lines)"}, "properties": {"repobilityId": "250d4926624e3098", "scanner": "scanner-primary", "fingerprint": "e6fdaabb8a170d80", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8a3ec5e10ccc280", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/ScreenTime.ts (1576 lines)"}, "properties": {"repobilityId": "e02f26cf8a6a705d", "scanner": "scanner-primary", "fingerprint": "e8a3ec5e10ccc280", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1ef736221637ef5a", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/TelegramLink.ts (1319 lines)"}, "properties": {"repobilityId": "e99ddcedc2b568a9", "scanner": "scanner-primary", "fingerprint": "1ef736221637ef5a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fd1ba531be86c01", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GymProgramDay.ts (1576 lines)"}, "properties": {"repobilityId": "e0cc20a4e79bbb11", "scanner": "scanner-primary", "fingerprint": "4fd1ba531be86c01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e47bf77b1852a5bf", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/Subscription.ts (1454 lines)"}, "properties": {"repobilityId": "c42aba0e00e0e972", "scanner": "scanner-primary", "fingerprint": "e47bf77b1852a5bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-844a742732b48391", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GymSet.ts (1671 lines)"}, "properties": {"repobilityId": "12e2270f6227596e", "scanner": "scanner-primary", "fingerprint": "844a742732b48391", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6ffeeed3ae0401a7", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/ChatHistory.ts (1542 lines)"}, "properties": {"repobilityId": "85190a53ecec3d6e", "scanner": "scanner-primary", "fingerprint": "6ffeeed3ae0401a7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2da19b0aacf4c475", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/User.ts (2500 lines)"}, "properties": {"repobilityId": "94ef9e451a33cd58", "scanner": "scanner-primary", "fingerprint": "2da19b0aacf4c475", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7a045fe9685e84eb", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GarminHeartRate.ts (1367 lines)"}, "properties": {"repobilityId": "a10475633d3899be", "scanner": "scanner-primary", "fingerprint": "7a045fe9685e84eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-781cb8e3719d1ac4", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/BrokerAccountSummary.ts (1401 lines)"}, "properties": {"repobilityId": "db24713823f7c60f", "scanner": "scanner-primary", "fingerprint": "781cb8e3719d1ac4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dac9ed4544c221ee", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GarminSleep.ts (1403 lines)"}, "properties": {"repobilityId": "0b8d8651103793b5", "scanner": "scanner-primary", "fingerprint": "dac9ed4544c221ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-30942432033143a1", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/TaxIncomeRecord.ts (1443 lines)"}, "properties": {"repobilityId": "850723b207924209", "scanner": "scanner-primary", "fingerprint": "30942432033143a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cebee582663a808f", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/BrokerPosition.ts (1547 lines)"}, "properties": {"repobilityId": "efbd392f5bfecbc7", "scanner": "scanner-primary", "fingerprint": "cebee582663a808f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e9b548b9d4cff97d", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/TradingStrategy.ts (1410 lines)"}, "properties": {"repobilityId": "f4f97982bf013e83", "scanner": "scanner-primary", "fingerprint": "e9b548b9d4cff97d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7e80601e5928c5c7", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/TaxDeclaration.ts (1815 lines)"}, "properties": {"repobilityId": "22bdb14f7def9e2b", "scanner": "scanner-primary", "fingerprint": "7e80601e5928c5c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-00a9609a7aede50e", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/FoodLog.ts (1506 lines)"}, "properties": {"repobilityId": "dce9c92b165a0679", "scanner": "scanner-primary", "fingerprint": "00a9609a7aede50e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8b9f903c14646b35", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/BrokerTransaction.ts (1453 lines)"}, "properties": {"repobilityId": "c28d564bec0390c8", "scanner": "scanner-primary", "fingerprint": "8b9f903c14646b35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ac783a6983b7fd9", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/RecurringTransaction.ts (1348 lines)"}, "properties": {"repobilityId": "110436e4050650ff", "scanner": "scanner-primary", "fingerprint": "9ac783a6983b7fd9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-222cff27a8821795", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GarminDaily.ts (1981 lines)"}, "properties": {"repobilityId": "a39743a8a844262a", "scanner": "scanner-primary", "fingerprint": "222cff27a8821795", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-24076e00af889820", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/WithingsMeasurement.ts (1347 lines)"}, "properties": {"repobilityId": "7e3d36ff6459c0de", "scanner": "scanner-primary", "fingerprint": "24076e00af889820", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c1ea2c04a17694fc", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/BigPurchase.ts (1516 lines)"}, "properties": {"repobilityId": "9c5d601db7cf7896", "scanner": "scanner-primary", "fingerprint": "c1ea2c04a17694fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a09e701b25df38d2", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/UserPreference.ts (1325 lines)"}, "properties": {"repobilityId": "02d57d7f6189afed", "scanner": "scanner-primary", "fingerprint": "a09e701b25df38d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0d2db63f4ce88e96", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/DailyLog.ts (1626 lines)"}, "properties": {"repobilityId": "d96b9407d570dc07", "scanner": "scanner-primary", "fingerprint": "0d2db63f4ce88e96", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a133cb94e5c03c4c", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/AiInsight.ts (1773 lines)"}, "properties": {"repobilityId": "9aab6c185bc5f6c0", "scanner": "scanner-primary", "fingerprint": "a133cb94e5c03c4c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-653d930083e7fd5e", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/Transaction.ts (1606 lines)"}, "properties": {"repobilityId": "d7dcaf4c25884cb6", "scanner": "scanner-primary", "fingerprint": "653d930083e7fd5e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-65f3d75b19cc3c46", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/GarminBodyComposition.ts (1449 lines)"}, "properties": {"repobilityId": "2a132f44d181795b", "scanner": "scanner-primary", "fingerprint": "65f3d75b19cc3c46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2a7fadafe5eee9d1", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/models/Passkey.ts (1625 lines)"}, "properties": {"repobilityId": "79683cc225df9e6f", "scanner": "scanner-primary", "fingerprint": "2a7fadafe5eee9d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6acd93897777d383", "level": "note", "message": {"text": "Very large file: next/src/generated/prisma/internal/prismaNamespace.ts (6037 lines)"}, "properties": {"repobilityId": "ad64b18cea3088fb", "scanner": "scanner-primary", "fingerprint": "6acd93897777d383", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f5bc144be20fe32", "level": "note", "message": {"text": "Very large file: src/db/core.py (1674 lines)"}, "properties": {"repobilityId": "27f1a3d03a701a71", "scanner": "scanner-primary", "fingerprint": "7f5bc144be20fe32", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-da8deb2f538f9841", "level": "note", "message": {"text": "Very large file: ml-training/prepare_training.py (1776 lines)"}, "properties": {"repobilityId": "086baff6329afa90", "scanner": "scanner-primary", "fingerprint": "da8deb2f538f9841", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-9b4d34678d12c16d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: next/package.json"}, "properties": {"repobilityId": "0b765bd5170c2bb0", "scanner": "scanner-primary", "fingerprint": "9b4d34678d12c16d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "next/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "1f2aea895db8d8c9", "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": "16a8f81614999521", "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": "29e85a6a9c9d3ec8", "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": "4d19506b0bcae13e", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "f1125bff1568f7c3", "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": "f9fcc9ac008e3394", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-93ca6d26bdcb9b08", "level": "none", "message": {"text": "Commented-code block (7 lines) in next/next.config.ts:23"}, "properties": {"repobilityId": "02c1137d9e5a4413", "scanner": "scanner-primary", "fingerprint": "93ca6d26bdcb9b08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4052d28c61062a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/middleware.ts:62"}, "properties": {"repobilityId": "384e614a92481d85", "scanner": "scanner-primary", "fingerprint": "e4052d28c61062a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a12b91c7d105d9ee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/components/reporting/es-tax-dashboard.tsx:96"}, "properties": {"repobilityId": "06e50648978ae62f", "scanner": "scanner-primary", "fingerprint": "a12b91c7d105d9ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-891248abbeeb742d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/components/insights/insights-panel.tsx:74"}, "properties": {"repobilityId": "10ba63673a598059", "scanner": "scanner-primary", "fingerprint": "891248abbeeb742d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1d65ff2152d94a9d", "level": "note", "message": {"text": "Legacy-named symbol `wakeboarding_v2` in next/src/components/gym/workout-calendar.tsx:154"}, "properties": {"repobilityId": "727245edaa5282d5", "scanner": "scanner-primary", "fingerprint": "1d65ff2152d94a9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-abc38952977ce25b", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/app/layout.tsx:56"}, "properties": {"repobilityId": "f0db6c96cd06c875", "scanner": "scanner-primary", "fingerprint": "abc38952977ce25b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a278f53bf386f12", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/app/api/sync/withings/callback/route.ts:60"}, "properties": {"repobilityId": "7f7a15e59edd3446", "scanner": "scanner-primary", "fingerprint": "9a278f53bf386f12", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc2917fb97fe5bdd", "level": "none", "message": {"text": "Commented-code block (6 lines) in next/src/app/api/garmin-mfa/route.ts:54"}, "properties": {"repobilityId": "32ad9eff9f0680f1", "scanner": "scanner-primary", "fingerprint": "dc2917fb97fe5bdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fcb3e53096fab6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/lib/suppress-recharts-warnings.ts:1"}, "properties": {"repobilityId": "a0b58490dcfd0045", "scanner": "scanner-primary", "fingerprint": "2fcb3e53096fab6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-282c1572c46aca13", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/lib/freqtrade-client.ts:75"}, "properties": {"repobilityId": "94333465801e927f", "scanner": "scanner-primary", "fingerprint": "282c1572c46aca13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a6d534d1731e597c", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/lib/reporting/irpf-calculator.test.ts:577"}, "properties": {"repobilityId": "729dbf8a2b295548", "scanner": "scanner-primary", "fingerprint": "a6d534d1731e597c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e546f079bf74248", "level": "none", "message": {"text": "Commented-code block (8 lines) in next/src/lib/reporting/broker-parsers.test.ts:352"}, "properties": {"repobilityId": "91008483a04d5301", "scanner": "scanner-primary", "fingerprint": "9e546f079bf74248", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47cbefc2c15fca22", "level": "note", "message": {"text": "Legacy-named symbol `cashLegacy` in next/src/actions/brokers-ibkr.ts:383"}, "properties": {"repobilityId": "3fd44e4272a38b09", "scanner": "scanner-primary", "fingerprint": "47cbefc2c15fca22", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4045f548d64f6f10", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/actions/brokers-ibkr.ts:369"}, "properties": {"repobilityId": "6597566ab350ae22", "scanner": "scanner-primary", "fingerprint": "4045f548d64f6f10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c24ec9ea850e76d", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/actions/brokers.ts:3"}, "properties": {"repobilityId": "0dc14e3210b4847c", "scanner": "scanner-primary", "fingerprint": "6c24ec9ea850e76d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f0dc0ce8c0a26b9", "level": "none", "message": {"text": "Commented-code block (6 lines) in next/src/actions/passkey.ts:137"}, "properties": {"repobilityId": "26c6e6f2611d7efb", "scanner": "scanner-primary", "fingerprint": "4f0dc0ce8c0a26b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1a515556d80f690", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/actions/demo.ts:55"}, "properties": {"repobilityId": "f9e84a2ef5713420", "scanner": "scanner-primary", "fingerprint": "e1a515556d80f690", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42da3df951a59d82", "level": "none", "message": {"text": "Commented-code block (5 lines) in next/src/actions/admin.ts:35"}, "properties": {"repobilityId": "8bd8563148ad3823", "scanner": "scanner-primary", "fingerprint": "42da3df951a59d82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23601a44baaf6a14", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 next/src/actions/insights/index.ts:352"}, "properties": {"repobilityId": "b43045232ecc8ace", "scanner": "scanner-primary", "fingerprint": "23601a44baaf6a14", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f4d0ca86f3f52cd", "level": "none", "message": {"text": "Commented-code block (6 lines) in deploy/scheduler.py:13"}, "properties": {"repobilityId": "40e5af108c219a9f", "scanner": "scanner-primary", "fingerprint": "6f4d0ca86f3f52cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86e848c4f04efabc", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 deploy/pd_scheduler/reports_builders.py:30"}, "properties": {"repobilityId": "378cb8e1468f35ce", "scanner": "scanner-primary", "fingerprint": "86e848c4f04efabc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c20a4fd8741b5e28", "level": "note", "message": {"text": "Legacy-named symbol `pg_backup` in deploy/pd_scheduler/schedules.py:57"}, "properties": {"repobilityId": "42375fbe799624d4", "scanner": "scanner-primary", "fingerprint": "c20a4fd8741b5e28", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ce33e849aa17c38b", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/pd_scheduler/schedules.py:45"}, "properties": {"repobilityId": "8ec89989236e4d3f", "scanner": "scanner-primary", "fingerprint": "ce33e849aa17c38b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c89c995b437beb9d", "level": "note", "message": {"text": "Legacy-named symbol `pg_backup` in deploy/pd_scheduler/tests/test_imports.py:16"}, "properties": {"repobilityId": "a2a685ba168aba63", "scanner": "scanner-primary", "fingerprint": "c89c995b437beb9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3a24085722ecec62", "level": "none", "message": {"text": "Commented-code block (6 lines) in deploy/pd_scheduler/jobs/insights/generate.py:133"}, "properties": {"repobilityId": "6f065c4b3ee511ba", "scanner": "scanner-primary", "fingerprint": "3a24085722ecec62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0eaada5ae5cdb71", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 setup/src/app/hooks/useSetupState.ts:55"}, "properties": {"repobilityId": "62f2c7a7df86f3c0", "scanner": "scanner-primary", "fingerprint": "f0eaada5ae5cdb71", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0ad454205339183", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/claude_ai.py:11"}, "properties": {"repobilityId": "a969d5853289bfc0", "scanner": "scanner-primary", "fingerprint": "d0ad454205339183", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65793e0d25887207", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bunq_integration.py:114"}, "properties": {"repobilityId": "ddf4047104ec67ed", "scanner": "scanner-primary", "fingerprint": "65793e0d25887207", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a0a7ca26f7e21d1", "level": "note", "message": {"text": "Stub function `fetchone` (body is just `pass`/`return`) \u2014 src/db_backend/wrappers.py:161"}, "properties": {"repobilityId": "bbf03d60a876966d", "scanner": "scanner-primary", "fingerprint": "3a0a7ca26f7e21d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0b1cf04f3e068bc5", "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": "03d76ebd4a0633f9", "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": "808ba5334d93f115", "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": "0315490199a87b14", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}